Pular para o conteúdo principal

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 site desejado endpoint e tokens de acesso pessoal (PAT) que podem ser gerados em Settings (Configurações ) na UI Databricks Mosaic AI para acessar o site endpoint.

  • Um modelo de serviço existente endpoint. O senhor pode validar isso verificando a integridade do endpoint com o seguinte:

    Bash
    curl -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:

    Bash
    curl -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

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 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 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

nota

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.

  1. Escreva um arquivo de configuração yaml e nomeie-o prometheus.yml. Veja a seguir um exemplo:

    YAML
    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. Comece a usar o Prometheus localmente com o seguinte comando:

    Bash
       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 local do Prometheus está funcionando.

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

  5. Quando o alvo estiver totalmente instalado e em funcionamento, o senhor poderá consultar as métricas fornecidas, como cpu_usage_percentage ou mem_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.

nota

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.

  1. registro no Datadog account.

  2. Instale a integração do OpenMetrics em seu painelaccount, 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, inclusive 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. Veja a seguir um exemplo de arquivo de configuração yaml.

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

  6. Sempre que precisar fazer alterações em sua configuração, você precisará reiniciar o agente para pegar a alteração.

    Bash
     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 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.

    Bash
     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, 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.