Monitorar a ingestão na fila com métricas
No processo de ingestão enfileirada, o Azure Data Explorer otimiza a ingestão de dados para alta taxa de transferência agrupando pequenas partes de dados de entrada em lotes com base em uma política de envio em lote de ingestão configurável. A política de envio em lote permite que você defina as condições de gatilho para lacrar um lote (tamanho dos dados, número de blobs ou tempo decorrido). Em seguida, esses lotes são ingeridos de maneira ideal, permitindo resultados de consulta rápidos.
Neste artigo, você aprenderá a usar métricas para monitorar a ingestão enfileirada no Azure Data Explorer no portal do Azure.
Fases do envio em lote
Os estágios descritos nesta seção se aplicam a todas as ingestões em lote. Para ingestões da Grade de Eventos do Azure, Hubs de Eventos do Azure, Hub IoT do Azure e Cosmos DB, antes que os dados sejam enfileirados para ingestão, uma conexão de dados obtém os dados de fontes externas e executa uma reorganização inicial de dados.
A ingestão enfileirada ocorre em estágios:
- O Gerenciador de Lotes escuta a fila em busca de mensagens de assimilação e processa solicitações.
- O Gerenciador de Lotes otimiza a taxa de transferência de ingestão pegando as pequenas partes de dados de entrada que recebe e agrupando as URLs com base na política de envio em lote de ingestão.
- O Gerenciador de Ingestão envia os comandos de ingestão para o mecanismo de armazenamento do Azure Data Explorer.
- O mecanismo de armazenamento do Azure Data Explorer armazena os dados ingeridos, disponibilizando-os para consulta.
O Azure Data Explorer fornece um conjunto de métricas de ingestão do Azure Monitor para que você possa monitorar a ingestão de dados em todos os estágios e componentes do processo de ingestão enfileirado.
As métricas de ingestão do Azure Data Explorer fornecem informações detalhadas sobre:
- O resultado da ingestão enfileirada.
- O volume de dados ingeridos.
- A latência da ingestão enfileirada e onde ela ocorre.
- O processo de envio em lote em si.
- Para inversões de Hubs de Eventos, Grade de Eventos e Hub IoT: o número de eventos recebidos.
Neste artigo, você aprenderá a usar métricas de ingestão no portal do Azure para monitorar a ingestão enfileirada no Azure Data Explorer.
Pré-requisitos
- Uma assinatura do Azure. Criar uma conta gratuita do Azure.
- Um cluster e um banco de dados do Azure Data Explorer. Criar um cluster e um banco de dados.
- Uma ingestão enfileirada ativa, como Hubs de Eventos, Hub IoT ou Grade de Eventos.
Criar gráficos de métricas com o Azure Monitor Metrics Explorer
Veja a seguir uma explicação geral de como usar as métricas do Azure Monitor que serão implementadas nas seções posteriores. Use as etapas a seguir para criar gráficos de métricas com o Azure Monitor Metrics Explorer no portal do Azure:
Entre no portal do Azure e navegue até a página de visão geral do cluster do Azure Data Explorer.
Selecione Métricas na barra de navegação à esquerda para abrir o painel Métricas.
Abra o painel Seletor de hora no canto superior direito do painel Métricas e altere o Intervalo de tempo para a hora que deseja analisar. Neste artigo, analisaremos a ingestão de dados no Azure Data Explorer durante as últimas 48 horas.
Selecione um Escopo e um Namespace de Métrica:
- O Escopo é o nome do cluster do Azure Data Explorer. No exemplo a seguir, usaremos um cluster chamado demo11.
- O Namespace de Métrica deve ser definido como Métricas padrão do Cluster do Kusto. Esse é o namespace que contém as métricas do Azure Data Explorer.
Escolha o nome da Métrica e o valor de Agregação relevante.
Em alguns exemplos deste artigo, selecionaremos Adicionar Filtro e Aplicar Separação para as métricas que têm dimensões. Também usaremos a opção Adicionar métrica para plotar outras métricas no mesmo gráfico e + Novo gráfico para ver vários gráficos em uma exibição.
Sempre que você adicionar uma nova métrica, repetirá as etapas quatro e cinco.
Observação
Para saber mais sobre como usar as métricas para monitorar o Azure Data Explorer em geral e como trabalhar com o painel Métricas, confira Monitorar o desempenho, a integridade e o uso do Azure Data Explorer com métricas.
Neste artigo, você aprenderá quais métricas podem ser usadas para rastrear a ingestão enfileirada e como usar essas métricas.
Exibir o resultado da ingestão
A métrica Resultado da ingestão fornece informações sobre o número total de fontes que foram ingeridas com êxito e aquelas que não puderam ser ingeridas.
Neste exemplo, usaremos essa métrica para ver o resultado de nossas tentativas de ingestão e usar as informações de status para ajudar a solucionar as tentativas com falha.
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Escolha Resultado da ingestão como o valor de Métrica e Soma como o valor de Agregação. Essa seleção mostra os resultados da ingestão ao longo do tempo em uma linha de gráfico.
- Selecione o botão Aplicar separação acima do gráfico e escolha Status para segmentar o gráfico pelo status dos resultados da ingestão. Depois de selecionar os valores de separação, clique fora do seletor de separação para fechá-lo.
Agora, as informações das métricas são divididas por status, e podemos ver informações sobre o status dos resultados da ingestão divididas em três linhas:
- Azul para as operações de ingestão bem-sucedidas.
- Laranja para operações de ingestão que falharam devido a um erro de Entidade não encontrada.
- Roxo para operações de ingestão que falharam devido a um erro de Solicitação inválida.
Considere o seguinte ao examinar o gráfico de resultados da ingestão:
- Quando a ingestão do hub IoT ou o hub de eventos é usada, há uma pré-agregação de evento no componente Conexão de dados. Durante essa fase de ingestão, os eventos são tratados como uma só fonte a ser ingerida. Portanto, alguns eventos são exibidos como um só resultado de ingestão após a pré-agregação.
- As falhas transitórias são repetidas internamente em um número limitado de tentativas. Cada falha transitória é relatada como um resultado de ingestão transitória. É por isso que uma só ingestão pode levar a mais de um resultado de ingestão.
- Os erros de ingestão no gráfico são listados pela categoria do código de erro. Para ver a lista completa de códigos de erro de ingestão por categorias e tentar entender melhor o possível motivo de erro, confira Códigos de erro de ingestão do Azure Data Explorer.
- Para obter mais detalhes sobre um erro de ingestão, defina os logs de diagnóstico de ingestão com falha. No entanto, é importante considerar que a geração de logs resulta na criação de recursos extras e, portanto, em um aumento no COGS (custo dos produtos vendidos).
Exibir o volume de dados ingeridos
As métricas Blobs Processados, Blobs Recebidos e Blobs Descartados fornecem informações sobre o número de blobs que são processados, recebidos e descartados pelos componentes de ingestão durante os estágios de ingestão enfileirada.
Neste exemplo, usaremos essas métricas para ver o volume de dados transmitido pelo pipeline de ingestão, o volume de dados recebido pelos componentes de ingestão e o volume de dados removido.
Blobs processados
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Escolha Blobs Processados como o valor de Métrica e Soma como o valor de Agregação.
- Selecione o botão Aplicar separação e escolha Tipo de Componente para segmentar o gráfico pelos diferentes componentes de ingestão.
- Para se concentrar em um banco de dados específico no cluster, selecione o botão Adicionar filtro acima do gráfico e escolha os valores de banco de dados que serão incluídos quando o gráfico for plotado. Neste exemplo, filtramos os blobs enviados ao banco de dados do GitHub selecionando Banco de Dados como a Propriedade, = como o Operador e GitHub na lista suspensa Valores. Depois de selecionar os valores de filtro, clique fora do seletor de filtro para fechá-lo.
Agora, o gráfico mostra quantos blobs enviados para o banco de dados do GitHub foram processados em cada um dos componentes de ingestão ao longo do tempo.
- Observe que, em 13 de fevereiro, houve uma redução no número de blobs que foram ingeridos no banco de dados do GitHub ao longo do tempo. Além disso, observe que o número de blobs processados em cada um dos componentes é semelhante, o que significa que aproximadamente todos os dados processados no componente Conexão de Dados também foram processados com êxito pelos componentes Gerenciador de Envio em Lote, Gerenciador de Ingestão e mecanismo de armazenamento do Azure Data Explorer. Esses dados estão prontos para consulta.
Blobs recebidos
Para entender melhor a relação entre o número de blobs recebidos em cada componente e o número de blobs processados com êxito em cada componente, adicionaremos um novo gráfico:
- Selecione + Novo gráfico.
- Escolha os mesmos valores acima para Escopo, Namespace de Métrica e Agregação e selecione a métrica Blobs Recebidos.
- Selecione o botão Aplicar separação e escolha Tipo de Componente para dividir a métrica Blobs Recebidos por tipo de componente.
- Escolha o botão Adicionar filtro e defina os mesmos valores de antes para filtrar somente os blobs enviados ao banco de dados do GitHub.
- Comparando os gráficos, observe que o número de blobs recebidos por componente corresponde aproximadamente ao número de blobs processados por componente. Essa comparação indica que nenhum blob foi removido durante a ingestão.
Blobs removidos
Para determinar se há blobs que foram removidos durante a ingestão, analise a métrica Blobs Removidos. Essa métrica mostra quantos blobs foram removidos durante a ingestão e ajuda a detectar se há um problema no processamento em um componente de ingestão específico. Para cada blob removido, você também receberá uma métrica Resultado da Ingestão com mais informações sobre o motivo da falha.
Exibir a latência de ingestão
As métricas Latência de Fase e Latência de Descoberta monitoram a latência no processo de ingestão e informam se há alguma longa latência ocorrendo no Azure Data Explorer ou antes que os dados cheguem ao Azure Data Explorer para ingestão.
- A Latência de Fase indica o período a partir do qual uma mensagem é descoberta pelo Azure Data Explorer até o conteúdo dela ser recebido por um componente de ingestão para processamento.
- A Latência de Descoberta é usada para pipelines de ingestão com conexões de dados (como hub de eventos, hub IoT e Grade de Eventos). Essa métrica fornece informações sobre o período do enfileiramento dos dados à descoberta pelas conexões de dados do Azure Data Explorer. Esse período é upstream para o Azure Data Explorer e, portanto, não está incluído na métrica Latência de Fase que só mede a latência no Azure Data Explorer.
Observação
De acordo com a política de envio em lote padrão, o tempo de envio em lote padrão é de cinco minutos. Portanto, se o lote não for lacrado por outros gatilhos, ele será lacrado após cinco minutos.
Quando você vê uma longa latência até que os dados estejam prontos para consulta, a análise da Latência de Fase e Latência de Descoberta pode ajudar você a entender se a longa latência é devido à longa latência do Azure Data Explorer ou é upstream para o Azure Data Explorer. Quando a latência está no próprio Azure Data Explorer, você também pode detectar o componente específico responsável pela longa latência.
Latência de Fase (versão prévia)
Vamos primeiro examinar a latência do estágio de nossa ingestão enfileirada. Para obter uma explicação de cada fase, confira Fases do envio em lote.
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Latência de Fase como o valor de Métrica e Méd como o valor de Agregação.
- Selecione o botão Aplicar separação e escolha Tipo de Componente para segmentar o gráfico pelos diferentes componentes de ingestão.
- Escolha o botão Adicionar filtro e filtre os dados enviados ao banco de dados do GitHub. Depois de selecionar os valores de filtro, clique fora do seletor de filtro para fechá-lo. Agora, o gráfico mostra a latência das operações de ingestão que são enviadas ao banco de dados do GitHub em cada um dos componentes por meio da ingestão ao longo do tempo:
Podemos extrair as seguintes informações desse gráfico:
- A latência no componente Conexão de Dados dos Hubs de Eventos é de aproximadamente 0 segundos. Isso faz sentido, pois a Latência de Fase só mede a latência a partir do momento em que uma mensagem é descoberta pelo Azure Data Explorer.
- O tempo mais longo no processo de ingestão (aproximadamente 5 minutos) ocorre a partir do momento em que o componente Gerenciador de Envio em Lote recebeu os dados até o momento em que o componente Gerenciador de Ingestão os recebeu. Neste exemplo, usamos a política de envio em lote padrão para o banco de dados do GitHub. Conforme observado, o limite de tempo de latência para a política de envio em lote padrão é de 5 minutos, portanto, isso provavelmente indica que quase todos os dados foram agrupados em lote por tempo e a maior parte do tempo de latência para a ingestão enfileirada foi devido ao próprio envio em lote.
- A latência do mecanismo de armazenamento no gráfico representa a latência ocorrida até que os dados sejam armazenados no mecanismo de armazenamento do Azure Data Explorer e fiquem prontos para consulta. Você pode ver que a latência total média do momento da descoberta dos dados pelo Azure Data Explorer até eles ficarem prontos para consulta é de 5,2 minutos.
Latência de Descoberta
Caso você use a ingestão com as conexões de dados, o ideal é estimar a latência upstream para o Azure Data Explorer ao longo do tempo, já que a longa latência também pode ocorrer antes que o Azure Data Explorer obtenha os dados para ingestão. Para essa finalidade, use a métrica Latência de Descoberta.
- Selecione + Novo gráfico.
- Selecione Latência de Descoberta como o valor de Métrica e Méd como o valor de Agregação.
- Selecione o botão Aplicar separação e escolha Tipo de Componente para segmentar o gráfico pelos diferentes tipos de componentes de conexão de dados. Depois de selecionar os valores de separação, clique fora do seletor de separação para fechá-lo.
- Você pode ver que, na maior parte do tempo, a latência de descoberta fica próxima a 0 segundo, indicando que o Azure Data Explorer obteve os dados logo após o enfileiramento deles. O pico mais alto de cerca de 300 milissegundos ocorre próximo a 13 de fevereiro às 14h, indicando que, nesse momento, o cluster do Azure Data Explorer recebeu os dados em torno de 300 milissegundos após o enfileiramento de dados.
Noções básicas sobre o processo de envio em lote
No segundo estágio do fluxo de ingestão enfileirado, o componente Gerenciador de Lotes otimiza a taxa de transferência de ingestão agrupando os dados recebidos em lotes com base na política de envio em lote de ingestão.
O seguinte conjunto de métricas ajuda você a entender como os dados são enviados em lote durante a ingestão:
- Lotes Processados: o número de lotes concluídos para ingestão.
- Tamanho do Lote: o tamanho estimado dos dados descompactados em um lote agregado para ingestão.
- Duração do Lote: a duração de cada lote individual desde o momento em que o lote é aberto até o lacre em lote.
- Contagem de Blobs do Lote: o número de blobs em um lote concluído para ingestão.
Lotes processados
Vamos começar com uma exibição geral do processo de envio em lote examinando a métrica Lotes processados.
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Escolha Lotes Processados como o valor de Métrica e Soma como o valor de Agregação.
- Selecione o botão Aplicar separação e escolha Tipo de Envio em Lote para segmentar o gráfico com base no motivo pelo qual o lote foi lacrado. Para obter uma lista completa dos tipos de envio em lote, confira Tipos de envio em lote.
- Escolha o botão Adicionar filtro e filtre os lotes enviados ao banco de dados do GitHub. Depois de selecionar os valores de filtro, clique fora do seletor de filtro para fechá-lo.
O gráfico mostra o número de lotes lacrados com os dados enviados ao banco de dados do GitHub ao longo do tempo, divididos pelo Tipo de Envio em Lote.
- Observe que há de 2 a 4 lotes por unidade de tempo ao longo do tempo e que todos os lotes são lacrados por tempo, conforme estimado na seção Latência de Fase, em que você poderá ver que leva cerca de 5 minutos para enviar os dados em lote com base na política de envio em lote padrão.
Duração e tamanho do lote e contagem de blobs
Agora vamos caracterizar ainda mais os lotes processados.
- Selecione o botão + Adicionar Gráfico para cada gráfico a fim de criar mais gráficos para os valores de Métrica Duração do Lote, Tamanho do Lote e Contagem de Blobs do Lote.
- Use Méd como o valor de Agregação.
- Como no exemplo anterior, escolha o botão Adicionar filtro e filtre os dados enviados ao banco de dados do GitHub.
Nos gráficos Duração do Lote, Tamanho do Lote e Contagem de Blobs do Lote, podemos concluir alguns insights:
A duração média do lote é de cinco minutos (de acordo com a política de envio em lote padrão). Você deve levar isso em conta ao examinar a latência total de ingestão.
No gráfico Tamanho do Lote, você poderá ver que o tamanho médio dos lotes é de cerca de 200 a 500 MB ao longo do tempo. O tamanho ideal dos dados a serem ingeridos é de 1 GB de dados descompactados, e esse tamanho também é definido como uma condição de lacre pela política de envio em lote padrão. Como não há 1 GB de dados a serem enviados em lote ao longo do tempo, não vemos nenhum lote lacrado por tamanho.
O número médio de blobs nos lotes é de cerca de 160 blobs ao longo do tempo, o que, em seguida, diminui para 60 a 120 blobs. Com base na política de envio em lote padrão, um lote pode ser lacrado quando a contagem chegar a mil blobs. Como não chegamos a esse número, não vemos lotes lacrados por contagem.
Comparar os eventos recebidos com os eventos enviados para ingestão
Ao aplicar a ingestão do hub de eventos, do hub IoT ou da Grade de Eventos, pode ser útil comparar o número de eventos recebidos pelo Azure Data Explorer com o número de eventos enviados da origem do evento para o Azure Data Explorer. As métricas Eventos Recebidos, Eventos Processados e Eventos Removidos permitem que você faça essa comparação.
Eventos recebidos
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Escolha Eventos Recebidos como o valor de Métrica e Soma como o valor de Agregação.
- Selecione o botão Adicionar filtro acima do gráfico e escolha o valor da Propriedade Nome do Componente para filtrar os eventos recebidos por uma conexão de dados específica definida no cluster. Neste exemplo, filtramos a conexão de dados GitHubStreamingEvents. Depois de selecionar os valores de filtro, clique fora do seletor de filtro para fechá-lo.
Agora, o gráfico mostra o número de eventos recebidos pela conexão de dados selecionada ao longo do tempo:
- Neste gráfico, a conexão de dados GitHubStreamingEvents recebe cerca de 200 a 500 eventos por unidade de tempo ao longo do tempo.
Eventos Processados e Eventos Removidos
Para ver se algum evento foi removido pelo Azure Data Explorer, use as métricas Eventos Processados e Eventos Removidos.
- No gráfico que você já criou, selecione Adicionar métrica.
- Escolha Eventos Processados como o valor de Métrica e Soma como o valor de Agregação.
- Selecione Adicionar métrica novamente e escolha Eventos Removidos como o valor de Métrica e Soma como o valor de Agregação.
O gráfico agora mostra o número de eventos que foram recebidos, processados e removidos pela conexão de dados GitHubStreamingEvents ao longo do tempo.
- Quase todos os eventos recebidos foram processados com êxito pela conexão de dados. Há um evento removido, que é compatível com o resultado da ingestão com falha devido a uma solicitação inválida que vimos durante a exibição da métrica de resultado da ingestão.
Comparar os eventos recebidos no Azure Data Explorer com as mensagens de saída do hub de eventos
Também convém comparar o número de eventos recebidos com o número de eventos que foram enviados do hub de eventos para o Azure Data Explorer, comparando as métricas Eventos Recebidos e Mensagens de Saída.
No gráfico que você já criou para Eventos Recebidos, selecione Adicionar métrica.
Escolha Escopo e, na caixa de diálogo Selecionar um escopo, procure e selecione o namespace de hub de eventos que envia dados para sua conexão de dados.
Selecione Aplicar.
Escolha Mensagens de Saída como o valor de Métrica e Soma como o valor de Agregação.
Clique fora das configurações para obter o gráfico completo que compara o número de eventos processados pela conexão de dados do Azure Data Explorer com o número de eventos enviados do hub de eventos.
- Observe que todos os eventos enviados do hub de eventos foram processados com êxito pela conexão de dados do Azure Data Explorer.
- Se você tiver mais de um hub de eventos no namespace de hub de eventos, filtre a métrica Mensagens de Saída pela dimensão Nome da Entidade para obter apenas os dados do hub de eventos desejados no namespace de hub de eventos.
Observação
Não há nenhuma opção para monitorar as mensagens de saída por grupo de consumidores. A métrica Mensagens de Saída conta o número total de mensagens consumidas por todos os grupos de consumidores. Portanto, se você tiver alguns grupos de consumidores no hub de eventos, poderá obter um número maior de Mensagens de Saída do que de Eventos Recebidos.