Monitorizar a ingestão em fila com métricas
No processo de ingestão em fila, o Azure Data Explorer otimiza a ingestão de dados para débito elevado ao colocar pequenos segmentos de dados recebidos em lotes com base numa política de loteamento de ingestão configurável. A política de criação de lotes permite-lhe definir as condições do acionador para selar um lote (tamanho dos dados, número de blobs ou tempo passado). Estes lotes são, em seguida, ingeridos de forma ideal para resultados de consultas rápidas.
Neste artigo, irá aprender a utilizar métricas para monitorizar a ingestão em fila no Azure Data Explorer no portal do Azure.
Fases de criação de lotes
As fases descritas nesta secção aplicam-se a todas as ingestões de lotes. Para Azure Event Grid, Hubs de Eventos do Azure, Hub IoT do Azure e ingestões do Cosmos DB, antes de os dados serem em fila de espera para ingestão de uma ligação de dados obtém os dados de origens externas e executa uma reorganização inicial de dados.
A ingestão em fila ocorre por fases:
- O Gestor de Batching escuta a fila de pedidos de ingestão de mensagens e processos.
- O Batching Manager otimiza o débito de ingestão ao utilizar os pequenos segmentos de dados de entrada que recebe e ao colocar os URLs em lote com base na política de criação de lotes de ingestão.
- O Gestor de Ingestão envia os comandos de ingestão para o Motor de Armazenamento do Azure Data Explorer.
- O Motor de Armazenamento Data Explorer do Azure 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 possa monitorizar a ingestão de dados em todas as fases e componentes do processo de ingestão em fila.
As métricas de ingestão de Data Explorer do Azure fornecem-lhe informações detalhadas sobre:
- O resultado da ingestão em fila.
- A quantidade de dados ingeridos.
- A latência da ingestão em fila e onde ocorre.
- O próprio processo de criação de lotes.
- Para hubs de eventos, Event Grid e ingestões de Hub IoT: o número de eventos recebidos.
Neste artigo, irá aprender a utilizar métricas de ingestão no portal do Azure para monitorizar a ingestão em fila no Azure Data Explorer.
Pré-requisitos
- Uma subscrição do Azure. Crie uma conta gratuita do Azure.
- Um cluster e uma base de dados do Azure Data Explorer. Criar um cluster e uma base de dados.
- Uma ingestão ativa em fila, como Hubs de Eventos, Hub IoT ou Event Grid.
Criar gráficos de métricas com o explorador de métricas do Azure Monitor
Segue-se uma explicação geral sobre como utilizar as métricas do Azure Monitor que serão implementadas em secções subsequentes. Utilize os seguintes passos para criar gráficos de métricas com o explorador de métricas do Azure Monitor no portal do Azure:
Inicie sessão no portal do Azure e navegue para a página de descriçã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 horas no canto superior direito do painel de métricas e altere o Intervalo de tempo para o tempo que pretende analisar. Neste artigo, estamos a analisar a ingestão de dados no Azure Data Explorer durante as últimas 48 horas.
Selecione um Âmbito e um Espaço de Nomes de Métricas:
- O Âmbito é o nome do cluster do Azure Data Explorer. No exemplo seguinte, vamos utilizar um cluster com o nome demo11.
- O Espaço de Nomes de Métricas deve ser definido como métricas padrão do Cluster do Kusto. Este é o espaço de nomes que contém as métricas de Data Explorer do Azure.
Selecione o Nome da Métrica e o valor de Agregação relevante.
Para alguns exemplos neste artigo, vamos selecionar Adicionar Filtro e Aplicar Divisão para métricas com dimensões. Também vamos utilizar Adicionar métrica para desenhar outras métricas no mesmo gráfico e + Novo gráfico para ver vários gráficos numa vista.
Sempre que adicionar uma nova métrica, irá repetir os passos 4 e 5.
Nota
Para saber mais sobre como utilizar métricas para monitorizar Data Explorer do Azure em geral e como trabalhar com o painel de métricas, veja Monitorizar Data Explorer o desempenho, o estado de funcionamento e a utilização do Azure com métricas.
Neste artigo, irá aprender que métricas podem ser utilizadas para controlar a ingestão em fila e como utilizar estas métricas.
Ver o resultado da ingestão
A métrica de resultado de ingestão fornece informações sobre o número total de origens que foram ingeridas com êxito e as que não foram ingeridas.
Neste exemplo, vamos utilizar esta métrica para ver o resultado das nossas tentativas de ingestão e utilizar as informações de estado para ajudar a resolver eventuais tentativas falhadas.
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Resultado da ingestão como o valor Métrica e Soma como o valor agregação . Esta seleção mostra-lhe os resultados da ingestão ao longo do tempo numa linha de gráfico.
- Selecione o botão Aplicar divisão acima do gráfico e selecione Estado para segmentar o gráfico pelo estado dos resultados da ingestão. Depois de selecionar os valores de divisão, clique fora do seletor dividido para fechá-lo.
Agora, as informações da métrica são divididas por estado e podemos ver informações sobre o estado dos resultados da ingestão divididos em três linhas:
- Azul para operações de ingestão bem-sucedidas.
- 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 Pedido incorreto.
Considere o seguinte ao analisar o gráfico de resultados de ingestão:
- Ao utilizar o hub de eventos ou a ingestão do hub IoT, existe uma pré-agregação de eventos no componente Ligação de dados. Durante esta fase de ingestão, os eventos são tratados como uma única origem a ser ingerida. Por conseguinte, alguns eventos aparecem como um único resultado de ingestão após a pré-agregação.
- As falhas transitórias são repetidas internamente num número limitado de tentativas. Cada falha transitória é reportada como um resultado de ingestão transitória. É por isso que uma única ingestão pode levar a mais do que 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 compreender melhor o possível motivo de erro, veja Códigos de erro de ingestão no Azure Data Explorer.
- Para obter mais detalhes sobre um erro de ingestão, pode definir registos de diagnóstico de ingestão com falhas. No entanto, é importante considerar que a geração de registos resulta na criação de recursos adicionais e, por conseguinte, num aumento do COGS (custo dos bens vendidos).
Ver a quantidade de dados ingeridos
As métricas Blobs Processados, Blobs Recebidos e Blobs Removidos fornecem informações sobre o número de blobs que são processados, recebidos e removidos pelos componentes de ingestão durante as fases da ingestão em fila.
Neste exemplo, vamos utilizar estas métricas para ver a quantidade de dados transmitidos através do pipeline de ingestão, a quantidade de dados recebidos pelos componentes de ingestão e a quantidade de dados que foram removidos.
Blobs Processados
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Blobs Processados como o valor Métrica e Soma como o valor agregação .
- Selecione o botão Aplicar divisão e selecione Tipo de Componente para segmentar o gráfico pelos diferentes componentes de ingestão.
- Para se concentrar numa base de dados específica no cluster, selecione o botão Adicionar filtro acima do gráfico e, em seguida, escolha os valores da base de dados a incluir ao desenhar o gráfico. Neste exemplo, filtramos os blobs enviados para a base de dados do GitHub ao selecionar Base de Dados como a Propriedade, = como Operador e GitHub no menu pendente Valores . Depois de selecionar os valores de filtro, clique longe do seletor de filtros para fechá-lo.
Agora, o gráfico mostra quantos blobs foram enviados para a base de dados do GitHub que foram processados em cada um dos componentes de ingestão ao longo do tempo.
- Tenha em atenção que a 13 de fevereiro existe uma diminuição do número de blobs que foram ingeridos na base de dados do GitHub ao longo do tempo. Além disso, tenha em atenção 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 êxito pelos componentes Gestor de Batching, Gestor de Ingestão e Motor de Armazenamento do Azure Data Explorer. Estes dados estão prontos para consulta.
Blobs Recebidos
Para compreender melhor a relação entre o número de blobs que foram recebidos em cada componente e o número de blobs que foram processados com êxito em cada componente, vamos adicionar um novo gráfico:
- Selecione + Novo gráfico.
- Escolha os mesmos valores acima para Âmbito, Espaço de Nomes de Métricas e Agregação e selecione a métrica Blobs Recebidos .
- Selecione o botão Aplicar divisão e selecione 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 do GitHub .
- Comparando os gráficos, repare que o número de blobs recebidos por cada componente corresponde de perto ao número de blobs que foram processados por cada componente. Esta comparação indica que não foram removidos blobs durante a ingestão.
Blobs Removidos
Para determinar se existem blobs que foram removidos durante a ingestão, deve analisar a métrica Blobs Removidos . Esta métrica mostra quantos blobs foram removidos durante a ingestão e ajuda-o a detetar se existe algum problema no processamento num componente de ingestão específico. Para cada blob removido, também obterá uma métrica De Resultado de Ingestão com mais informações sobre o motivo da falha.
Ver a latência de ingestão
As métricas Latência de Fase e Latência de Deteção monitorizam a latência no processo de ingestão e indicam se existem latências longas a ocorrer no Azure Data Explorer ou antes de os dados chegarem ao Azure Data Explorer para ingestão.
- A Latência de Fase indica o intervalo de tempo a partir do momento em que uma mensagem é detetada pelo Azure Data Explorer até que o respetivo conteúdo seja recebido por um componente de ingestão para processamento.
- A Latência de Deteção é utilizada para pipelines de ingestão com ligações de dados (como o hub de eventos, o hub IoT e o Event Grid). Esta métrica fornece informações sobre o intervalo de tempo da fila de dados até à deteção pelo Azure Data Explorer ligações de dados. Este intervalo de tempo é a montante para o Azure Data Explorer, pelo que não está incluído na métrica Latência de Fase que mede apenas a latência no Azure Data Explorer.
Nota
De acordo com a política de criação de lotes predefinida, o tempo de criação de lotes predefinido é de cinco minutos. Por conseguinte, se o lote não for selado por outros acionadores, o lote será selado após cinco minutos.
Quando vê uma latência longa até que os dados estejam prontos para consulta, analisar a Latência de Fase e a Latência de Deteção pode ajudá-lo a compreender se a latência prolongada se deve à latência prolongada no Azure Data Explorer ou se está a montante para o Azure Data Explorer. Quando a latência está no Azure Data Explorer em si, também pode detetar o componente específico responsável pela latência longa.
Latência de Fase (pré-visualização)
Vamos ver primeiro a latência de fase da nossa ingestão em fila. Para obter uma explicação de cada fase, veja Fases do Batching.
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Latência de Fase como o valor Métrica e Média como o valor de Agregação .
- Selecione o botão Aplicar divisão e selecione Tipo de Componente para segmentar o gráfico pelos diferentes componentes de ingestão.
- Selecione o botão Adicionar filtro e filtre os dados enviados para a base de dados do GitHub . Depois de selecionar os valores de filtro, clique longe do seletor de filtros para fechá-lo. Agora, o gráfico mostra a latência das operações de ingestão que são enviadas para a base de dados do GitHub em cada um dos componentes através da ingestão ao longo do tempo:
Podemos indicar as seguintes informações deste gráfico:
- A latência no componente Ligação de Dados dos Hubs de Eventos é de aproximadamente 0 segundos. Isto faz sentido, porque a Latência de Fase só mede a latência a partir do momento em que uma mensagem é detetada pelo Azure Data Explorer.
- O tempo mais longo no processo de ingestão (aproximadamente 5 minutos) passa a partir do momento em que o componente do Batching Manager recebeu dados para quando o componente do Gestor de Ingestão recebeu dados. Neste exemplo, utilizamos a política de criação de lotes predefinida para a base de dados do GitHub . Como indicado, o limite de tempo de latência para a política de lotes predefinido é de 5 minutos, pelo que isto provavelmente indica que quase todos os dados foram colocados em lotes por tempo e que a maior parte do tempo de latência para a ingestão em fila se deveu ao próprio lote.
- A latência do motor de armazenamento no gráfico representa a latência até que os dados sejam armazenados no Motor de Armazenamento do Azure Data Explorer e estejam prontos para consulta. Pode ver que a latência total média desde o momento da deteção de dados pelo Azure Data Explorer até estar pronta para consulta é de 5,2 minutos.
Latência de Deteção
Se utilizar a ingestão com ligações de dados, poderá querer estimar a latência a montante para o Azure Data Explorer ao longo do tempo, uma vez que a latência longa também pode ocorrer antes de o Azure Data Explorer obter os dados para ingestão. Para esse efeito, pode utilizar a métrica Latência de Deteção .
- Selecione + Novo gráfico.
- Selecione Latência de Deteção como o valor Métrica e Média como o valor agregação .
- Selecione o botão Aplicar divisão e selecione 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 dividido para fechá-lo.
- Pode ver que, durante a maior parte da duração, a latência de deteção está perto de 0 segundos, o que indica que o Azure Data Explorer obteve dados logo após a colocação dos dados. O pico mais alto de cerca de 300 milissegundos é por volta de 13 de fevereiro às 14:00, indicando que, neste momento, o cluster de Data Explorer do Azure recebeu os dados cerca de 300 milissegundos após a colocação de dados.
Compreender o processo de criação de lotes
Na segunda fase do fluxo de ingestão em fila, o componente Batching Manager otimiza o débito de ingestão ao colocar em lote os dados que recebe com base na política de loteamento de ingestão.
O seguinte conjunto de métricas ajuda-o a compreender como os seus dados estão a ser colocados em lotes durante a ingestão:
- Batches Processados: o número de lotes concluídos para ingestão.
- Tamanho do Lote: o tamanho estimado dos dados não comprimidos num 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é à vedação em lote.
- Contagem de Blobs do Batch: o número de blobs num lote concluído para ingestão.
Lotes processados
Vamos começar com uma vista geral do processo de criação de lotes ao analisar a métrica processada do Batches .
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Batches Processados como o valor Métrica e Soma como o valor agregação .
- Selecione o botão Aplicar divisão e selecione Tipo de Batching para segmentar o gráfico com base no motivo pelo qual o lote foi selado. Para obter uma lista completa dos tipos de lotes, veja Tipos de batching.
- Selecione o botão Adicionar filtro e filtre nos lotes enviados para a base de dados do GitHub . Depois de selecionar os valores de filtro, clique longe do seletor de filtros para fechá-lo.
O gráfico mostra o número de lotes selados com dados enviados para a base de dados do GitHub ao longo do tempo, divididos pelo Tipo de Batching.
- Tenha em atenção que existem 2 a 4 lotes por unidade de tempo ao longo do tempo e todos os lotes são selados por tempo, conforme estimado na secção Latência de Fase , onde pode ver que demora cerca de 5 minutos a colocar dados em lote com base na política de lote predefinida.
Duração do lote, tamanho e contagem de blobs
Agora vamos caracterizar ainda mais os lotes processados.
- Selecione o botão + Adicionar Gráfico para cada gráfico para criar mais gráficos para os valores de MétricaDuração do Lote, Tamanho do Lote e Contagem de Blobs do Batch.
- Utilize Média como o valor de Agregação .
- Tal como no exemplo anterior, selecione o botão Adicionar filtro e filtre os dados enviados para a base de dados do GitHub .
Nos gráficos Duração do Lote, Tamanho do Lote e Contagem de Blobs do Batch , podemos concluir algumas informações:
A duração média do lote é de cinco minutos (de acordo com a política de criação de lotes predefinida). Deve ter isto em conta quando observar a latência total de ingestão.
No gráfico Tamanho do Lote , pode 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 ingerir é 1 GB de dados não comprimidos e este tamanho também é definido como uma condição de vedação pela política de criação de lotes predefinida. Uma vez que não existem 1 GB de dados a serem colocados 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, o que diminui para 60-120 blobs. Com base na política de criação de lotes predefinida, um lote pode selar quando a contagem de blobs é de 1000 blobs. Como não chegamos a este número, não vemos lotes selados por contagem.
Comparar eventos recebidos com eventos enviados para ingestão
Ao aplicar o hub de eventos, o hub IoT ou a ingestão do Event Grid, pode ser útil comparar o número de eventos recebidos pelo Azure Data Explorer com o número de eventos enviados da origem de eventos para o Azure Data Explorer. As métricas Eventos Recebidos, Eventos Processados e Eventos Removidos permitem-lhe fazer esta comparação.
Eventos Recebidos
- No painel Métricas do Azure Monitor, selecione Adicionar Métrica.
- Selecione Eventos Recebidos como o valor Métrica e Soma como o valor 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 ligação de dados específica definida no cluster. Neste exemplo, filtramos a ligação de dados GitHubStreamingEvents . Depois de selecionar os valores de filtro, clique longe do seletor de filtros para fechá-lo.
Agora, o gráfico mostra o número de eventos recebidos pela ligação de dados selecionada ao longo do tempo:
- Neste gráfico, a ligaçã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, utilize as métricas Eventos Processados e Eventos Removidos.
- No gráfico que já criou, selecione Adicionar métrica.
- Selecione Eventos Processados como o valor Métrica e Soma como o valor agregação .
- Selecione Adicionar métrica novamente e selecione Eventos Removidos como o valor Métrica e Soma como o valor agregação .
O gráfico mostra agora o número de Eventos que foram recebidos, processados e removidos pela ligação de dados GitHubStreamingEvents ao longo do tempo.
- Quase todos os eventos recebidos foram processados com êxito pela ligação de dados. Existe um evento removido, que é compatível com o resultado de ingestão falhada devido a um pedido incorreto que vimos ao ver a métrica de resultado de ingestão.
Comparar eventos recebidos no Azure Data Explorer com mensagens enviadas do hub de eventos
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 Envio.
No gráfico que já criou para Eventos Recebidos, selecione Adicionar métrica.
Selecione Âmbito e, na caixa de diálogo Selecionar um âmbito , procure e selecione o espaço de nomes do hub de eventos que envia dados para a sua ligação de dados.
Selecione Aplicar
Selecione Mensagens a Enviar como o valor Métrica e Soma como valor de Agregação .
Clique fora das definições para obter o gráfico completo que compara o número de eventos processados pelo Azure Data Explorer ligação de dados ao número de eventos enviados a partir do hub de eventos.
- Repare que todos os eventos que foram enviados do hub de eventos foram processados com êxito pela ligação de dados Data Explorer do Azure.
- Se tiver mais do que um hub de eventos no espaço de nomes do hub de eventos, deve filtrar a métrica Mensagens A Enviar pela dimensão Nome da Entidade para obter apenas dados do hub de eventos pretendido no espaço de nomes do hub de eventos.
Nota
Não existe nenhuma opção para monitorizar a mensagem a enviar por grupo de consumidores. A métrica Mensagens A Enviar conta o número total de mensagens que foram consumidas por todos os grupos de consumidores. Assim, se tiver alguns grupos de consumidores no seu hub de eventos, poderá obter um número maior de Mensagens A Enviar do que os Eventos Recebidos.