Compartilhar via


Acompanhar e exportar as métricas de integridade de serviço do ponto de extremidade para o Prometheus e o Datadog

Este artigo fornece uma visão geral de métricas de integridade do ponto de extremidade do serviço e mostra como usar a API de exportação de métricas para exportar métricas de ponto de extremidade para o Prometheus e o Datadog.

As métricas de integridade do ponto de extremidade medem a infraestrutura e as 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 serviço está se comportando.

Requisitos

  • Acesso de leitura ao ponto de extremidade desejado e ao token de acesso pessoal (PAT) que pode ser gerado nas Configurações na interface do usuário do Databricks Mosaic AI para acessar o ponto de extremidade.

  • Um ponto de extremidade do model serving existente. 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
    

Definições de métricas do ponto de extremidade de serviço

Métrica Descrição
Latência (ms) Captura a mediana (P50) e o 99º percentil (P99) dos tempos de latência de ida e volta no Azure Databricks. 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. Essa taxa é calculada totalizando o número de solicitações em um minuto e, em seguida, dividindo por 60 (o número de segundos em um minuto).
Taxa de erros de solicitação (por segundo) Acompanha a taxa de respostas de erro HTTP 4xx e 5xx por segundo. Semelhante à taxa de solicitação, ela é computada agregando o número total de solicitações malsucedidas em um minuto e dividindo por 60.
Uso de CPU (%) Mostra o percentual médio de utilização da CPU em todas as réplicas de servidor. No contexto da infraestrutura do Databricks, uma réplica refere-se aos nós de máquina virtual. Dependendo das configurações de simultaneidade definidas, o Databricks cria várias réplicas para gerenciar o tráfego do modelo com eficiência.
Uso de memória (%) Mostra o percentual médio de utilização de memória em todas as réplicas de servidor.
Simultaneidade provisionada A simultaneidade provisionada é o número máximo de solicitações paralelas que o sistema pode manipular. A simultaneidade provisionada ajusta 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 de 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 média da utilização é calculada em todas as réplicas de servidor e a amostra é obtida uma vez por minuto. Nota: A amostragem pouco frequente significa que essa métrica é mais precisa sob uma carga constante.
Exiba essa métrica da interface do usuário de serviço na guia Métricas do ponto de extremidade de serviço.
Uso de memória da GPU (%) Indica o percentual médio de memória de imagem utilizada em cada GPU com base nos dados do exportador NVIDIA DCGM. Assim como acontece com o uso de GPU, essa métrica é a média entre réplicas e a amostra é obtida a cada minuto. Ele é mais confiável em condições de carga consistentes.
Exiba essa métrica da interface do usuário de serviço na guia Métricas do ponto de extremidade de serviço.

Integração do Prometheus

Observação

Independentemente do tipo de implantação que você tenha em seu ambiente de produção, a configuração de extração deve ser semelhante.

As diretrizes nesta seção segue a documentação do Prometheus para iniciar um serviço do Prometheus localmente usando o Docker.

  1. Escreva um yaml arquivo de configuração e nomeie-o prometheus.yml. A seguir, é mostrado um exemplo:

    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 comando a seguir:

       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 serviço Prometheus local está em execução.

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

  5. Depois que o destino estiver totalmente 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 da Datadog

A Datadog tem uma variedade de agentes que podem ser implantados em ambientes diferentes.

Para fins de demonstração, a seguir inicia um agente Mac OS localmente que extrai o ponto final das métricas no seu anfitrião do Databricks. A configuração para usar outros agentes está em um padrão semelhante.

Observação

A configuração preliminar para este exemplo baseia-se na edição gratuita.

O Datadog também oferece uma integração do Azure Databricks que conecta o Datadog ao modelo que atende pontos de extremidade para monitorar métricas de ponto de extremidade sem código. Consulte a documentação do Datadog para saber como conectar sua configuração de serviço de modelo ao Datadog.

  1. Registre uma conta do Datadog.

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

  3. Siga a documentação da Datadog para colocar seu agente da Datadog em funcionamento. Para este exemplo, use a opção de pacote DMG para ter tudo instalado, incluindo launchctl e datadog-agent.

  4. Localize a configuração do OpenMetrics. Para este exemplo, a configuração está em ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. A seguir está um exemplo de arquivo 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 da Datadog usando launchctl start com.datadoghq.agent.

  6. Sempre que você precisar fazer alterações na configuração, será necessário 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ê deverá conseguir ver uma resposta como a seguinte. Caso contrário, depure com a mensagem de erro. Possíveis problemas podem ser devido 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 agente estiver totalmente em execução, você poderá navegar de volta para o painel da Datadog para consultar as métricas. Você também pode criar um monitor ou alerta com base nos dados de métrica:https://app.datadoghq.com/monitors/create/metric.