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 |
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. Tal como acontece com o uso da GPU, essas métricas são calculadas em média entre as réplicas e amostradas a cada minuto. É mais confiável sob condições de carga consistentes. |
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.
Escreva um arquivo de configuração
yaml
e nomeie-oprometheus.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"]
começar Prometheus localmente com o seguinte comando:
docker 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 Prometheus local está funcionando.Verifique o status do raspador do Prometheus e depure os erros de:
http://localhost:9090/targets?search=
Assim que o destino estiver totalmente operacional, você poderá query as métricas fornecidas, como
cpu_usage_percentage
oumem_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.
registrar uma account datadog .
Instale a integração do OpenMetrics no painel da suaaccount , 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, incluindo
launchctl
edatadog-agent
.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 arquivoyaml
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
começar agente datadog usando
launchctl start com.datadoghq.agent
.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
Verifique a integridade do agente com
datadog-agent health
.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)
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.