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 ponto de extremidade desejado e token de acesso pessoal (PAT) que pode ser gerado em Configurações na interface do usuário do Databricks Machine Learning 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.
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.

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.