Adicionar métricas personalizadas
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.
Colete métricas personalizadas de seus módulos do IoT Edge, além das métricas internas que os módulos do sistema fornecem. As métricas internas fornecem excelente visibilidade de linha de base na integridade da implantação. No entanto, você pode exigir informações adicionais de módulos personalizados para concluir a imagem. Os módulos personalizados podem ser integrados à sua solução de monitoramento usando a Biblioteca de clientes do Prometheus apropriada para emitir métricas. Essas informações adicionais podem habilitar novas exibições ou alertas especializados para seus requisitos.
Repositório de módulos de exemplo
Consulte o azure-samples repo para obter exemplos de módulos personalizados instrumentados para emitir métricas. Mesmo que um exemplo em seu idioma de preferência ainda não esteja disponível, a abordagem geral poderá ajudá-lo.
Convenções de nomenclatura
Consulte as práticas recomendadas dos documentos do Prometheus para obter diretrizes 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 do aplicativo IoT Central, ID do dispositivo do IoT Edge e a ID do módulo como rótulos (também chamados de rótulos/dimensões) 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 no repositório de exemplos. Sem esse contexto, é impossível associar um determinado valor de métrica a um dispositivo específico.
Inclua uma ID de instância nos rótulos. Uma ID de instância pode ser qualquer ID exclusiva, como um GUID gerado durante a inicialização do módulo. As informações de ID da instância podem ajudar a reconciliar reinicializações de 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
Depois que um módulo personalizado estiver emitindo métricas, a próxima etapa é configurar o módulo metrics-collector para coletar e transportar métricas personalizadas.
A variável de ambiente MetricsEndpointsCSV
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, inclua os pontos de extremidade do módulo do sistema, conforme mostrado no exemplo de configuração do coletor de métricas.
Observação
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 a 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 do 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 a coleta no 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ê poderá 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 à 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 ou do aplicativo IoT Central em vez do workspace do Log Analytics de apoio. 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 documentos das pastas de trabalho e consultas das pastas de trabalho coletadas do IoT Edge como um guia.
Quando estiver satisfeito com os resultados, você pode compartilhar a pasta de trabalho com sua equipe ou implantá-la programaticamente como parte das implantações de recursos da sua organização.
Próximas etapas
Explore as opções de visualização de métricas adicionais com as pastas de trabalho coletadas.