Adicionar métricas personalizadas
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.
Reúna métricas personalizadas de seus módulos do IoT Edge, além das métricas internas fornecidas pelos módulos do sistema. As métricas internas fornecem excelente visibilidade da linha de base sobre a integridade da implantação. No entanto, você pode precisar de informações adicionais de módulos personalizados para completar o quadro. Módulos personalizados podem ser integrados à sua solução de monitoramento usando a biblioteca de cliente Prometheus apropriada para emitir métricas. Essas informações adicionais podem habilitar novas visualizações ou alertas especializados para suas necessidades.
Repositório de módulos de exemplo
Consulte o repositório azure-samples para obter exemplos de módulos personalizados instrumentados para emitir métricas. Mesmo que uma amostra na língua da sua escolha ainda não esteja disponível, a abordagem geral pode ajudá-lo.
Convenções de nomenclatura
Consulte as melhores práticas dos documentos Prometheus para obter orientações gerais. As recomendações adicionais a seguir podem ser úteis para cenários do IoT Edge.
Inclua o nome do módulo no início do nome da métrica para deixar claro qual módulo emitiu a métrica.
Inclua o nome do hub IoT ou o nome do aplicativo IoT Central, o ID do dispositivo IoT Edge e o ID do módulo como rótulos (também chamados de dimensões de tags/) em cada métrica. Essas informações estão disponíveis como variáveis de ambiente para cada módulo iniciado pelo agente do IoT Edge. A abordagem é demonstrada pelo exemplo em amostras repo. Sem esse contexto, é impossível associar um determinado valor métrico a um determinado dispositivo.
Inclua um ID de instância nos rótulos. Um ID de instância pode ser qualquer ID exclusivo, como um GUID gerado durante a inicialização do módulo. As informações de ID da instância podem ajudar a reconciliar as reinicializações do módulo ao processar as métricas de um módulo no back-end.
Configurar o coletor de métricas para coletar métricas personalizadas
Quando um módulo personalizado estiver emitindo métricas, a próxima etapa será configurar o módulo coletor de métricas para coletar e transportar métricas personalizadas.
A variável MetricsEndpointsCSV
de ambiente deve ser atualizada para incluir a URL do ponto de extremidade de métricas do módulo personalizado. Ao atualizar a variável de ambiente, certifique-se de incluir os pontos de extremidade do módulo do sistema, conforme mostrado no exemplo de configuração do coletor de métricas.
Nota
Por padrão, o ponto de extremidade de métricas de um módulo personalizado não precisa ser mapeado para uma porta de host para permitir que o coletor de métricas o acesse. A menos que explicitamente substituído, no Linux, ambos os módulos são iniciados em uma rede de ponte do Docker definida pelo usuário chamada azure-iot-edge.
As redes Docker definidas pelo usuário incluem um resolvedor DNS padrão que permite a comunicação entre módulos usando nomes de módulo (contêiner). Por exemplo, se um módulo personalizado chamado module1 estiver emitindo métricas na porta http 9600 no caminho /metrics, o coletor deverá ser configurado para coletar do ponto de extremidade http://module1:9600/metrics.
Execute o seguinte comando no dispositivo IoT Edge para testar se as métricas emitidas por um módulo personalizado na porta http 9600 no caminho /metrics estão acessíveis:
sudo docker exec replace-with-metrics-collector-module-name curl http://replace-with-custom-module-name:9600/metrics
Adicionar visualizações personalizadas
Depois de receber métricas personalizadas no Log Analytics, você pode criar visualizações e alertas personalizados. As pastas de trabalho de monitoramento podem ser aumentadas para adicionar visualizações com suporte de consulta.
Cada métrica está associada ao ID do recurso do hub IoT ou do aplicativo IoT Central. É por isso que você pode verificar se suas métricas personalizadas foram ingeridas corretamente na página Logs do hub IoT associado ou do aplicativo IoT Central, em vez do espaço de trabalho Log Analytics de backup. Use esta consulta KQL básica para verificar:
InsightsMetrics
| where Name == 'replace-with-custom-metric-name'
Depois de confirmar a ingestão, você pode criar uma nova pasta de trabalho ou aumentar uma pasta de trabalho existente. Use pastas de trabalho, documentos e consultas das pastas de trabalho selecionadas do IoT Edge como guia.
Quando estiver satisfeito com os resultados, você poderá compartilhar a pasta de trabalho com sua equipe ou implantá-la programaticamente como parte das implantações de recursos da sua organização.
Próximos passos
Explore opções adicionais de visualização de métricas com pastas de trabalho selecionadas.