Monitorando as visualizações do dashboard do Kibana com o Elastic Workflows

Aprenda a usar o Elastic Workflows para coletar métricas de visualização do dashboard do Kibana a cada 30 minutos e indexá-las no Elasticsearch, para que você possa criar análises e visualizações personalizadas com base em seus próprios dados.

O Kibana rastreia quantas vezes cada dashboard é visualizado, mas esses dados não são expostos nativamente em nenhum dashboard integrado. Neste artigo, vamos usar o Elastic Workflows para coletar automaticamente esses dados a cada 30 minutos e indexá-los no Elasticsearch, para que possamos criar nossa própria analítica sobre eles.

O Elastic Workflows é um mecanismo de automação integrado dentro do Kibana que permite definir processos de várias etapas usando uma simples configuração YAML. Cada fluxo de trabalho pode ser acionado em um cronograma ou evento ou como uma ferramenta no Elastic Agent Builder, e cada etapa pode chamar APIs do Kibana, consultar o Elasticsearch ou transformar dados.

Vamos usar as contagens de visualização de dashboards como um exemplo concreto, mas o mesmo padrão se aplica a qualquer métrica exposta pela API de objetos salvos do Kibana.

Pré-requisitos

[@portabletext/react] Unknown block type "block", specify a component for it in the `components.types` prop

Antes de construir qualquer coisa, vamos entender quais dados temos. O Kibana armazena a maior parte de sua configuração e metadados como objetos salvos em um índice interno dedicado. Uma das coisas que o Kibana monitora dessa forma são as contagens de visualizações do dashboard, usando um tipo especial de objeto salvo chamado contadores de uso. Você pode consultá-los diretamente pelas Ferramentas de Desenvolvimento:

A resposta tem aparência semelhante a esta:

O campo counterName é o ID do dashboard, e count é a contagem cumulativa de visualizações para aquele dashboard naquele dia específico. Kibana cria um objeto contador por dashboard por dia; você pode ver o sufixo de data no ID do objeto (... visualizado:servidor:20260310). A contagem cresce ao longo do dia à medida que os usuários abrem o dashboard.

Em vez de replicar esse modelo de documento diário em nosso índice, criaremos um documento por execução de fluxo de trabalho. Cada documento registra quantas visualizações aquele dashboard acumulou no dia no momento da captura.

Passo 2: criar o índice de destino

Precisamos de um índice para armazenar os snapshots da vista do nosso dashboard. O comando a seguir cria com mapeamentos explícitos para que possamos agregar e visualizar depois. Execute isso nas ferramentas de desenvolvimento:

O uso de mapeamentos keyword para IDs e nomes permite agregações. Usar integer para view_count é um padrão seguro, já que o Kibana reinicia o contador diariamente e atingir o limite de 32 bits (mais de 2 bilhões de visualizações em um único dia) não é uma preocupação realista. Ainda permite operações numéricas, como max, avg e min, entre outras.

Passo 3: Crie o fluxo de trabalho

Acesse Stack Management > Fluxo de trabalho > Novo Fluxo de Trabalho e cole a seguinte configuração YAML do fluxo de trabalho:

Na próxima seção, vamos analisar o fluxo de trabalho passo a passo.

Como funciona o fluxo de trabalho

Gatilhos

O fluxo de trabalho é executado com um gatilho programado a cada 30 minutos. Isso nos fornece dados de séries temporais sem sobrecarregar a API.

buscar_visualizações_do_painel

Usa kibana.request para chamar a API de objetos salvos do Kibana. Não é necessário configurar autenticação: o motor de fluxo de trabalho anexa automaticamente os cabeçalhos corretos com base no contexto de execução.

index_each_dashboard (foreach)

Itera sobre o array saved_objects retornado pela etapa anterior. O item atual em cada iteração está disponível como foreach.item. Dentro do loop, executamos duas etapas aninhadas para cada dashboard.

1. fetch_dashboard_name:

Resolve o título do dashboard legível por humanos chamando GET /api/saved_objects/dashboard/{id}. Adicionamos on-failure: continue: true para que, se um dashboard for excluído mas ainda tiver contadores de visualização, o loop continue em vez de falhar toda a execução.

2. index_doc:

Indexa cada documento usando POST /dashboard-views/_doc (sem um ID explícito), o que permite que o Elasticsearch gere IDs automaticamente. Isso cria um novo documento a cada execução, construindo um histórico de contagens de visualizações ao longo do tempo, em vez de sobrescrever o snapshot anterior.

Duas coisas que valem a pena notar:

  • O campo captured_at usa o filtro de data para formatar o carimbo de data/hora como ISO 8601. Sem isso, o valor aparece como uma string de data em JavaScript, como Tue Mar 10 2026 05:03:47 GMT+0000, que o Elasticsearch não mapeia como data.
  • O view_count usa a sintaxe ${{ }} com | plus: 0 para preservar o tipo numérico. Usar {{ }} o renderizaria como uma string, o que impediria operações matemáticas no dashboard.

A UI permite que você depure cada uma das etapas do fluxo de trabalho.

Etapa 4: Crie o dashboard de estatísticas

Depois que o fluxo de trabalho for executado algumas vezes e os dados forem coletados, crie um novo dashboard no Kibana usando a Data view dashboard-views.

Alguns painéis para começar:

  • Principais dashboards por visualizações: use um gráfico de barras com dashboard_name no eixo X e last_value(view_count) no eixo Y. Isso mostra a contagem diária atual de visualizações por dashboard.
  • Visualizações ao longo do tempo: use um gráfico de linhas com captured_at no eixo X e last_value(view_count) no eixo Y, dividido por dashboard_name. Como cada execução adiciona um novo documento, use o último valor para obter a contagem de picos por buckets, em vez de somar duplicados.
  • Snapshot atual: use uma tabela de dados com os captured_at mais recentes para mostrar as contagens de visualizações mais recentes em todos os dashboards.

Como cada fluxo de trabalho cria um novo documento, você pode filtrar por faixa de tempo para analisar a atividade em períodos específicos, comparar semana a semana ou criar alertas quando um dashboard cair abaixo de um limite de visualização.

Conclusão

O Elastic Workflows é uma boa opção para esse tipo de coleta periódica de dados porque tanto a fonte (Kibana API) quanto o destino (Elasticsearch) são nativos, o que significa zero gerenciamento de credenciais. O motor de fluxo de trabalho lida automaticamente com autenticação para kibana.request e elasticsearch.request etapas, então a única coisa que você escreve é a lógica.

Recursos

Quão útil foi este conteúdo?

Não útil

Um pouco útil

Muito útil

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)