Solucionar problemas do Azure Stream Analytics usando logs de recursos

Ocasionalmente, o processamento dos trabalhos do Azure Stream Analytics para inesperadamente. É importante conseguir resolver este tipo de evento. As falhas podem ser provocadas por um resultado de consulta inesperado, pela conectividade aos dispositivos ou por uma falha de serviço repentina. Os logs de recursos no Stream Analytics podem ajudá-lo a identificar a causa dos problemas quando eles ocorrem e reduzir o tempo de recuperação.

É altamente recomendável habilitar logs de recursos para todos os trabalhos, pois isso ajudará muito na depuração e no monitoramento.

Tipos de log

O Stream Analytics oferece dois tipos de logs:

  • Logs de atividades (sempre ativados), que fornecem informações sobre as operações executadas em trabalhos.

  • Logs de recursos (configuráveis), que fornecem informações mais detalhadas sobre tudo o que acontece com um trabalho. Os logs de recursos começam quando o trabalho é criado e terminam quando o trabalho é excluído. Eles cobrem eventos quando o trabalho é atualizado e enquanto está em execução.

Nota

Você pode usar serviços como o Armazenamento do Azure, Hubs de Eventos do Azure e logs do Azure Monitor para analisar dados não conformes. Você é cobrado com base no modelo de preços desses serviços.

Nota

Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Consulte Alterações de terminologia do Azure Monitor para obter detalhes.

Depuração usando logs de atividade

Os logs de atividades são ativados por padrão e fornecem informações de alto nível sobre as operações executadas pelo seu trabalho do Stream Analytics. As informações presentes nos registros de atividades podem ajudar a encontrar a causa raiz dos problemas que afetam seu trabalho. Execute as seguintes etapas para usar os logs de atividades no Stream Analytics:

  1. Entre no portal do Azure e selecione Log de atividades em Visão geral.

    Registro de atividades do Stream Analytics

  2. Você pode ver uma lista de operações que foram executadas. Qualquer operação que tenha causado a falha do seu trabalho tem uma bolha de informação vermelha.

  3. Selecione uma operação para ver sua exibição de resumo. As informações aqui são muitas vezes limitadas. Para saber mais detalhes sobre a operação, selecione JSON.

    Resumo da operação do log de atividades do Stream Analytics

  4. Role para baixo até a seção Propriedades do JSON, que fornece detalhes do erro que causou a operação com falha. Neste exemplo, a falha foi devido a um erro de tempo de execução de valores de latitude fora do limite. A discrepância nos dados processados por um trabalho do Stream Analytics causa um erro de dados. Você pode aprender sobre diferentes erros de dados de entrada e saída e por que eles ocorrem.

    Detalhes do erro JSON

  5. Você pode tomar ações corretivas com base na mensagem de erro em JSON. Neste exemplo, verificações para garantir que o valor de latitude esteja entre -90 graus e 90 graus precisam ser adicionadas à consulta.

  6. Se a mensagem de erro nos logs de atividade não for útil para identificar a causa raiz, habilite os logs de recursos e use os logs do Azure Monitor.

Enviar diagnósticos para logs do Azure Monitor

É altamente recomendável ativar os logs de recursos e enviá-los para os logs do Azure Monitor. Eles estão desativados por padrão. Para ativá-los, conclua estas etapas:

  1. Crie um espaço de trabalho do Log Analytics se ainda não tiver um. É recomendável ter seu espaço de trabalho do Log Analytics na mesma região do trabalho do Stream Analytics.

  2. Entre no portal do Azure e navegue até seu trabalho do Stream Analytics. Em Monitoramento, selecione Logs de diagnóstico. Em seguida, selecione Ativar diagnóstico.

    Navegação por lâmina para logs de recursos

  3. Forneça um Nome no nome das configurações de diagnóstico e marque as caixas Execuçãoe Criação em log e AllMetrics em métrica. Em seguida, selecione Enviar para o Log Analytics e escolha seu espaço de trabalho. Selecione Guardar.

    Configurações para logs de recursos

  4. Quando o trabalho do Stream Analytics é iniciado, os logs de recursos são roteados para o espaço de trabalho do Log Analytics. Para exibir os logs de recursos do seu trabalho, selecione Logs na seção Monitoramento.

    A captura de tela mostra o menu Geral com Logs selecionados.

  5. O Stream Analytics fornece consultas predefinidas que lhe permitem pesquisar facilmente os registos em que está interessado. Você pode selecionar quaisquer consultas predefinidas no painel esquerdo e, em seguida, selecionar Executar. Você verá os resultados da consulta no painel inferior.

    A captura de tela mostra os logs de um trabalho do Stream Analytics.

Categorias de log de recursos

O Azure Stream Analytics captura duas categorias de logs de recursos:

  • Criação: captura eventos de log relacionados a operações de criação de trabalho, como criação de trabalho, adição e exclusão de entradas e saídas, adição e atualização da consulta e início ou interrupção do trabalho.

  • Execução: Captura eventos que ocorrem durante a execução do trabalho.

    • Erros de conectividade
    • Erros de processamento de dados, incluindo:
      • Eventos que não estão em conformidade com a definição de consulta (tipos e valores de campo incompatíveis, campos ausentes e assim por diante)
      • Erros de avaliação de expressão
    • Outros eventos e erros

Esquema de logs de recursos

Todos os logs são armazenados no formato JSON. Cada entrada tem os seguintes campos de cadeia de caracteres comuns:

Nome Descrição
hora Carimbo de data/hora (em UTC) do log.
resourceId ID do recurso em que a operação ocorreu, em maiúsculas. Inclui o ID da subscrição, o grupo de recursos e o nome da tarefa. Por exemplo, /SUBSCRIPTIONS/6503D296-DAC1-4449-9B03-609A1F4A1C87/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT. STREAMANALYTICS/STREAMINGJOBS/MYSTREAMINGJOB.
category Categoria de log, Execução ou Criação.
operationName Nome da operação que é registrada. Por exemplo, Send Events: SQL Output write failure to mysqloutput.
status Estado da operação. Por exemplo, Falhou ou Teve êxito.
nível Nível de log. Por exemplo, Erro, Aviso ou Informativo.
propriedades Detalhe específico da entrada de log, serializado como uma cadeia de caracteres JSON. Para obter mais informações, consulte as seções a seguir neste artigo.

Esquema de propriedades do log de execução

Os logs de execução têm informações sobre eventos que aconteceram durante a execução do trabalho do Stream Analytics. O esquema de propriedades varia dependendo se o evento é um erro de dados ou um evento genérico.

Erros de dados

Qualquer erro que ocorra enquanto o trabalho está processando dados está nessa categoria de logs. Na maioria das vezes, esses logs são criados durante operações de leitura, serialização e gravação de dados. Esses logs não incluem erros de conectividade. Os erros de conectividade são tratados como eventos genéricos. Você pode aprender mais sobre a causa de vários erros de dados de entrada e saída diferentes.

Nome Descrição
Origem Nome da entrada ou saída do trabalho onde o erro ocorreu.
Mensagem Mensagem associada ao erro.
Type Tipo de erro. Por exemplo, DataConversionError, CsvParserError ou ServiceBusPropertyColumnMissingError.
Dados Contém dados que são úteis para localizar com precisão a origem do erro. Sujeito a truncamento, dependendo do tamanho.

Dependendo do valor operationName, os erros de dados têm o seguinte esquema:

  • Os eventos de serialização ocorrem durante operações de leitura de eventos. Eles ocorrem quando os dados na entrada não satisfazem o esquema de consulta por um destes motivos:

    • Incompatibilidade de tipo durante a serialização/desserialização de eventos: identifica o campo que está causando o erro.

    • Não é possível ler um evento, serialização inválida: lista informações sobre o local nos dados de entrada onde o erro ocorreu. Inclui nome de blob para entrada de blob, deslocamento e uma amostra dos dados.

  • Os eventos de envio ocorrem durante as operações de gravação. Eles identificam o evento de streaming que causou o erro.

Eventos genéricos

Os eventos genéricos abrangem tudo o resto.

Nome Descrição
Erro (facultativo) Informações de erro. Normalmente, é a informação de exceção, se estiver disponível.
Mensagem Mensagem de registo.
Type Tipo de mensagem. Mapeia para categorização interna de erros. Por exemplo, JobValidationError ou BlobOutputAdapterInitializationFailure.
ID de Correlação GUID que identifica exclusivamente a execução do trabalho. Todas as entradas do log de execução desde o momento em que o trabalho é iniciado até o trabalho parar têm o mesmo valor de ID de correlação.

Para referência, consulte uma lista de todos os tipos de categoria de logs de recursos com suporte no Azure Monitor ou todos os tipos de categoria de log de recursos coletados para o Azure Stream Analytics.

Próximos passos