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:
Bashcurl -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:
Bashcurl -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 |
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
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.
-
Escreva um arquivo de configuração
yaml
e nomeie-oprometheus.yml
. Veja a seguir um exemplo:YAMLglobal:
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'] -
Comece a usar o Prometheus localmente com o seguinte comando:
Bashdocker run \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus -
Navegue até
http://localhost:9090
para verificar se o serviço local do Prometheus está funcionando. -
Verifique o status do raspador Prometheus e depure os erros em:
http://localhost:9090/targets?search=
-
Quando o alvo estiver totalmente instalado e em funcionamento, o senhor poderá consultar as métricas fornecidas, como
cpu_usage_percentage
oumem_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.
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.
-
registro no Datadog account.
-
Instale a integração do OpenMetrics em seu painelaccount, para que o Datadog possa aceitar e processar os dados do OpenMetrics.
-
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
edatadog-agent
. -
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çãoyaml
.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 -
Começar o agente datadog usando
launchctl start com.datadoghq.agent
. -
Sempre que precisar fazer alterações em sua configuração, você precisará reiniciar o agente para pegar a alteração.
Bashlaunchctl stop com.datadoghq.agent
launchctl start com.datadoghq.agent -
Verifique a integridade do agente com
datadog-agent health
. -
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.Bashopenmetrics (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) -
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.