Rastrear e exportar o serviço endpoint métricas de saúde para o Prometheus e o Datadog
Este artigo fornece uma visão geral do serviço de métricas de saúde endpoint e mostra como usar a exportação de métricas API para exportar métricas endpoint para o Prometheus e o Datadog.
As métricas de integridade do endpoint medem a infraestrutura e as métricas, como latência, taxa de solicitação, taxa de erro, uso da CPU, uso da memória etc. Isso mostra como sua infraestrutura de atendimento está se comportando.
Requisitos
-
Acesso de leitura ao endpoint desejado e ao access token pessoal (PAT), que pode ser gerado nas Configurações da interface do usuário Databricks para acessar o endpoint.
-
Um modelo de serviço existente endpoint. O senhor pode validar isso verificando a integridade do endpoint com o seguinte:
Bashcurl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME] -
Validar a API de métricas de exportação:
Bashcurl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Definições de métricas de endpoint de serviço
Métrica | Descrição |
|---|---|
Latência (ms) | Captura os tempos de latência de ida e volta medianos (P50) e do 99º percentil (P99) no Databricks. Isso não inclui latências adicionais relacionadas ao Databricks, como autenticação e limitação de taxa |
Latência de inferência de modelo (ms) | Captura o tempo mediano (P50) e do 99º percentil (P99) que o modelo disponibilizado gasta calculando uma previsão, incluindo quaisquer pesquisas na Feature Store. Ao contrário da Latência (ms) , que mede o tempo total de ida e volta, isso isola o tempo de execução do modelo do tempo gasto aguardando na fila de solicitações ou na infraestrutura do Databricks. Visualize essas métricas na UI de serviço no site tab de seu serviço endpoint. |
Tempo de fila da solicitação (ms) | Captura o tempo mediano (P50) e o 99º percentil (P99) que uma solicitação aguarda no backlog de solicitações do servidor antes que uma réplica comece a processá-la. Um tempo de fila elevado indica que o endpoint está subprovisionado para o tráfego recebido; ampliar o intervalo de escala do compute pode reduzi-lo. Visualize essas métricas na UI de serviço no site tab de seu serviço endpoint. |
Taxa de solicitação (por segundo) | Mede o número de solicitações processadas por segundo. Essa taxa é calculada totalizando o número de solicitações em um minuto e dividindo por 60 (o número de segundos em um minuto). |
Taxa de erro de solicitação (por segundo) | Monitora a taxa de respostas de erro HTTP 4xx e 5xx 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. |
Uso da CPU (%) | Mostra a porcentagem média de utilização da CPU em todas as réplicas do servidor. No contexto da infraestrutura da Databricks, uma réplica refere-se a nós de máquinas virtuais. Dependendo das definições de simultaneidade configuradas, o Databricks cria várias réplicas para gerenciar o tráfego do modelo de forma eficiente. |
Uso de memória (%) | Mostra a porcentagem média de utilização da memória em todas as réplicas do servidor. |
provisionamento concurrency | A simultaneidade de provisionamento é o número máximo de solicitações paralelas que o sistema pode atender. A simultaneidade do provisionamento se ajusta dinamicamente dentro dos limites mínimo e máximo do intervalo de escala-out do compute, 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 |
Uso de memória da GPU (%) | Indica a porcentagem média de memória de buffer de quadros utilizada em cada GPU com base nos dados do exportador NVIDIA DCGM. Assim como o uso da GPU, essa métrica é calculada como média entre as réplicas e amostrada a cada minuto. É mais confiável em condições de carga consistentes. Visualize essas métricas na UI de serviço no site tab de seu serviço endpoint. |
Integração com o Prometheus
Independentemente do tipo de implantação que você tenha em seu ambiente de produção, a configuração de raspagem deve ser semelhante.
As orientações nesta seção seguem a documentação do Prometheus para começar um serviço Prometheus localmente usando Docker.
-
Escreva um arquivo de configuração
yamle nomeie-oprometheus.yml. Veja a seguir um exemplo:YAMLglobal:
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'] -
Comece a usar o Prometheus localmente com o seguinte comando:
Bashdocker run \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus -
Navegue até
http://localhost:9090para verificar se o serviço local do Prometheus está funcionando. -
Verifique o status do raspador Prometheus e depure os erros em:
http://localhost:9090/targets?search= -
Quando o alvo estiver totalmente instalado e em funcionamento, o senhor poderá consultar as métricas fornecidas, como
cpu_usage_percentageoumem_usage_percentage, na interface do usuário.
Integração com Datadog
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 extrai o endpoint de métricas em seu host do Databricks. A configuração para usar outros agentes segue um padrão similar.
A configuração preliminar deste exemplo é baseada na edição gratuita.
O Datadog também oferece uma integração Databricks que conecta o Datadog ao seu endpoint de modelo de serviço para monitorar endpoint métricas sem código. Consulte a documentação do Datadog para saber como conectar sua configuração de modelo de serviço ao Datadog.
-
registro no Datadog account.
-
Instale a integração do OpenMetrics em seu painelaccount, para que o Datadog possa aceitar e processar os 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, inclusive
launchctledatadog-agent. -
Localize sua configuração do OpenMetrics. Neste exemplo, a configuração está em
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. Veja a seguir um exemplo de arquivo de configuraçãoyaml.YAML
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
- model_prediction_latency_ms:
name: model_prediction_latency_ms
type: histogram
- model_queue_time_ms:
name: model_queue_time_ms
type: histogram
tag_by_endpoint: false
send_distribution_buckets: true
headers:
Authorization: Bearer [PAT]
Content-Type: application/openmetrics-text -
Começar o agente datadog usando
launchctl start com.datadoghq.agent. -
Sempre que precisar fazer alterações em sua configuração, você precisará reiniciar o agente para pegar a alteração.
Bashlaunchctl 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 conseguir ver uma resposta como a seguinte. Caso contrário, depure com a mensagem de erro. Os possíveis problemas podem ser devidos a tokens PAT expirados ou a um URL incorreto.Bashopenmetrics (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, o senhor pode voltar ao painel do Datadog para consultar as métricas. O senhor também pode criar um monitor ou alerta com base nos dados métricos:https://app.datadoghq.com/monitors/create/métricas.