Monitorar os pontos de extremidade online
O Azure Machine Learning usa a integração com o Azure Monitor para acompanhar e monitorar métricas e logs de pontos de extremidade online. Você pode exibir métricas em gráficos, comparar pontos de extremidade e implantações, fixar em painéis do portal do Azure, configurar alertas, consultar de tabelas de log e enviar logs por push para destinos com suporte. Você também pode usar o Application Insights para analisar eventos de contêineres de usuário.
Métricas: para métricas no nível do ponto de extremidade, como latência de solicitação, solicitações por minuto, novas conexões por segundo e bytes de rede, você pode fazer drill down para ver detalhes no nível de implantação ou de status. As métricas de nível de implantação, como utilização de CPU/GPU e utilização de memória ou disco, também podem ser detalhadas no nível da instância. O Azure Monitor permite que você acompanhe essas métricas em gráficos e configure dashboards e alertas para análise adicional.
Logs: você pode enviar métricas para o workspace do Log Analytics, onde você pode consultar os logs usando a sintaxe de consulta Kusto. Você também pode enviar métricas para contas de Armazenamento do Microsoft Azure e/ou Hubs de Eventos para processamento posterior. Além disso, você pode usar tabelas de log dedicadas para eventos relacionados a pontos de extremidade online, tráfego e logs de console (contêiner). A consulta Kusto permite análises complexas e unir várias tabelas.
Application Insights: os ambientes selecionados incluem a integração com o Application Insights, e você pode habilitar ou desabilitar essa integração ao criar uma implantação online. As métricas e os logs integrados são enviados para o Application Insights, e você pode usar os recursos integrados do Application Insights (como Métricas Dinâmicas, Pesquisa de Transações, Falhas e Desempenho) para análises adicionais.
Neste artigo, você aprenderá a:
- Escolher o método certo para exibir e acompanhar métricas e logs
- Ver as métricas do ponto de extremidade online gerenciado
- Criar um painel para suas métricas
- Criar um alerta de métrica
- Ver os logs do ponto de extremidade online
- Usar o Application Insights para acompanhar métricas e logs
Pré-requisitos
- Implantar um ponto de extremidade online do Azure Machine Learning.
- Você precisa ter, pelo menos, acesso de Leitor no ponto de extremidade.
Métricas
Você pode exibir páginas de métricas para pontos de extremidade online ou implantações no portal do Azure. Uma maneira fácil de acessar essas páginas de métricas é por meio de links disponíveis na interface do usuário Estúdio do Azure Machine Learning, especificamente na guia Detalhes da página de um ponto de extremidade. Seguir esses links levará você para a página de métricas exatas no portal do Azure para o ponto de extremidade ou implantação. Como alternativa, você também pode entrar no portal do Azure para pesquisar a página de métricas para o ponto de extremidade ou a implantação.
Para acessar as páginas de métricas por meio de links disponíveis no estúdio:
Vá para o estúdio do Azure Machine Learning.
Na barra de navegação à esquerda, selecione a página Pontos de extremidade.
Selecione um ponto de extremidade clicando em seu nome.
Selecione Exibir métricas na seção Atributos do ponto de extremidade para abrir a página de métricas do ponto de extremidade no portal do Azure.
Selecione Exibir métricas na seção para cada implantação disponível para abrir a página de métricas da implantação no portal do Azure.
Para acessar as métricas diretamente do portal do Azure:
Entre no portal do Azure.
Acesse o recurso de implantação ou o ponto de extremidade online.
As implantações e os pontos de extremidade online são recursos do ARM (Azure Resource Manager) que podem ser encontrados acessando o grupo de recursos que os contém. Procure os tipos de recursos ponto de extremidade online do Machine Learning e implantação online do Machine Learning.
Na coluna à esquerda, selecione Métricas.
Métricas disponíveis
Dependendo do recurso selecionado, as métricas que você verá serão diferentes. As métricas têm um escopo diferente para implantações online e pontos de extremidade online.
Métricas no escopo do ponto de extremidade
Categoria: Tráfego
Metric | Nome na API REST | Unidade | Agregação | Dimensões | Granularidade de tempo | Exportação de DS |
---|---|---|---|---|---|---|
Conexões ativas O número total de conexões TCP simultâneas ativas de clientes. |
ConnectionsActive |
Contagem | Média | <none> | PT1M | Não |
Erros de coleta de dados por minuto O número de eventos de coleta de dados removidos por minuto. |
DataCollectionErrorsPerMinute |
Count | Mínimo, Máximo, Média | deployment , reason , type |
PT1M | Não |
Eventos de coleta de dados por minuto O número de eventos de coleta de dados processados por minuto. |
DataCollectionEventsPerMinute |
Count | Mínimo, Máximo, Média | deployment , type |
PT1M | Não |
Bytes de rede Os bytes por segundo servidos para o ponto de extremidade. |
NetworkBytes |
BytesPerSecond | Média | <none> | PT1M | Não |
Novas conexões por segundo O número médio de novas conexões TCP por segundo estabelecidas de clientes. |
NewConnectionsPerSecond |
CountPerSecond | Média | <none> | PT1M | Não |
Latência da solicitação O intervalo completo médio de tempo gasto para que uma solicitação seja respondida em milissegundos |
RequestLatency |
Milissegundos | Média | deployment |
PT1M | Sim |
Latência da solicitação P50 A latência média de solicitação P50 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P50 |
Milissegundos | Média | deployment |
PT1M | Sim |
Latência de solicitação P90 A latência média de solicitação P90 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P90 |
Milissegundos | Média | deployment |
PT1M | Sim |
Latência de solicitação P95 A latência média de solicitação P95 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P95 |
Milissegundos | Média | deployment |
PT1M | Sim |
Latência de solicitação P99 A latência média de solicitação P99 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P99 |
Milissegundos | Média | deployment |
PT1M | Sim |
Solicitações por minuto O número de solicitações enviadas ao ponto de extremidade online em um minuto |
RequestsPerMinute |
Contagem | Média | deployment , statusCode , statusCodeClass , modelStatusCode |
PT1M | Não |
Limitação de largura de banda
A largura de banda será limitada se os limites de cota forem excedidos para pontos de extremidade online gerenciados. Para obter mais informações sobre limites, consulte o artigo sobre limites para pontos de extremidade online. Para determinar se as solicitações são limitadas:
- Monitorar a métrica de "bytes de rede"
- Os trailers de resposta terão os campos:
ms-azureml-bandwidth-request-delay-ms
ems-azureml-bandwidth-response-delay-ms
. Os valores dos campos são os atrasos de limitação da largura de banda, em milissegundos.
Para obter mais informações, confira Problemas de limite de largura de banda.
Métricas no escopo da implantação
Categoria: Recurso
Metric | Nome na API REST | Unidade | Agregação | Dimensões | Granularidade de tempo | Exportação de DS |
---|---|---|---|---|---|---|
Percentual de utilização de memória da CPU Percentual de utilização de memória em uma instância. A utilização é relatada em intervalos de um minuto. |
CpuMemoryUtilizationPercentage |
Percentual | Mínimo, Máximo, Média | instanceId |
PT1M | Sim |
Porcentagem de utilização de CPU Percentual de utilização de CPU em uma instância. A utilização é relatada em intervalos de um minuto. |
CpuUtilizationPercentage |
Percentual | Mínimo, Máximo, Média | instanceId |
PT1M | Sim |
Erros de coleta de dados por minuto O número de eventos de coleta de dados removidos por minuto. |
DataCollectionErrorsPerMinute |
Count | Mínimo, Máximo, Média | instanceId , reason , type |
PT1M | Não |
Eventos de coleta de dados por minuto O número de eventos de coleta de dados processados por minuto. |
DataCollectionEventsPerMinute |
Count | Mínimo, Máximo, Média | instanceId , type |
PT1M | Não |
Capacidade de implantação O número de instâncias na implantação. |
DeploymentCapacity |
Count | Mínimo, Máximo, Média | instanceId , State |
PT1M | Não |
Utilização do disco Percentual de utilização de disco em uma instância. A utilização é relatada em intervalos de um minuto. |
DiskUtilization |
Percentual | Mínimo, Máximo, Média | instanceId , disk |
PT1M | Sim |
Energia da GPU em Joules Energia de intervalo em joules em um nó de GPU. A energia é relatada em intervalos de um minuto. |
GpuEnergyJoules |
Count | Mínimo, Máximo, Média | instanceId |
PT1M | Não |
Percentual de utilização de memória da GPU Percentual de utilização de memória da GPU em uma instância. A utilização é relatada em intervalos de um minuto. |
GpuMemoryUtilizationPercentage |
Percentual | Mínimo, Máximo, Média | instanceId |
PT1M | Sim |
Percentual de utilização da GPU Percentual de utilização da GPU em uma instância. A utilização é relatada em intervalos de um minuto. |
GpuUtilizationPercentage |
Percentual | Mínimo, Máximo, Média | instanceId |
PT1M | Sim |
Categoria: Tráfego
Metric | Nome na API REST | Unidade | Agregação | Dimensões | Granularidade de tempo | Exportação de DS |
---|---|---|---|---|---|---|
Latência da solicitação P50 A latência média de solicitação P50 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P50 |
Milissegundos | Média | <none> | PT1M | Sim |
Latência de solicitação P90 A latência média de solicitação P90 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P90 |
Milissegundos | Média | <none> | PT1M | Sim |
Latência de solicitação P95 A latência média de solicitação P95 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P95 |
Milissegundos | Média | <none> | PT1M | Sim |
Latência de solicitação P99 A latência média de solicitação P99 agregada por todos os valores de latência de solicitação coletados durante o período selecionado |
RequestLatency_P99 |
Milissegundos | Média | <none> | PT1M | Sim |
Solicitações por minuto O número de solicitações enviadas à implantação online em um minuto |
RequestsPerMinute |
Contagem | Média | envoy_response_code |
PT1M | Não |
Criar painéis e alertas
O Azure Monitor permite que você crie dashboards e alertas, com base em métricas.
Criar painéis e visualizar consultas
Você pode criar painéis personalizados e visualizar métricas de várias fontes no portal do Azure, incluindo as métricas do seu ponto de extremidade online. Para obter mais informações sobre como criar painéis e visualizar consultas, confira Painéis usando dados de log e Painéis usando dados do aplicativo.
Criar alertas
Você também pode criar alertas personalizados para receber notificações sobre atualizações de status importantes no ponto de extremidade online:
No canto superior direito da página de métricas, selecione Nova regra de alerta.
Selecione um nome de condição para especificar quando o alerta deve ser disparado.
Selecione Adicionar grupos de ações>Criar grupos de ações para especificar o que deve acontecer quando o alerta é disparado.
Escolha Criar regra de alerta para concluir a criação do alerta.
Para obter mais informações, confira Criar regras de alerta do Azure Monitor.
Habilitar o dimensionamento automático com base em métricas
Você pode habilitar o dimensionamento automático de implantações usando métricas usando a interface do usuário ou o código. Ao usar código (CLI ou SDK), você pode usar IDs de métricas listadas na tabela de métricas disponíveis em condição para disparar o dimensionamento automático. Para obter mais informações, confira Pontos de extremidade online com dimensionamento automático.
Logs
Há três logs que podem ser habilitados para pontos de extremidade online:
AmlOnlineEndpointTrafficLog: você pode optar por habilitar logs de tráfego se quiser verificar as informações da sua solicitação. Veja abaixo alguns casos:
Se a resposta não for 200, verifique o valor da coluna “ResponseCodeReason” para ver o que aconteceu. Verifique também o motivo na seção "Códigos de status HTTPS" do artigo Solucionar problemas de pontos de extremidade online.
Você pode verificar o código de resposta e o motivo da resposta do modelo na coluna “ModelStatusCode” e “ModelStatusReason”.
Você deseja verificar a duração da solicitação, como a duração total, a duração da solicitação/resposta e o atraso causado pela limitação da largura de banda. Você pode verificar nos logs para ver a latência do detalhamento.
Se você quiser verificar o número de solicitações ou solicitações com falha recentes. Você também pode habilitar os logs.
AmlOnlineEndpointConsoleLog: contém logs que os contêineres geram para o console. Veja abaixo alguns casos:
Se o contêiner não for iniciado, o log do console poderá ser útil para depuração.
Monitore o comportamento do contêiner e verifique se todas as solicitações são identificadas corretamente.
Grave as IDs de solicitação no log do console. Ao ingressar a ID da solicitação, o AmlOnlineEndpointConsoleLog e o AmlOnlineEndpointTrafficLog no workspace do Log Analytics, você pode rastrear uma solicitação do ponto de entrada de rede de um ponto de extremidade online para o contêiner.
Você também pode usar esse log para análise de desempenho na determinação do tempo exigido pelo modelo para processar cada solicitação.
AmlOnlineEndpointEventLog: contém informações de evento sobre o ciclo de vida do contêiner. Atualmente, fornecemos informações sobre os seguintes tipos de eventos:
Nome Mensagem BackOff Retirar a reinicialização do contêiner com falha Pull efetuado Imagem de contêiner "<IMAGE_NAME>" já presente no computador Encerrando A investigação de atividade com falha no servidor de inferência do contêiner será reiniciada Criado Buscador de imagens de contêiner criado Criado Servidor de inferência de contêiner criado Criado Montagem de modelo de contêiner criado LivenessProbeFailed Falha na investigação de atividade: <FAILURE_CONTENT> ReadinessProbeFailed Falha na investigação de preparação: <FAILURE_CONTENT> Iniciado Buscador de imagens de contêiner iniciado Iniciado Servidor de inferência de contêiner iniciado Iniciado Montagem de modelo de contêiner iniciado Encerrando Servidor de inferência de contêiner interrompido Encerrando Montagem de modelo de contêiner interrompido
Como habilitar/desabilitar logs
Importante
O registro em log usa o Log Analytics do Azure. Se você não tiver um espaço de trabalho do Log Analytics, você pode criar um usando as etapas em Criar um espaço de trabalho do Log Analytics no portal do Azure.
No portal do Azure, acesse o grupo de recursos que contém o ponto de extremidade e selecione o ponto de extremidade.
Na seção Monitoramento à esquerda da página, selecione Configurações de diagnóstico e, em seguida, Adicionar configurações.
Selecione as categorias de log a serem habilitadas, selecione Enviado para o workspace do Log Analytics e, em seguida, selecione o workspace do Log Analytics a ser usado. Por fim, insira um Nome de configuração de diagnóstico e selecione Salvar.
Importante
Pode levar até uma hora para que a conexão com o workspace do Log Analytics seja habilitada. Aguarde uma hora antes de prosseguir com as próximas etapas.
Envie as solicitações de pontuação para o ponto de extremidade. Essa atividade deve criar entradas nos logs.
Nas propriedades do ponto de extremidade online ou no workspace do Log Analytics, selecione Logs à esquerda da tela.
Feche o diálogo Consultas que é aberto automaticamente e clique duas vezes em AmlOnlineEndpointConsoleLog. Caso não o veja, use o campo Pesquisa.
Selecione Executar.
Consultas de exemplo
Você pode encontrar consultas de exemplo na guia Consultas ao exibir logs. Pesquise o Ponto de extremidade online para encontrar consultas de exemplo.
Detalhes da coluna de log
As tabelas a seguir fornecem detalhes sobre os dados armazenados em cada log:
AmlOnlineEndpointTrafficLog
Propriedade | Descrição |
---|---|
Método | O método solicitado pelo cliente. |
Caminho | O caminho solicitado pelo cliente. |
SubscriptionId | A ID da assinatura de machine learning do ponto de extremidade online. |
AzureMLWorkspaceId | A ID do workspace de machine learning do ponto de extremidade online. |
AzureMLWorkspaceName | O nome do espaço de trabalho de machine learning do ponto de extremidade online. |
EndpointName | O nome do ponto de extremidade online. |
DeploymentName | O nome da implantação online. |
Protocolo | O protocolo da solicitação. |
ResponseCode | O código de resposta final retornado ao cliente. |
ResponseCodeReason | O motivo do código de resposta final retornado ao cliente. |
ModelStatusCode | O código de status da resposta do modelo. |
ModelStatusReason | O motivo do status da resposta do modelo. |
RequestPayloadSize | O total de bytes recebidos do cliente. |
ResponsePayloadSize | O total de bytes enviados de volta ao cliente. |
UserAgent | O cabeçalho usuário-agente da solicitação, incluindo comentários, mas truncado para um máximo de 70 caracteres. |
XRequestId | A ID de solicitação gerada pelo Azure Machine Learning para rastreamento interno. |
XMSClientRequestId | A ID de rastreamento gerada pelo cliente. |
TotalDurationMs | Duração em milissegundos da hora de início da solicitação até o último byte de resposta enviado de volta ao cliente. Se o cliente estiver desconectado, ele medirá da hora de início até a hora de desconexão do cliente. |
RequestDurationMs | Duração em milissegundos da hora de início da solicitação até o último byte da solicitação recebida do cliente. |
ResponseDurationMs | Duração em milissegundos da hora de início da solicitação até o primeiro byte de resposta lido do modelo. |
RequestThrottlingDelayMs | Atraso em milissegundos na transferência de dados da solicitação devido à limitação da largura de banda. |
ResponseThrottlingDelayMs | Atraso em milissegundos na transferência de dados da resposta devido à limitação da largura de banda. |
AmlOnlineEndpointConsoleLog
Propriedade | Descrição |
---|---|
TimeGenerated | O carimbo de data/hora (UTC) de quando o log foi gerado. |
OperationName | A operação associada ao registro de log. |
InstanceId | A ID da instância que gerou esse registro de log. |
DeploymentName | O nome da implantação associada ao registro de log. |
ContainerName | O nome do contêiner em que o log foi gerado. |
Mensagem | O conteúdo do log. |
AmlOnlineEndpointEventLog
Propriedade | Descrição |
---|---|
TimeGenerated | O carimbo de data/hora (UTC) de quando o log foi gerado. |
OperationName | A operação associada ao registro de log. |
InstanceId | A ID da instância que gerou esse registro de log. |
DeploymentName | O nome da implantação associada ao registro de log. |
Nome | O nome do evento. |
Mensagem | O conteúdo do evento. |
Usando o Application Insights
Os ambientes selecionados incluem a integração com o Application Insights, e você pode habilitar ou desabilitar essa integração ao criar uma implantação online. As métricas e os logs integrados são enviados para o Application Insights, e você pode usar os recursos integrados do Application Insights (como Métricas Dinâmicas, Pesquisa de Transações, Falhas e Desempenho) para análises adicionais.
Confira visão geral do Application Insights para obter mais informações.
No estúdio, você pode usar a guia Monitoramento na página de um ponto de extremidade online para ver grafos de monitor de atividade de alto nível para o ponto de extremidade online gerenciado. Para usar a guia Monitoramento, você deve selecionar Habilitar o diagnóstico e a coleta de dados do Application Insights ao criar seu ponto de extremidade.
Conteúdo relacionado
- Saiba como ver os custos do ponto de extremidade implantado.
- Leia mais sobre o Metrics Explorer.