Skip to content

Métricas para BI e relatórios

Padrão utilizado

CloudEvents é um padrão de especificação aberta que define um formato para eventos emitidos por serviços em ambientes de computação em nuvem. Ele foi desenvolvido para promover a interoperabilidade entre diferentes provedores de serviços em nuvem e sistemas distribuídos, garantindo que os eventos sejam expressos de maneira consistente e independente da plataforma.

As principais características do CloudEvents incluem:

  1. Formato Padrão: Define um formato comum para eventos, incluindo metadados obrigatórios e opcionais para descrever o evento.

  2. Interoperabilidade: Permite que sistemas distribuídos comuniquem eventos de forma consistente, independentemente da plataforma ou serviço em nuvem utilizado.

  3. Extensibilidade: O formato é projetado para ser facilmente estendido para atender a requisitos específicos de aplicativos ou ambientes.

  4. Independência de Protocolo: Embora seja frequentemente usado com HTTP, o CloudEvents pode ser implementado em diferentes protocolos de comunicação.

  5. Suporte a Diversos Tipos de Eventos: O padrão é flexível o suficiente para lidar com uma ampla variedade de tipos de eventos, desde notificações de sistema até eventos de aplicativos de negócios.

  6. Metadados Normalizados: Fornece um conjunto comum de metadados para descrever eventos, como tipo de evento, ID único, fonte, timestamp, etc.

Ao adotar o padrão CloudEvents, as organizações podem simplificar a integração e a comunicação entre sistemas distribuídos, reduzindo a dependência de formatos proprietários e facilitando a interoperabilidade entre diferentes serviços em nuvem e aplicativos.

Maiores informações sobre o Cloud Events

O padrão CloudEvents é definido pela Cloud Native Computing Foundation (CNCF), uma organização sem fins lucrativos que hospeda projetos de código aberto relacionados à computação em nuvem nativa. O site oficial do CloudEvents é hospedado como parte dos recursos da CNCF. Você pode encontrar informações detalhadas sobre o padrão, incluindo especificações, documentação e recursos adicionais, visitando o seguinte URL:

CloudEvents - CNCF

Neste site, você pode encontrar a especificação completa do CloudEvents, detalhes sobre implementações, tutoriais e outras informações relevantes para entender e implementar o padrão em seus projetos.

Entendendo a nomenclatura do tipo das métricas

O padrão LTREE utilizado na nomenclatura do tipo das métricas oferece várias vantagens em termos de facilitar e fornecer flexibilidade para a montagem de dashboards e visualizações em ferramentas de BI:

  1. Organização Hierárquica: O padrão LTREE permite organizar os tipos de métricas em uma estrutura hierárquica, onde cada nível representa uma categoria específica de métricas. Isso facilita a organização e a compreensão das métricas, permitindo que os usuários identifiquem facilmente as métricas relevantes para sua análise.

  2. Segmentação de Métricas: Ao usar o padrão LTREE, é possível segmentar as métricas em diferentes níveis hierárquicos com base em diferentes aspectos, como funcionalidades do sistema, tipos de interação do usuário, eventos específicos, entre outros. Isso permite uma análise mais granular e detalhada das métricas, facilitando a identificação de padrões e tendências.

  3. Personalização e Adaptação: O padrão LTREE oferece flexibilidade para personalizar e adaptar a estrutura de tipos de métricas de acordo com as necessidades específicas de cada organização ou projeto. Os usuários podem adicionar novos níveis hierárquicos, renomear ou reorganizar os tipos de métricas conforme necessário, sem comprometer a integridade da estrutura geral.

  4. Agregação e Roll-Up: O padrão LTREE suporta operações de agregação e roll-up, o que significa que é possível calcular métricas agregadas em diferentes níveis da hierarquia. Isso é útil para resumir e visualizar dados em diferentes níveis de granularidade, permitindo uma análise mais abrangente e perspicaz das métricas.

  5. Compatibilidade com Ferramentas de BI: Muitas ferramentas de BI oferecem suporte para a análise de dados hierárquicos, o que significa que os tipos de métricas definidos usando o padrão LTREE podem ser facilmente integrados e explorados em dashboards e visualizações. Isso permite que os usuários criem relatórios dinâmicos e interativos que fornecem insights valiosos sobre o desempenho do sistema ou do aplicativo.

Em resumo, o uso do padrão LTREE na nomenclatura do tipo das métricas proporciona uma estrutura organizada, segmentada e flexível para a análise de dados em ferramentas de BI. Isso facilita a identificação de padrões, tendências e insights significativos, permitindo que as organizações tomem decisões mais informadas e orientadas por dados.

Tipos de métricas e seus significados

Root Tipo Finalidade
auth user.login Usuário fez login no app.
user.logout Usuário fez logout do app.
user.create Novo usuário foi criado.
user.delete Usuário foi excluído.
user.update Informações do usuário foram atualizadas.
chat create Novo chat foi iniciado.
delete Chat foi excluído.
rename Título do chat foi atualizado.
messages user.new Usuário enviou uma mensagem ou fez uma pergunta.
user.feedback Usuário enviou um feedback sobre uma resposta.
user.delete Mensagem do usuário foi excluída.
user.update Mensagem do usuário foi atualizada.
rag.persona.new Bot de IA (RAG) enviou uma mensagem ou respondeu a uma pergunta.
rag.agent.new Agente autônomo inteligente gerou uma mensagem.
rag.bot.new Bot tradicional participou da conversa gerando uma mensagem.
agent.new Agente humano da empresa usuária enviou uma mensagem.

Exemplo do campo cada tipo e exemplo de dados para o campo data:

Tipo Finalidade Exemplo de Campo Data (JSON)
auth.user.login Usuário fez login no app. {"value": 1, "provider": "oidcsso"}
auth.user.logout Usuário fez logout do app. {"value": 1, "provider": "oidcsso"}
auth.user.create Novo usuário foi criado. {"value": 1, "provider": "oidcsso"}
auth.user.delete Usuário foi excluído. {"value": 1, "provider": "oidcsso"}
auth.user.update Informações do usuário foram atualizadas. {"value": 1, "provider": "oidcsso"}
chat.create Novo chat foi iniciado. {"value": "1", "persona_id": 0, "chat_session_id": 10}
chat.delete Chat foi excluído. {"value": "1", "chat_session_id": 10}
chat.rename Informações do chat foram atualizadas. {"value": "1", "chat_session_id": 10}
messages.user.new Usuário enviou uma mensagem ou fez uma pergunta. {"value": "1", "message_id": 80, "chat_session_id": 10}
messages.user.feedback Usuário enviou um feedback sobre uma resposta. {"value": "1", "message_id": 80, "is_positive": true, "feedback_text": "Boa resposta."}
messages.user.delete Mensagem do usuário foi excluída. {"value": "1", "message_id": 80}
messages.user.update Mensagem do usuário foi atualizada. {"value": "1", "old_message_id": 80, "new_message_id": 80}
messages.rag.persona.new Bot de IA (RAG) enviou uma mensagem ou respondeu a uma pergunta. {"value": "1", "message_id": 80, "chat_session_id": 10}
messages.rag.agent.new Agente autônomo inteligente gerou uma mensagem. {"value": "1", "message_id": 80, "chat_session_id": 10}
messages.rag.bot.new Bot tradicional participou da conversa gerando uma mensagem. {"value": "1", "message_id": 80, "chat_session_id": 10}
messages.agent.new Agente humano da empresa usuária enviou uma mensagem. {"value": "1", "message_id": 80, "chat_session_id": 10, "agent_id": agente_humano@empresa.com}

API para buscar métricas

Com o objetivo de facilitar a integração com outras ferramentas e analise das métricas geradas, desenvolvemos uma API que permite que os usuários busquem as informações de suas métricas de acordo com o Workspace e uma janela de data. O endpoint destinado a este recurso é GET /api/v1/workspace_metric/{workspace_id}/by_created_at onde workspace_id é o identificador único do workspace do qual os dados serão buscados.

Os principais parâmetros são passados através dos Query Parameters e são eles:

  • from_date: A data inicial da janela de data.

  • to_date: A data final da janela de data.

  • authorization: A chave de autenticação que é usada para autenticar o usuário. Essa chave deve ser gerada no Portal de Administração da Aumo por um administrador.

  • cursor (Opcional): O código da próxima página a ser retornada. Se estiver em branco, retorna a primeira página.

  • size (Opcional): O número de informações retornadas por vez. O mínimo é 0 e o máximo é 100.

  • include_total (Opcional): Se deve retornar o número total de métricas nesse período. Booleano.

Por exemplo:

curl -X 'GET' \
  'https://{url_base_do_servidor_de_apis}/api/v1/workspace_metric/{id_do_workspace}/by_created_at?from_date=2024-04-01%2000%3A00%3A00.000&to_date=2024-05-01%2000%3A00%3A00.000&authorization={AUMO_API_KEY}&size=50&include_total=true' \
  -H 'accept: application/json'

Padrão de resposta da API

A API retorna um objeto JSON que contém uma lista das métricas "items" e informações adicionais como "total" (número total de métricas neste período), e "next_page" que indica o cursor para a página seguinte. Abaixo segue um exemplo do objeto retornado pela API.

{
  "items": [
    {
      "specversion": "1.0",
      "type": "auth.user.login",
      "event_id": "018e999a-0784-7a7d-8244-bd44a5de45d9",
      "time": "2024-04-01T12:19:52.323627",
      "source": "aumorag",
      "subject": "email@exemplo.com.br",
      "data": {
        "value": 1,
        "provider": "oidcsso"
      },
      "id": "018e999a-0a38-71f3-9b91-42208c6d2560",
      "workspace_id": "clikqktri000cz8k4appdqku3",
      "created_at": "2024-04-01T12:19:53.017473",
      "updated_at": "2024-04-01T12:19:53.017476"
    },
    {
      "specversion": "1.0",
      "type": "chat.create",
      "event_id": "018e999a-bca0-7940-a9bb-1e1c002c348b",
      "time": "2024-04-01T12:20:38.687832",
      "source": "aumorag",
      "subject": "email@exemplo.com.br",
      "data": {
        "value": 1,
        "persona_id": 0,
        "chat_session_id": 349
      },
      "id": "018e999a-bda2-7d36-8738-cd65c727bb7f",
      "workspace_id": "clikqktri000cz8k4appdqku3",
      "created_at": "2024-04-01T12:20:38.946957",
      "updated_at": "2024-04-01T12:20:38.946959"
    },
    ...
  ],
  "total": 8366,
  "current_page": "Pg%3D%3D",
  "current_page_backwards": "PHM6Y2xpa3FrdHJpMDAwY3o4azRhcHBkcWt1M35kdDoyMDI0LTA0LTAxIDE3OjM5OjE3LjgyMjg5NH5zOjAxOGU5YWJlLTc4YmUtN2EwNy1hMDZlLWUxMGY1NjdjNzhmYQ%3D%3D",
  "previous_page": null,
  "next_page": "PnM6Y2xpa3FrdHJpMDAwY3o4azRhcHBkcWt1M35kdDoyMDI0LTA0LTAxIDE3OjM4OjE1LjA3MjY1NH5zOjAxOGU5YWJkLTgzYTAtNzczZi1hNTAyLTA2YjJmNjJjNTNiNg%3D%3D"
}

Uso das métricas com ferramentas de BI

Microsoft Power BI

O Microsoft Power BI não possuí uma integração nativa direta com o padrão CloudEvents. No entanto, o Power BI tem uma série de conectores e capacidades de integração que podem permitir que você consuma dados de fontes diversas, incluindo fontes que emitem eventos no formato CloudEvents, desde que você possa transformá-los em um formato compatível com o Power BI.

Se você precisa usar métricas do CloudEvents no Power BI, provavelmente precisará de um processo intermediário para converter os eventos do CloudEvents em um formato que o Power BI possa entender. Isso pode ser feito usando uma variedade de métodos, incluindo:

  1. Processamento de Stream em Tempo Real: Use uma ferramenta ou serviço que possa consumir eventos do CloudEvents em tempo real e transformá-los em um formato compatível com o Power BI, como JSON ou CSV. Você pode então carregar esses dados transformados no Power BI.

  2. Armazenamento Intermediário: Armazene os eventos do CloudEvents em um banco de dados ou armazenamento de dados que o Power BI possa acessar diretamente (por exemplo, Azure SQL Database, Azure Blob Storage, Amazon S3, etc.). Em seguida, conecte o Power BI a esse armazenamento e importe os dados para criar seus relatórios e visualizações.

  3. APIs e Serviços de Integração: Utilize APIs ou serviços de integração para transformar os eventos do CloudEvents em um formato que o Power BI possa consumir diretamente. Isso pode exigir desenvolvimento personalizado ou o uso de ferramentas de integração de terceiros.

Lembre-se de verificar se há atualizações ou novas integrações disponíveis no Power BI, pois as capacidades e os conectores do serviço podem evoluir ao longo do tempo. Além disso, consulte a documentação do Power BI e da CNCF para obter orientações mais recentes sobre como integrar diferentes fontes de dados com o Power BI.

Usar o arquivo JSON exportando do AumoAdmin no Power BI

O Power BI pode usar dados de um arquivo JSON para gerar dashboards e visualizações. Aqui está um processo básico de como você pode fazer isso:

  1. Carregar o Arquivo JSON: No Power BI Desktop, clique na opção "Obter Dados" na barra de ferramentas e selecione "JSON" como a fonte de dados. Em seguida, localize e selecione o arquivo JSON que deseja carregar.

  2. Transformar e Modelar os Dados (se necessário): Após carregar o arquivo JSON, você pode precisar transformar e modelar os dados para se adequarem às suas necessidades. Isso pode incluir expandir listas aninhadas, renomear colunas, alterar tipos de dados, entre outras transformações. Use o Editor de Consultas no Power BI Desktop para realizar essas operações.

  3. Criar Visualizações: Após carregar e modelar os dados, você pode começar a criar suas visualizações. Arraste os campos desejados para a área de visualização e escolha o tipo de gráfico ou tabela que deseja criar.

  4. Personalizar e Formatar: Personalize suas visualizações conforme necessário, alterando cores, tamanhos de fonte, rótulos, entre outros aspectos. Isso pode ser feito usando as opções de formatação disponíveis no Power BI.

  5. Criar Relatórios e Dashboards: Organize suas visualizações em relatórios e crie dashboards para consolidar várias visualizações em uma única página. Isso permite uma visão mais ampla dos dados e facilita a análise.

  6. Atualizar os Dados: Uma vez que seu relatório esteja pronto, você pode publicá-lo no serviço do Power BI e configurar atualizações automáticas para garantir que os dados sejam atualizados regularmente.

Este é um procedimento básico para carregar dados de um arquivo JSON no Power BI e criar visualizações a partir desses dados. Dependendo da estrutura do seu arquivo JSON e dos requisitos do seu relatório, você pode precisar realizar etapas adicionais de transformação e modelagem de dados.

Google Looker

Até a minha última atualização em janeiro de 2022, o Google Looker não oferecia uma integração nativa direta com o padrão CloudEvents. Assim como no caso do Microsoft Power BI, você provavelmente precisaria de um processo intermediário para consumir métricas do CloudEvents no Google Looker.

Aqui estão algumas opções possíveis para integrar métricas do CloudEvents com o Google Looker:

  1. Processamento de Stream em Tempo Real: Use um serviço que possa consumir eventos do CloudEvents em tempo real e transformá-los em um formato compatível com o Google Looker, como JSON ou CSV. Você pode então carregar esses dados transformados no Looker.

  2. Armazenamento Intermediário: Armazene os eventos do CloudEvents em um local acessível pelo Google Looker, como BigQuery ou Google Cloud Storage. Em seguida, conecte o Looker a esses dados armazenados e crie seus modelos e visualizações.

  3. APIs e Serviços de Integração: Utilize APIs ou serviços de integração para transformar os eventos do CloudEvents em um formato que o Looker possa consumir diretamente. Isso pode exigir desenvolvimento personalizado ou o uso de ferramentas de integração de terceiros.

Assim como com o Power BI, é sempre uma boa ideia verificar se há atualizações ou novas integrações disponíveis no Google Looker, pois as capacidades e os recursos do serviço podem evoluir ao longo do tempo. Além disso, consulte a documentação do Google Looker e da CNCF para obter orientações mais recentes sobre como integrar diferentes fontes de dados com o Looker.

Usar o arquivo JSON exportando do AumoAdmin no Google Looker

No Google Looker, você pode carregar dados de um arquivo JSON e criar visualizações usando a linguagem de modelagem LookML ou diretamente no Looker explorando os dados. Aqui está um procedimento básico para fazer isso:

  1. Crie um Novo Modelo (Model): No Looker, vá para o painel de Administração e crie um novo modelo (model). Este modelo é onde você definirá como os dados do arquivo JSON serão estruturados e acessados no Looker.

  2. Defina uma Conexão: No modelo, defina uma conexão com a fonte de dados onde o arquivo JSON está armazenado. O Looker suporta várias fontes de dados, incluindo bancos de dados SQL, Google BigQuery, Amazon Redshift, entre outros.

  3. Defina um Esquema (Schema): No Looker, defina um esquema para o modelo que você criou. O esquema define como os dados serão mapeados e organizados no Looker, incluindo tabelas, campos e relações entre eles.

  4. Carregue o Arquivo JSON: Dependendo da fonte de dados que você está usando, você pode precisar carregar o arquivo JSON para a fonte de dados antes de poder acessá-lo no Looker. Se estiver usando BigQuery, por exemplo, você pode carregar o JSON para uma tabela do BigQuery.

  5. Crie Visualizações no Looker: Depois de configurar o modelo e carregar os dados, você pode começar a criar visualizações no Looker. Você pode fazer isso usando a interface de usuário do Looker para explorar os dados e criar visualizações interativas.

  6. Personalize e Formate: Assim como no Power BI, você pode personalizar e formatar suas visualizações no Looker para atender às suas necessidades de análise e relatórios.

  7. Compartilhe e Colabore: Depois de criar suas visualizações, você pode compartilhá-las com outros usuários do Looker e colaborar em análises e relatórios.

Este é um procedimento básico para carregar dados de um arquivo JSON no Google Looker e criar visualizações a partir desses dados. Dependendo da sua configuração específica e dos requisitos do seu relatório, podem ser necessárias etapas adicionais. É sempre recomendável consultar a documentação oficial do Google Looker e procurar orientação específica, caso necessário.