Monitore a ingestão em fila com métricas
No processo de de ingestão em fila
Neste artigo, você aprenderá a usar métricas para monitorar a ingestão em fila para o Azure Data Explorer no portal do Azure.
Fases de processamento em lote
As etapas descritas nesta seção aplicam-se a todas as ingestões em lotes. Para o Azure Event Grid, Azure Event Hubs, Azure IoT Hub e ingestões do Cosmos DB, antes dos dados serem colocados na fila para ingestão, uma conexão de dados () obtém os dados de fontes externas e executa uma reorganização inicial dos mesmos.
A ingestão em fila ocorre em etapas:
- O Batching Manager monitoriza a fila para mensagens para ingestão e processa solicitações.
- O Batching Manager otimiza a capacidade de ingestão ao pegar os pequenos fragmentos de dados recebidos e loteando as URLs com base na política de lote de ingestão.
- O Ingestion Manager 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, tornando-os disponíveis para consulta.
O Azure Data Explorer fornece um conjunto de métricas de ingestão de do Azure Monitor para que você possa monitorar sua ingestão de dados em todos os estágios e componentes do processo de ingestão em fila.
As métricas de ingestão do Azure Data Explorer fornecem informações detalhadas sobre:
- O resultado da ingestão em fila.
- A quantidade de dados ingeridos.
- A latência da ingestão na fila de espera e onde ela ocorre.
- O processo de processamento em lotes em si.
- Para Centros de Eventos, Rede de Eventos e ingestões do 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 em fila no Azure Data Explorer.
Pré-requisitos
- Uma assinatura do Azure. Crie 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 em fila ativa, como Hubs de Eventos, Hub IoTou Hub de Eventos.
Criar gráficos de métricas com o explorador de métricas do Azure Monitor
A seguir está uma explicação geral de como usar as métricas do Azure Monitor que serão implementadas nas seções subsequentes. Use as etapas a seguir para criar gráficos de métricas com o Azure Monitor metrics explorer no portal do Azure:
Entre no do 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 de métricas.
Abra o painel seletor de tempo no canto superior direito do painel de métricas e altere o intervalo de tempo para o período que você deseja analisar. Neste artigo, estamos analisando a ingestão de dados para o Azure Data Explorer durante as últimas 48 horas.
Selecione um de 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 Kusto . Este é o namespace que contém as métricas do Azure Data Explorer.
Selecione o nome da da Métrica
e o valor de Agregação de relevante.
Para alguns exemplos neste artigo, selecionaremos Adicionar Filtro e Aplicar Divisão para métricas que tenham dimensões. Também usaremos Adicionar métrica para plotar outras métricas no mesmo gráfico e + Novo gráfico para ver vários gráficos numa só visualização.
Cada vez que adicionar uma nova métrica, você repetirá as etapas quatro e cinco.
Observação
Para saber mais sobre como usar métricas para monitorar o Azure Data Explorer em geral e como trabalhar com o painel de métricas, consulte 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 controlar a ingestão na fila e como usar essas métricas.
Ver o resultado da ingestão
A métrica resultado da ingestão proporciona informação acerca do número total de fontes que foram ingeridas com sucesso e as que não foram ingeridas.
Neste exemplo, usaremos essa métrica para exibir o resultado de nossas tentativas de ingestão e usar as informações de status para ajudar a solucionar problemas de tentativas malsucedidas.
- No painel
Métricas no Azure Monitor, selecioneAdicionar Métrica. - Selecione Resultado de Ingestão como o valor da Métrica e Soma como o valor da Agregação. Esta seleção mostra os resultados da ingestão ao longo do período em uma linha de gráfico.
- Selecione o botão Aplicar de divisão acima do gráfico e escolha Status para segmentar seu gráfico pelo status dos resultados da ingestão. Depois de selecionar os valores de divisão, clique fora do seletor de divisão para fechá-lo.
Agora, as informações métricas são divididas por status, e podemos ver as informações sobre o status dos resultados da ingestão divididos em três linhas:
- Azul para operações de ingestão bem-sucedidas.
- Cor laranja para operações de ingestão que falharam devido a Entidade não encontrada.
- Roxo para operações de ingestão que falharam devido a solicitação incorreta.
Considere o seguinte ao olhar para o gráfico de resultados de ingestão:
- Ao usar o hub de eventos ou a ingestão do hub IoT, há uma pré-agregação de eventos no componente de conexão de dados . Durante esta fase da ingestão, os eventos são tratados como uma única fonte a ser ingerida. Portanto, alguns eventos aparecem como um único resultado de ingestão após a pré-agregação.
- Falhas transitórias são repetidas internamente em um número limitado de tentativas. Cada falha transitória é reportada como um resultado de ingestão temporária. É por isso que uma única 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 do erro, consulte Códigos de erro de ingestão no Azure Data Explorer.
- Para obter mais detalhes sobre um erro de ingestão, pode-se definir 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, no aumento do COGS (custo das mercadorias vendidas).
Ver a quantidade de dados ingeridos
As métricas Blobs Processados, Blobs Recebidose 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 em fila.
Neste exemplo, usaremos essas métricas para ver quantos dados passaram pelo pipeline de ingestão, quantos dados foram recebidos pelos componentes de ingestão e quantos dados foram descartados.
Blobs processados
- No painel Métricas no Azure Monitor, selecione Adicionar Métrica.
- Selecione Blobs Processados como o valor de Métrica e Soma como o valor de Agregação .
- Selecione o botão Aplicar divisã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 em seu cluster, selecione o botão Adicionar filtro acima do gráfico e escolha quais valores de banco de dados incluir ao plotar o gráfico. Neste exemplo, filtramos os blobs enviados para o banco de dados do
GitHub selecionando Banco de Dados como ode Propriedade , como oOperador de e GitHub na lista suspensa Valores . Depois de selecionar os valores do filtro, clique fora do seletor de filtros para fechá-lo.
Agora, o gráfico mostra quantos blobs que foram enviados para o banco de dados
- Observe que em 13 de fevereiro há uma diminuição no número de blobs que foram ingeridos no banco de dados GitHub com o passar do tempo. Além disso, observe que o número de blobs que foram processados em cada um dos componentes é semelhante, o que significa que aproximadamente todos os dados processados no componente Ligação de Dados também foram processados com sucesso pelos componentes Gestor de Lotes, Gestor de Ingestãoe Motor de Armazenamento do Explorador de Dados Azure. 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 que foram processados com êxito em cada componente, adicionaremos um novo gráfico:
- Selecione + Novo gráfico.
- Escolha os mesmos valores de Escopo , Namespace de Métrica e Agregação mencionados acima, e selecione a métrica Blobs Recebidos.
- Selecione o botão Aplicar divisão e escolha o Tipo de componente para dividir a métrica Blobs Recebidos por tipo de componente.
- Selecione o botão Adicionar filtro e defina os mesmos valores de antes para filtrar apenas os blobs enviados para a base de dados GitHub.
- Comparando os gráficos, observe que o número de blobs recebidos por cada componente corresponde aproximadamente ao número de blobs que foram processados por cada componente. Esta comparação indica que não foram eliminadas bolhas durante a ingestão.
Gotículas caídas
Para determinar se há bolhas que foram soltas durante a ingestão, você deve analisar a métrica Blobs Dropped. Essa métrica mostra quantas bolhas foram descartadas durante a ingestão e ajuda a detetar se há um problema no processamento em um componente de ingestão específico. Para cada blob descartado, você também obterá uma métrica Resultado da Ingestão com mais informações sobre o motivo da falha.
Ver a latência de ingestão
As métricas Latência de Estágio e Latência de Descoberta monitoram a latência no processo de ingestão e informam se há latências longas ocorrendo no Azure Data Explorer ou antes da chegada dos dados ao Azure Data Explorer.
- Latência do Estágio indica a duração desde que uma mensagem é descoberta pelo Azure Data Explorer até que seu conteúdo seja recebido por um componente de ingestão para processamento.
- 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 intervalo de tempo desde o enfileiramento de dados até a descoberta através das conexões de dados do Azure Data Explorer. Esse período de tempo é anterior ao Azure Data Explorer, portanto, não está incluído na métrica de Latência de Estágio que mede apenas a latência no Azure Data Explorer.
Observação
De acordo com ode política de lote de
Quando se vê uma latência longa até que os dados estejam prontos para consulta, analisar a Latência de Estágio e a Latência de Descoberta pode ajudar a entender se a latência longa deve-se à longa latência no Azure Data Explorer ou se é anterior ao Azure Data Explorer. Quando a latência está no próprio Azure Data Explorer, você também pode detetar o componente específico responsável pela latência longa.
Latência do estágio (visualização)
Vamos primeiro olhar para a latência na fase do nosso processo de ingestão em fila. Para obter uma explicação de cada fase, consulte Fases de agrupamento.
- No painel Métricas no Azure Monitor, selecione Adicionar Métrica.
- Selecione
de Latência de Estágio como o valor da Métrica e Média como o valor de Agregação . - Selecione o botão Aplicar divisão e escolha o Tipo de Componente para segmentar o gráfico pelos diferentes componentes de ingestão.
- Selecione o botão Adicionar filtro e filtre nos dados enviados para a base de dados GitHub. Depois de selecionar os valores do filtro, clique fora do seletor de filtros para fechá-lo. Agora, o gráfico mostra a latência das operações de ingestão enviadas ao banco de dados do GitHub em cada componente durante o processo de ingestão com o passar do tempo.
Podemos dizer as seguintes informações a partir deste gráfico:
- A latência no componente de Conexão de Dados dos Hubs de Eventos é de aproximadamente 0 segundos. Isso faz sentido, porque a Latência de Estágio (Stage Latency) mede apenas a latência desde que uma mensagem é descoberta pelo Azure Data Explorer.
- O maior intervalo de tempo no processo de ingestão (aproximadamente 5 minutos) ocorre desde que o componente do
Batching Manager recebe os dados até que o componente do Ingestion Manager os recebe. Neste exemplo, usamos a política de lote padrão para o banco de dados GitHub. Como observado, o limite de tempo de latência para a política de lote padrão é de 5 minutos, portanto, isso provavelmente indica que quase todos os dados foram agrupados por tempo, e a maior parte do tempo de latência para a ingestão em fila foi devido ao próprio lote. - A latência do mecanismo de armazenamento no gráfico representa a latência até que os dados sejam armazenados no do Mecanismo de Armazenamento do
Azure Data Explorer e estejam prontos para consulta. Você pode ver que a latência total média desde o momento da descoberta de dados pelo Azure Data Explorer até que ele esteja pronto para consulta é de 5,2 minutos.
Latência de descoberta
Se utilizar a ingestão com conexões de dados, pode querer estimar a latência a montante para o Azure Data Explorer ao longo do tempo, pois uma latência longa também pode ocorrer antes de o Azure Data Explorer receber os dados para ingestão. Para isso, pode usar a métrica Discovery Latency.
- Selecione + Novo gráfico.
- Selecione Latência de Descoberta como o valor de Métrica e Média como o valor de Agregação.
- Selecione o botão Aplicar Dividir e escolha Tipo de Componente para segmentar o gráfico pelos diferentes tipos de componentes de ligação de dados. Depois de selecionar os valores de divisão, clique fora do seletor de divisão para fechá-lo.
- Você pode ver que, durante a maior parte da duração, a latência de descoberta está próxima de 0 segundos, indicando que o Azure Data Explorer obteve dados logo após ao enfileiramento de dados. O pico mais alto de cerca de 300 milissegundos ocorre por volta de 13 de fevereiro às 14:00, indicando que, neste momento, o cluster do Azure Data Explorer recebeu os dados cerca de 300 milissegundos após o enfileiramento dos dados.
Compreender o processo de processamento em lote
No segundo estágio do fluxo de ingestão enfileirado, o componente Batching Manager otimiza o throughput da ingestão agrupando os dados recebidos com base na política de batch de ingestão .
O conjunto de métricas a seguir ajuda você a entender como seus dados estão sendo armazenados 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 não compactados 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é à selagem do lote.
- Batch Blob Count: O número de blobs em um lote concluído para ingestão.
Lotes processados
Vamos começar com uma visão geral do processo de lotes, observando a métrica Lotes processados.
- No painel
Métricas no Azure Monitor, selecioneAdicionar Métrica. - Selecione Lotes processados como o valor da métrica e a Soma como o valor de agregação .
- Selecione o botão Aplicar divisão e escolha Tipo de agrupamento para segmentar o gráfico com base no motivo pelo qual o agrupamento foi selado. Para obter uma lista completa dos tipos de lotes, consulte Tipos de lotes.
- Selecione o botão Adicionar filtro e filtre os lotes enviados para o banco de dados GitHub. Depois de selecionar os valores do filtro, clique fora do seletor de filtros para fechá-lo.
O gráfico mostra o número de lotes selados com dados enviados para o repositório GitHub ao longo do tempo, divididos de acordo com o tipo de loteamento .
- Observe que há de 2 a 4 lotes por unidade de tempo ao longo do tempo, e todos os lotes são selados por tempo como estimado na secção de Latência de Estágio, onde pode ver que demora cerca de 5 minutos para agrupar dados em lotes com base na política padrão de agrupamento de lotes.
Duração, tamanho e contagem de blob do lote
Agora vamos caracterizar melhor os lotes processados.
- Selecione o botão + Adicionar de Gráfico para cada gráfico para criar mais gráficos para os valores de Métrica Duração do Lote, Tamanho do Lotee Contagem de Blobs de Lote.
- Use
como o valor de agregação .médio - Como no exemplo anterior, selecione o botão
Adicionar filtro e filtre os dados enviados para o banco de dadosGitHub.
A partir dos gráficos Duração do Lote, Tamanho do Lotee Contagem de Blobs do Lote, podemos concluir algumas perspetivas:
A duração média do lote é de cinco minutos (de acordo com a política de lote padrão). Deve ter isto em conta ao analisar a latência total de ingestão.
No gráfico Batch Size, você pode ver que o tamanho médio dos lotes é de cerca de 200-500 MB ao longo do tempo. O tamanho ideal dos dados a serem ingeridos é de 1 GB de dados não compactados, e esse tamanho também é definido como uma condição de selo pela política de lote padrão. Como não há 1 GB de dados a serem armazenados em lote ao longo do tempo, não vemos nenhum lote selado por tamanho.
O número médio de blobs nos lotes é de cerca de 160 blobs ao longo do tempo, que depois diminui para 60-120 blobs. Com base na política de agrupamento padrão, um lote pode ser selado quando a contagem de blob é de 1000 blobs. Como não chegamos a esse número, não vemos lotes selados por contagem.
Comparar eventos recebidos com eventos enviados para ingestão
Ao aplicar a ingestão de hub de eventos, hub IoT ou 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 fonte de eventos para o Azure Data Explorer. As métricas Eventos Recebidos, Eventos Processadose Eventos Descartados permitem que você faça essa comparação.
Eventos Recebidos
- No painel de Métricas no Azure Monitor, selecione Adicionar Métrica.
- Selecione
Eventos Recebidos como o valor da Métricae Soma como o valor de Agregação. - Selecione o botão Adicionar filtro acima do gráfico e escolha o valor PropertyNome do componente filtrar os eventos recebidos por uma conexão de dados específica definida no cluster. Neste exemplo, filtramos na conexão de dados GitHubStreamingEvents. Depois de selecionar os valores do filtro, clique fora do seletor de filtros 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 descartados
Para ver se algum evento foi descartado pelo Azure Data Explorer, use as métricas Eventos Processados e Eventos Descartados.
- No gráfico que você já criou, selecione Adicionar métrica.
- Selecione Eventos Processados como o valor de Métrica e Soma como o valor de Agregação .
- Selecione Adicionar métrica novamente e selecione Eventos descartados como o valor da 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 descartados pelo GitHubStreamingEvents conexão de dados ao longo do tempo.
- Quase todos os eventos recebidos foram processados com sucesso pela conexão de dados. Há um evento descartado, que é compatível com o resultado de ingestão com falha devido a uma solicitação incorreta que vimos quando visualizando a métrica do resultado da ingestão.
Comparar eventos recebidos no Azure Data Explorer com mensagens de saída do hub de eventos
Você também pode querer 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 já criado para Eventos Recebidos, selecione Adicionar métrica.
Selecione Escopo e, no diálogo Selecionar um escopo, navegue e escolha o namespace do hub de eventos que envia dados para a sua conexão de dados.
Selecione Aplicar
Selecione Mensagens de Saída como o valor da 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 tiveres mais de um hub de eventos no espaço de nomes do hub de eventos, deves filtrar a métrica Mensagens de Saída pela dimensão Nome da Entidade para obter apenas os dados do hub de eventos desejado no teu espaço de nomes do hub de eventos.
Observação
Não há opção para monitorar mensagens de saída por grupo de consumidores. A métrica