Monitorar a coleta de dados DCR no Azure Monitor
Este artigo fornece métricas e logs detalhados que você pode usar para monitorar o desempenho e solucionar quaisquer problemas relacionados à coleta de dados no Azure Monitor. Essa telemetria está atualmente disponível para cenários de coleta de dados definidos por uma DCR (regras de coleta de dados), como o agente do Azure Monitor e a API de ingestão de Logs.
Importante
Este artigo refere-se apenas a cenários de coleta de dados que usam DCRs, incluindo o seguinte:
- Logs coletados usando o Azure Monitor Agent (AMA)
- Logs ingeridos usando a API de ingestão de logs
- Logs coletados por outros métodos que usam um DCR de transformação de espaço de trabalho
Consulte a documentação para obter outros cenários para obter informações de monitoramento e solução de problemas que possam estar disponíveis.
Os recursos de diagnóstico DCR incluem métricas e logs de erros emitidos durante o processamento de logs. As métricas DCR fornecem informações sobre o volume de dados que estão sendo ingeridos, o número e a natureza de quaisquer erros de processamento e estatísticas relacionadas à transformação de dados. Os logs de erro DCR são gerados sempre que o processamento de dados não é bem-sucedido e os dados não chegam ao seu destino.
Logs de erro DCR
Os registos de erros são gerados quando os dados chegam ao pipeline de ingestão do Azure Monitor, mas não conseguem chegar ao seu destino. Exemplos de condições de erro incluem:
- Registar erros de entrega
- Erros de transformação em que a estrutura dos logs torna o KQL de transformação inválido
- Registrar chamadas de API de ingestão:
- com qualquer resposta HTTP diferente de 200/202
- com carga útil contendo dados malformados
- com carga útil acima de quaisquer limites de ingestão
- limitação devido à ultrapassagem dos limites de chamadas API
Para evitar o registro excessivo de erros persistentes relacionados ao mesmo fluxo de dados, alguns erros serão registrados apenas um número limitado de vezes a cada hora, seguido por uma mensagem de erro resumida. O erro é então silenciado até o final da hora. O número de vezes que um determinado erro é registrado pode variar dependendo da região onde o DCR é implantado.
Alguns erros de ingestão de log não serão registrados porque não podem ser associados a um DCR. Os seguintes erros não podem ser registrados:
- Falhas causadas por URI de chamada malformado (código de resposta HTTP 404)
- Certos erros internos do servidor (código de resposta HTTP 500)
Ativar logs de erro DCR
Os logs de erro DCR são implementados como logs de recursos no Azure Monitor. Habilite a coleta de logs criando uma configuração de diagnóstico para o DCR. Cada DCR exigirá sua própria configuração de diagnóstico. Consulte Criar configurações de diagnóstico no Azure Monitor para obter o processo detalhado. Selecione a categoria Erros de log e Enviar para o espaço de trabalho do Log Analytics. Talvez você queira selecionar o mesmo espaço de trabalho usado pelo DCR ou consolidar todos os logs de erro em um único espaço de trabalho.
Recuperar logs de erro DCR
Os logs de erros são gravados na tabela DCRLogErrors no espaço de trabalho do Log Analytics especificado na configuração de diagnóstico. A seguir estão exemplos de consultas que você pode usar no Log Analytics para recuperar esses logs.
Recuperar todos os logs de erro de um DCR específico
DCRLogErrors
| where _ResourceId == "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
Recuperar todos os logs de erro de um fluxo de entrada específico em um DCR específico
DCRLogErrors
| where _ResourceId == "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
| where InputStreamId == "Custom-MyTable_CL"
Métricas DCR
As métricas de DCR são coletadas automaticamente para todos os DCRs, e você pode analisá-las usando o explorador de métricas, como as métricas de plataforma para outros recursos do Azure. O fluxo de entrada é incluído como uma dimensão, portanto, se você tiver um DCR com vários fluxos de entrada, poderá analisar cada um filtrando ou dividindo. Algumas métricas incluem outras dimensões, conforme mostrado na tabela abaixo.
Métrica | Dimensões | Descrição |
---|---|---|
Bytes de ingestão de registos por minuto | Fluxo de Entrada | Número total de bytes recebidos por minuto. |
Pedidos de ingestão de registos por minuto | Fluxo de entrada Código de resposta HTTP |
Número de chamadas recebidas por minuto |
Registos Linhas eliminadas por minuto | Fluxo de entrada | Número de linhas de registo eliminadas durante o processamento por minuto. Isto inclui as linhas eliminadas devido a critérios de filtragem na transformação KQL e as linhas eliminadas devido a erros. |
Registos Linhas recebidas por minuto | Fluxo de entrada | Número de linhas de registo recebidas para processamento por minuto. |
Logs Duração da transformação por minuto | Fluxo de entrada | Tempo médio de execução da transformação KQL por minuto. Representa a eficiência do código de transformação KQL. Os fluxos de dados com um tempo de execução de transformação mais longo podem registar atrasos no processamento de dados e uma maior latência de dados. |
Registos Erros de transformação por minuto | Fluxo de entrada Tipo de erro |
Número de erros de processamento encontrados por minuto |
Monitorando sua ingestão de log
Os sinais a seguir podem ser úteis para monitorar a integridade de sua coleção de logs com DCRs. Crie regras de alerta para identificar essas condições.
Sinal | Possíveis causas e ações |
---|---|
Novas entradas DCRErrorLogs ou mudança repentina no Log Transform Errors . |
- Problemas com a configuração da API de Ingestão de Log, como autenticação, acesso a DCR ou DCE, problemas de carga útil de chamadas. - Alterações na estrutura de dados causando falhas na transformação do KQL. - Alterações na configuração de destino de dados causando falhas na entrega de dados. |
Alteração súbita na Logs Ingestion Bytes per Min |
- Alterações na configuração de ingestão de log no cliente, incluindo configurações de AMA. - Alterações na estrutura dos logs enviados. |
Alteração súbita da relação entre Logs Ingestion Bytes per Min e Logs Rows Received per Min |
- Alterações na estrutura dos logs enviados. Examine as alterações para garantir que os dados sejam processados corretamente com a transformação KQL. |
Alteração súbita na Logs Transformation Duration per Min |
- Mudanças na estrutura de logs que afetam a eficiência dos critérios de filtragem de log definidos na transformação KQL. Examine as alterações para garantir que os dados sejam processados corretamente com a transformação KQL. |
Logs Ingestion Requests per Min ou Logs Ingestion Bytes per Min aproximando-se dos limites do serviço da API de Ingestão de Log. |
- Examine e otimize sua configuração DCR para evitar limitação. |
Alertas
Em vez de solucionar problemas reativamente, crie regras de alerta para ser notificado proativamente quando ocorrer uma possível condição de erro. A tabela a seguir fornece exemplos de regras de alerta que você pode criar para monitorar sua ingestão de log.
Condição | Detalhes do alerta |
---|---|
Mudanças repentinas de linhas caídas | Regra de alerta métrico usando um limite dinâmico para Logs Rows Dropped per Min . |
Número de chamadas de API que se aproximam dos limites de serviço | Regra de alerta métrico usando um limite estático para Logs Ingestion Requests per Min . Defina o limite perto de 12.000, que é o limite de serviço para o máximo de solicitações/minuto por DCR. |
Registos de erros | Alerta de consulta de log usando DCRLogErrors o . Use uma medida de linhas de tabela e um valor de limite de 1 para ser alertado sempre que algum erro for registrado. |