Rastreie e exporte métricas de integridade de endpoint para Prometheus e Datadog
Este artigo fornece uma visão geral do atendimento de métricas de integridade de endpoint e mostra como usar a API de exportação de métricas para exportar métricas de endpoint para Prometheus e Datadog.
As métricas de integridade do endpoint medem a infraestrutura e métricas como latência, taxa de solicitação, taxa de erro, uso da CPU, uso de memória, etc. Isso informa como sua infraestrutura de atendimento está se comportando.
Requisitos
Acesso de leitura ao endpoint desejado e token de acesso pessoal (PAT) que pode ser gerado em Configurações na interface do usuário do Databricks Mosaic AI para acessar o ponto de extremidade.
Um modelo existente que serve o ponto de extremidade. Você pode validar isso verificando a integridade do ponto de extremidade com o seguinte:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
Valide a API de métricas de exportação:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Servindo definições de métricas de endpoint
Métrico | Description |
---|---|
Latência (ms) | Captura os tempos de latência de ida e volta medianos (P50) e percentil 99 (P99) no Azure Databricks. Isso não inclui latências adicionais relacionadas ao Databricks, como autenticação e limitação de taxa |
Taxa de solicitação (por segundo) | Mede o número de solicitações processadas por segundo. Esta taxa é calculada totalizando o número de pedidos dentro de um minuto e, em seguida, dividindo por 60 (o número de segundos em um minuto). |
Taxa de erro de solicitação (por segundo) | Rastreia a taxa de 4xx e 5xx respostas de erro HTTP por segundo. Semelhante à taxa de solicitação, ela é calculada agregando o número total de solicitações malsucedidas em um minuto e dividindo por 60. |
Utilização da CPU (%) | Mostra a porcentagem média de utilização da CPU em todas as réplicas do servidor. No contexto da infraestrutura Databricks, uma réplica refere-se a nós de máquina virtual. Dependendo das configurações de simultaneidade configuradas, o Databricks cria várias réplicas para gerenciar o tráfego do modelo de forma eficiente. |
Utilização de memória (%) | Mostra a porcentagem média de utilização de memória em todas as réplicas do servidor. |
Simultaneidade provisionada | A simultaneidade provisionada é o número máximo de solicitações paralelas que o sistema pode manipular. A simultaneidade provisionada é ajustada dinamicamente dentro dos limites mínimo e máximo do intervalo de expansão de computação, variando em resposta ao tráfego de entrada. |
Uso da GPU (%) | Representa a utilização média da GPU, conforme relatado pelo exportador NVIDIA DCGM . Se o tipo de instância tiver várias GPUs, cada uma será rastreada separadamente (como, gpu0 , , gpu1 ..., gpuN ). A utilização é calculada em média em todas as réplicas do servidor e amostrada uma vez por minuto.
Nota: A amostragem pouco frequente significa que esta métrica é mais precisa sob uma carga constante.Exiba essa métrica na interface do usuário de serviço na guia Métricas de |
Uso de memória GPU (%) | Indica a porcentagem média de memória buffer de quadros utilizada em cada GPU com base nos dados do exportador NVIDIA DCGM. Assim como no uso da GPU, essa métrica é calculada em média entre réplicas e amostrada a cada minuto. É mais fiável em condições de carga consistentes. Exiba esta métrica na UI de serviço na aba Métricas do do seu endpoint de serviço. |
Integração Prometheus
Nota
Independentemente do tipo de implantação que você tem em seu ambiente de produção, a configuração de raspagem deve ser semelhante.
A orientação nesta seção segue a documentação do Prometheus para iniciar um serviço Prometheus localmente usando o docker.
Escreva um
yaml
arquivo de configuração e nomeie-oprometheus.yml
. Veja o exemplo seguinte:global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: "prometheus" metrics_path: "/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics" scheme: "https" authorization: type: "Bearer" credentials: "[PAT_TOKEN]" static_configs: - targets: ["dbc-741cfa95-12d1.dev.databricks.com"]
Inicie o Prometheus localmente com o seguinte comando:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Navegue até
http://localhost:9090
para verificar se o seu serviço Prometheus local está em funcionamento.Verifique o status do raspador Prometheus e os erros de depuração de:
http://localhost:9090/targets?search=
Quando o destino estiver totalmente instalado e em execução, você poderá consultar as métricas fornecidas, como
cpu_usage_percentage
oumem_usage_percentage
, na interface do usuário.
Integração Datadog
Nota
A configuração preliminar para este exemplo baseia-se na edição gratuita.
O Datadog tem uma variedade de agentes que podem ser implantados em diferentes ambientes. Para fins de demonstração, o seguinte inicia um agente do Mac OS localmente que raspa o ponto de extremidade de métricas em seu host Databricks. A configuração para usar outros agentes deve estar em um padrão semelhante.
Registe uma conta datadog.
Instale a integração do OpenMetrics no painel da sua conta, para que o Datadog possa aceitar e processar dados do OpenMetrics.
Siga a documentação do Datadog para colocar seu agente Datadog em funcionamento. Para este exemplo, use a opção de pacote DMG para ter tudo instalado, incluindo
launchctl
edatadog-agent
.Localize sua configuração do OpenMetrics. Neste exemplo, a configuração está em
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default
. Segue-se um exemplo de ficheiro de configuraçãoyaml
.instances: - openmetrics_endpoint: https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics metrics: - cpu_usage_percentage: name: cpu_usage_percentage type: gauge - mem_usage_percentage: name: mem_usage_percentage type: gauge - provisioned_concurrent_requests_total: name: provisioned_concurrent_requests_total type: gauge - request_4xx_count_total: name: request_4xx_count_total type: gauge - request_5xx_count_total: name: request_5xx_count_total type: gauge - request_count_total: name: request_count_total type: gauge - request_latency_ms: name: request_latency_ms type: histogram tag_by_endpoint: false send_distribution_buckets: true headers: Authorization: Bearer [PAT] Content-Type: application/openmetrics-text
Inicie o agente datadog usando
launchctl start com.datadoghq.agent
o .Toda vez que você precisar fazer alterações em sua configuração, você precisará reiniciar o agente para pegar a alteração.
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agent
Verifique a integridade do agente com
datadog-agent health
.Verifique o status do agente com
datadog-agent status
. Você deve ser capaz de ver uma resposta como a seguinte. Caso contrário, depure com a mensagem de erro. Os potenciais problemas podem dever-se a um token PAT expirado ou a um URL incorreto.openmetrics (2.2.2) ------------------- Instance ID: openmetrics: xxxxxxxxxxxxxxxx [OK] Configuration Source: file:/opt/datadog-agent/etc/conf.d/openmetrics.d/conf.yaml.default Total Runs: 1 Metric Samples: Last Run: 2, Total: 2 Events: Last Run: 0, Total: 0 Service Checks: Last Run: 1, Total: 1 Average Execution Time : 274ms Last Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxxx) Last Successful Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxx)
O status do agente também pode ser visto na interface do usuário em:http://127.0.0.1:5002/.
Se o seu agente estiver totalmente instalado e funcionando, você poderá navegar de volta ao painel do Datadog para consultar as métricas. Você também pode criar um monitor ou alerta com base nos dados da métrica:https://app.datadoghq.com/monitors/create/metric.