Partilhar via


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 do seu ponto de extremidade de serviço.
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.

  1. Escreva um yaml arquivo de configuração e nomeie-o prometheus.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"]
    
  2. Inicie o Prometheus localmente com o seguinte comando:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. Navegue até http://localhost:9090 para verificar se o seu serviço Prometheus local está em funcionamento.

  4. Verifique o status do raspador Prometheus e os erros de depuração de: http://localhost:9090/targets?search=

  5. Quando o destino estiver totalmente instalado e em execução, você poderá consultar as métricas fornecidas, como cpu_usage_percentage ou mem_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.

  1. Registe uma conta datadog.

  2. Instale a integração do OpenMetrics no painel da sua conta, para que o Datadog possa aceitar e processar dados do OpenMetrics.

  3. 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 e datadog-agent.

  4. 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ção 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
    
       tag_by_endpoint: false
    
       send_distribution_buckets: true
    
       headers:
         Authorization: Bearer [PAT]
         Content-Type: application/openmetrics-text
    
  5. Inicie o agente datadog usando launchctl start com.datadoghq.agento .

  6. 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
    
  7. Verifique a integridade do agente com datadog-agent health.

  8. 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)
    
  9. 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.