Rastreie e exporte métricas de integridade de endpoint para Prometheus e Datadog

Prévia

O Mosaic AI Model Serving está em Public Preview e é compatível com os sites us-east1 e us-central1.

Este artigo fornece uma visão geral do fornecimento 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 infraestrutura e métricas como latência, taxa de solicitação, taxa de erro, uso de CPU, uso de memória, etc. Isso informa como sua infraestrutura de serviço está se comportando.

Requisitos

  • Acesso de leitura ao endpoint desejado e ao access token pessoal (PAT), que pode ser gerado em Settings (Configurações ) na UI do Databricks Mosaic AI para acessar o endpoint.

  • Um endpoint de modelo existente. Você pode validar isso verificando a integridade do endpoint 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étrica

Descrição

Latência (ms)

Captura os tempos de latência de ida e volta mediana (P50) e 99º percentil (P99) dentro do 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. Essa taxa é calculada somando o número de solicitações em um minuto e depois dividindo por 60 (o número de segundos em um minuto).

Taxa de erro de solicitação (por segundo)

Rastreia a taxa de respostas de erro HTTP 4xx e 5xx por segundo. Semelhante à taxa de solicitação, ela é compute agregando o número total de solicitações malsucedidas em um minuto e dividindo por 60.

Utilização do CPU (%)

Mostra a porcentagem média de utilização da CPU em todas as réplicas de servidor. No contexto da infraestrutura Databricks, uma réplica refere-se a nós de máquinas virtuais. Dependendo das configurações de simultaneidade configuradas, o Databricks cria várias réplicas para gerenciar o tráfego do modelo com eficiência.

Uso de memória (%)

Mostra a porcentagem média de utilização de memória em todas as réplicas de servidor.

simultaneidade de provisionamento

simultaneidade de provisionamento é o número máximo de solicitações paralelas que o sistema pode tratar. a simultaneidade de provisionamento se ajusta dinamicamente dentro dos limites mínimo e máximo da faixa de escalação compute , 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 utilização é calculada em média em todas as réplicas do servidor e amostrada uma vez por minuto. Observação: A amostragem pouco frequente significa que essa métrica é mais precisa sob uma carga constante.

Visualize essas métricas na UI de serviço no site tab de seu serviço endpoint.

Uso de memória 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 do Prometheus

Observação

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

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

  1. Escreva um arquivo de configuração yaml e nomeie-o prometheus.yml. O seguinte é 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. começar 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 serviço Prometheus local está funcionando.

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

  5. Assim que o destino estiver totalmente operacional, você poderá query as métricas fornecidas, como cpu_usage_percentage ou mem_usage_percentage, na IU.

Integração Datadog

Observação

A configuração preliminar para este exemplo é baseada na edição gratuita.

O Datadog possui uma variedade de agentes que podem ser implantados em diferentes ambientes. Para fins de demonstração, o seguinte inicia um agente Mac OS localmente que extrai o endpoint de métricas em seu host Databricks. A configuração para usar outros agentes deve seguir um padrão semelhante.

  1. registrar uma account datadog .

  2. Instale a integração do OpenMetrics no painel da suaaccount , para que o Datadog possa aceitar e processar os 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. Para este exemplo, a configuração está em ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. A seguir está um exemplo de arquivo yaml de configuração.

     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. começar agente datadog usando launchctl start com.datadoghq.agent.

  6. Toda vez que você precisar fazer alterações em sua configuração, será necessário reiniciar o agente para selecionar 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. Possíveis problemas podem ocorrer devido a tokens PAT expirados 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 IU em:http://127.0.0.1:5002/.

    Se o seu agente estiver totalmente instalado e funcionando, você pode navegar de volta ao seu painel do Datadog para query as métricas. Você também pode criar um monitor ou alerta com base nos dados de métricas:https://app.datadoghq.com/monitors/create/métricas.