Solucionar problemas do Azure Stream Analytics usando logs de recursos

Ocasionalmente, um trabalho do Stream Analytics do Azure interrompe o processamento de forma inesperada. É importante conseguir resolver esse tipo de evento. As falhas podem ser causadas por um resultado de consulta inesperado, pela conexão com dispositivos ou por uma interrupção inesperada do serviço. Os logs de recursos do Azure Stream Analytics podem ajudá-lo a identificar a causa dos problemas assim que eles ocorrem e reduzir o tempo de recuperação.

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

Tipos de logs

O Stream Analytics oferece dois tipos de logs:

  • Logs de atividades (Always On), que fornecem informações sobre as operações realizadas nos trabalhos.

  • Logs de recursos (configuráveis), que fornecem informações mais avançadas sobre tudo o que acontece com um trabalho. Os logs de recursos são iniciados quando o trabalho é criado e terminam quando o trabalho é excluído. Eles abrangem eventos quando o trabalho é atualizado e durante sua execução.

Observação

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

Observação

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. Confira as alterações de terminologia do Azure Monitor para obter detalhes.

Depurando com o uso de logs de atividades

Os logs de atividades são ativados por padrão e fornecem insights de alto nível sobre as operações realizadas pelo trabalho do Stream Analytics. As informações presentes nos logs 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.

    Log de atividades do Stream Analytics

  2. Você pode ver uma lista das operações que foram executadas. As operações que causaram a falha do trabalho têm uma bolha de informações em vermelho.

  3. Selecione uma operação para ver a exibição do respectivo resumo. As informações fornecidas aqui costumam ser limitadas. Para obter mais detalhes sobre a operação, selecioneJSON.

    Resumo de operações do log de atividades do Stream Analytics

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

    Detalhes do erro JSON

  5. Você pode realizar ações corretivas com base na mensagem de erro no JSON. Neste exemplo, será necessário adicionar verificações do valor de latitude entre -90 graus e 90 graus à consulta.

  6. Se a mensagem de erro nos Logs de atividades não ajudar a 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 habilitar os logs de recursos e enviá-los para os logs do Azure Monitor. Eles ficam desativados por padrão. Para habilitá-los, conclua estas etapas:

  1. Crie um espaço de trabalho do Log Analytics se você ainda não tiver um. É recomendável que seu workspace do Log Analytics esteja na mesma região que o seu trabalho no Stream Analytics.

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

    Navegação no portal para los de recursos

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

    Configurações para logs de recursos

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

    Captura de tela mostra o menu Geral com Logs selecionados.

  5. O Azure Stream Analytics fornece consultas predefinidas que lhe permitem pesquisar facilmente os logs nos quais você estiver interessado. Você pode selecionar qualquer consulta predefinida no painel à esquerda e, em seguida, selecionar Executar. Você verá os resultados da consulta no painel inferior.

    Captura de tela mostra os Logs de um trabalho do Azure 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 a criação de trabalho, a adição e exclusão de entradas e saídas, a adição e atualização da consulta e o início e parada 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 (valores e tipos de campo sem correspondência, campos ausentes e assim por diante)
      • Erros de avaliação da expressão
    • Outros erros e eventos

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
time Carimbo de data/hora (em UTC) do log.
resourceId ID do recurso em que a operação ocorreu, em maiúsculas. Inclui a ID da assinatura, o grupo de recursos e o nome do trabalho. Por exemplo, /SUBSCRIPTIONS/6503D296-DAC1-4449-9B03-609A1F4A1C87/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.STREAMANALYTICS/STREAMINGJOBS/MYSTREAMINGJOB.
category Categoria do log, Execução ou Criação.
operationName Nome da operação que está registrada. Por exemplo, Enviar Eventos: falha na gravação da Saída do SQL em mysqloutput.
status Status da operação. Por exemplo, Com Falha ou Com Êxito.
nível Nível do log. Por exemplo, Erro, Aviso ou Informativo.
properties Detalhes específicos à entrada de log, serializados como uma cadeia de caracteres JSON. Para obter mais informações, consulte as próximas seções deste artigo.

Esquema de propriedades do log de execução

Os logs de execução trazem informações sobre eventos que ocorreram 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 ocorrido enquanto o trabalho processa os dados está nessa categoria de logs. Esses logs costumam ser 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 saber mais sobre a causa de vários erros de dados de entrada e saída diferentes.

Nome Descrição
Fonte Nome da entrada ou saída do trabalho em que ocorreu o erro.
Mensagem Mensagem associada ao erro.
Tipo 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 de operationName, os erros de dados terão o seguinte esquema:

  • Serializar os eventos ocorre durante operações de leitura de eventos. Isso ocorre quando os dados na entrada não satisfazem o esquema de consulta por um dos seguintes motivos:

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

    • Impossibilidade ler um evento, serialização inválida: lista informações sobre o local nos dados de entrada no qual o erro ocorreu. Inclui o nome do blob para a entrada do blob, o deslocamento e uma amostra dos dados.

  • Enviar eventos ocorre durante operações de gravação. Ele identifica o evento de streaming que causou o erro.

Eventos genéricos

Os eventos genéricos abrangem todo o resto.

Nome Descrição
Erro (opcional) Informações sobre erros. De modo geral, trata-se de informações de exceção, se estiverem disponíveis.
Mensagem Mensagem de log.
Tipo Tipo de mensagem. É mapeado para a 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 a hora em que o trabalho é iniciado até ele ser interrompido têm o mesmo valor de ID de Correlação.

Para obter 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óximas etapas