Azure Monitor e Prometheus

Prometheus é uma solução popular de monitoramento e alerta de código aberto amplamente utilizada no ecossistema nativo da nuvem. O Prometheus é usado para monitorar e alertar sobre o desempenho da infraestrutura e das cargas de trabalho e é frequentemente usado em ambientes Kubernetes.

Use o Prometheus como um serviço gerenciado do Azure ou como um serviço autogerenciado para coletar métricas. As métricas do Prometheus podem ser coletadas de seus clusters do Azure Kubernetes Service (AKS), clusters do Kubernetes habilitados para Azure Arc, máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais.

As métricas do Prometheus são armazenadas em um espaço de trabalho do Azure Monitor, onde você pode analisar e visualizar os dados usando Metrics Explorer com PromQL e Espaço Gerenciado do Azure para Grafana.

Importante

O Prometheus gerenciado e hospedado pelo Azure Monitor se destina a armazenar informações sobre a integridade do serviço de máquinas e aplicativos do cliente. Ele não é destinado ao armazenamento de dados classificados como PII (informações de identificação pessoal) ou EUII (informações de identificação de usuário final). Recomendamos fortemente que você não envie nenhuma informação confidencial (nomes de usuário, números de cartão de crédito etc.) para campos do Prometheus hospedados no Azure Monitor, como nomes de métricas, nomes de rótulos ou valores de rótulos.

Serviço gerenciado do Azure Monitor para Prometheus

O Azure Monitor Managed Service for Prometheus é um componente do Azure Monitor Metrics que fornece um ambiente totalmente gerenciado e escalável para executar o Prometheus. Ele simplifica a implantação, o gerenciamento e o dimensionamento do Prometheus em um Serviço de Kubernetes do Azure, permitindo que você se concentre no monitoramento de seus aplicativos e infraestrutura.

Como um serviço totalmente gerenciado, o serviço gerenciado do Azure Monitor para Prometheus implanta automaticamente o Prometheus no AKS ou no Kubernetes habilitado para ARC. O serviço oferece alta disponibilidade, garantias de SLA e atualizações automáticas de software. O serviço fornece um armazenamento de métricas altamente escalável, com retenção de dados de até 18 meses.

O serviço gerenciado do Azure Monitor para Prometheus fornece alertas, regras e painéis pré-configurados. Com painéis recomendados pela comunidade Prometheus e integração nativa com o Grafana, você pode obter monitoramento abrangente imediatamente. Integra-se nativamente com o Espaço Gerenciado do Azure para Grafana e também funciona com o Grafana autogerenciado.

O preço é baseado na ingestão e consulta, sem custo adicional de armazenamento. Para obter mais informações, veja a guia Métricas nos preços do Azure Monitor.

Habilitar o serviço gerenciado do Azure Monitor para Prometheus

O serviço gerenciado do Azure Monitor para Prometheus coleta dados dos serviços do Azure Kubernetes:

  • AKS (Serviço de Kubernetes do Azure)
  • Kubernetes habilitado para Azure Arc

Para habilitar o serviço gerenciado do Azure Monitor para o Prometheus, você deve criar um espaço de trabalho do Azure Monitor para armazenar as métricas. Depois que o espaço de trabalho for criado, você poderá integrar serviços que coletam métricas do Prometheus.

Para habilitar o Managed Prometheus para nuvens com isolamento físico do Microsoft Azure, entre em contato com o suporte.

Prometheus autogerenciado hospedado no Azure

Além do serviço gerenciado do Prometheus, você pode instalar e gerenciar sua própria instância do Prometheus e usar a gravação remota para armazenar métricas em um espaço de trabalho do Azure Monitor.

Usando a gravação remota, você pode coletar dados de servidores Prometheus autogerenciados em execução nos seguintes ambientes:

  • Máquinas virtuais do Azure
  • Conjuntos de dimensionamento de máquina virtual do Azure
  • Servidores habilitados para Arc
  • Clusters Kubernetes autogerenciados, hospedados no Azure ou habilitados para Arc.

Serviços Kubernetes autogerenciados

Envie métricas do Prometheus autogerenciado em clusters Kubernetes. Para obter mais informações sobre escrita remota em espaços de trabalho do Azure Monitor para serviços Kubernetes, consulte os seguintes artigos:

Máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais

Envie dados do Prometheus autogerenciado em máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais. As máquinas virtuais podem estar em um ambiente gerenciado pelo Azure ou no local. Para obter mais informações, veja Enviar métricas do Prometheus de máquinas virtuais para um espaço de trabalho do Azure Monitor.

Armazenamento de dados

As métricas do Prometheus são armazenadas em um espaço de trabalho do Azure Monitor. Os dados são armazenados em um banco de dados de séries temporais que pode ser consultado usando a Prometheus Query Language (PromQL). Você pode armazenar dados de várias fontes de dados do Prometheus em um único espaço de trabalho do Azure Monitor. Para obter mais informações, veja Visão geral do espaço de trabalho do Azure Monitor.

Os dados são retidos nos espaços de trabalho do Azure Monitor por 18 meses.

Consultar e analisar métricas do Prometheus

Os dados do Prometheus são recuperados usando a Prometheus Query Language (PromQL). Você pode gravar suas próprias consultas, usar consultas da comunidade de código aberto e usar painéis do Grafana que incluem consultas em PromQL. Confira o projeto Prometheus.

Os seguintes serviços do Azure oferecem suporte à consulta de métricas do Prometheus em um espaço de trabalho do Azure Monitor:

Explorador de métricas do Azure Monitor com PromQL

O Metrics Explorer com PromQL permite que você analise e visualize métricas da plataforma e do Prometheus. O Metrics Explorer oferece suporte ao PromQL para métricas do Prometheus. O Metrics Explorer com PromQL (prévia) está disponível no item de menu Métricas do espaço de trabalho do Azure Monitor, onde suas métricas do Prometheus são armazenadas. Para obter mais informações, veja Metrics Explorer com PromQL.

Uma captura de tela mostrando uma consulta PromQL no Metrics Explorer.

Pastas de trabalho do Azure

Crie gráficos e painéis com tecnologia do serviço gerenciado do Azure Monitor para o Prometheus usando Pastas de Trabalho do Azure e consultas PromQL. Para obter mais informações, veja Consultar métricas do Prometheus usando pastas de trabalho do Azure

Integração com o Grafana

Visualize métricas do Prometheus usando o Espaço Gerenciado do Azure para Grafana. Conecte seu workspace do Azure Monitor a um workspace do Grafana para que ele possa ser usado como uma fonte de dados em um painel do Grafana. Então, você terá acesso a vários painéis predefinidos que usam as métricas do Prometheus e a capacidade de criar qualquer número de painéis personalizados. Para obter mais informações, veja Vincular um espaço de trabalho do Grafana a um espaço de trabalho do Azure Monitor

API de consulta do Prometheus

Use o PromQL por meio da API REST para consultar métricas do Prometheus armazenadas em um espaço de trabalho do Azure Monitor. Para obter mais informações, veja API de consulta do Prometheus.

Regras e alertas

O Prometheus oferece suporte a regras de gravação e regras de alerta usando consultas PromQL. Regras e alertas são implantados automaticamente no serviço gerenciado do Azure Monitor para o Prometheus. As métricas registradas pelas regras de gravação são armazenadas no espaço de trabalho do Azure Monitor e podem ser consultadas por painéis ou por outras regras. Regras de alerta e regras de gravação podem ser criadas e gerenciadas usando os Grupos de regras do Prometheus Gerenciado do Azure. Para o cluster do AKS, um conjunto de regras de alerta e regras de alerta predefinidas do Prometheus e de regras de gravação é fornecido para permitir um início rápido fácil.

Alertas disparados por regras de alerta podem disparar ações ou notificações, conforme definido nos grupos de ações configurados para a regra de alerta. Você também pode exibir os alertas do Prometheus disparados e resolvidos no portal do Azure juntamente com outros tipos de alerta.

Cotas e limites de serviço

O serviço Gerenciado do Azure Monitor para Prometheus tem limites e cotas padrão para ingestão. Quando você atinge os limites de ingestão, pode ocorrer limitação. Você pode solicitar um aumento nesses limites. Para obter informações sobre os limites de métricas do Prometheus, confira Limites de serviço do Azure Monitor.

Para monitorar e alertar sobre suas métricas de ingestão, veja Monitorar ingestão de métricas do espaço de trabalho do Azure Monitor.

Limitações/problemas conhecidos – Serviço gerenciado do Azure Monitor para Prometheus

  • A frequência mínima para coleta e armazenamento de métricas é de 1 segundo.
  • Durante as atualizações de nó, você pode experimentar lacunas que duram de 1 a 2 minutos em algumas coleções de métricas do coletor de nível de cluster. Essa lacuna ocorre devido a uma ação regular de Serviço de Kubernetes do Azure atualizar os nós no cluster. Esse comportamento é esperado e ocorre devido ao nó em que ele é executado ao ser atualizado. As regras de alerta recomendadas não são afetadas por esse comportamento.
  • Os nós gerenciados do Prometheus para Windows não são habilitados automaticamente. Para habilitar o monitoramento de nós e pods do Windows em seus clusters, veja Monitorar nós e pods do Windows em seus clusters.

Diferenciar maiúsculas de minúsculas

O Prometheus gerenciado pelo Azure é um sistema que não diferencia maiúsculas de minúsculas. Ele trata cadeias de caracteres, como nomes de métricas, nomes de rótulo ou valores de rótulo, como a mesma série temporal se eles diferirem de outra série temporal apenas pelo caso da cadeia de caracteres.

Observação

Esse comportamento é diferente do Prometheus de código aberto nativo, que é um sistema que diferencia maiúsculas de minúsculas.
Instâncias autogerenciadas do Prometheus em execução em VMs do Azure, VMSSs ou clusters do Azure Kubernetes Service (AKS) são sistemas que diferenciam maiúsculas de minúsculas.

No Prometheus gerenciado do Azure, as seguintes séries temporais são consideradas as mesmas:

diskSize(cluster="eastus", node="node1", filesystem="usr_mnt")
diskSize(cluster="eastus", node="node1", filesystem="usr_MNT")

Os exemplos acima são uma única série temporal em um banco de dados de séries temporais.

  • Todas as amostras ingeridas contra elas são armazenadas como se fossem extraída/ingeridas em uma única série temporal.
  • Se os exemplos acima forem ingeridos com o mesmo carimbo de data/hora, um deles será removido aleatoriamente.
  • O uso de letras maiúsculas e minúsculas armazenadas no banco de dados de séries temporais e retornadas por uma consulta é imprevisível. Maiúsculas e minúsculas diferentes podem ser retornadas em momentos diferentes na mesma série temporal.
  • Qualquer nome de métrica ou correspondente de nome/valor de rótulo presente na consulta é recuperado do banco de dados de séries temporais fazendo uma comparação que não diferencia maiúsculas de minúsculas. Se houver um correspondente que diferencia maiúsculas de minúsculas em uma consulta, ele será automaticamente tratado como um correspondente que não diferencia maiúsculas de minúsculas ao fazer comparações de cadeias de caracteres.

É uma melhor prática garantir que uma série temporal seja produzida ou extraída usando um único caso consistente.

No Prometheus de código aberto, as séries temporais acima são tratadas como duas séries temporais diferentes. Todas as amostras extraidas/ingeridas contra elas são armazenadas separadamente.

Referências do Prometheus

Veja a seguir links para a documentação do Prometheus.

Próximas etapas