Azure Monitor e Prometheus

O Prometheus é uma solução popular de monitoramento e alerta de código aberto que é amplamente utilizada no ecossistema nativo da nuvem. O Prometheus é usado para monitorar e alertar sobre o desempenho de infraestrutura e 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 Serviço Kubernetes do Azure (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 o Metrics Explorer com PromQL e o Azure Managed Grafana.

Importante

O Azure Monitor gerenciado e hospedado Prometheus destina-se a armazenar informações sobre a integridade do serviço de máquinas e aplicativos do cliente. Não se destina a armazenar quaisquer dados classificados como Informações Pessoais Identificáveis (PII) ou Informações Identificáveis do Utilizador Final (EUII). É altamente recomendável que você não envie informações confidenciais (nomes de usuário, números de cartão de crédito, etc.) para campos Prometheus hospedados pelo Azure Monitor, como nomes de métricas, nomes de rótulos ou valores de rótulos.

Azure Monitor Managed Service for 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 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 Kubernetes habilitado para AKS ou ARC. O serviço oferece alta disponibilidade, garantias de SLA e atualizações automáticas de software. O serviço oferece 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 da comunidade Prometheus e integração nativa do Grafana, você pode obter um monitoramento abrangente imediatamente. Integra-se nativamente com o Azure Managed Grafana e também funciona com o Auto-managed Grafana.

O preço é baseado na ingestão e consulta sem custo adicional de armazenamento. Para obter mais informações, consulte a guia Métricas em 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:

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

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

Para habilitar o Managed Prometheus para nuvens air-gapped do Microsoft Azure, entre em contato com o suporte.

Azure hospedou o Prometheus autogerenciado

Além do serviço gerenciado para 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áquinas virtuais do Azure
  • Servidores habilitados para arco
  • Clusters Kubernetes autogeridos hospedados no Azure ou habilitados para arco.

Serviços Kubernetes autogerenciados

Envie métricas do Prometheus autogerenciado em clusters Kubernetes. Para obter mais informações sobre gravação 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, consulte 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 cronológicas que pode ser consultado usando 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, consulte 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 o Prometheus Query Language (PromQL). Você pode escrever suas próprias consultas, usar consultas da comunidade de código aberto e usar painéis do Grafana que incluem consultas PromQL. Veja o projeto Prometheus.

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

Azure Monitor Metrics explorer com PromQL

O Metrics Explorer com PromQL permite analisar e visualizar métricas de plataforma e Prometheus. O explorador de métricas suporta PromQL para métricas Prometheus. O Metrics Explorer com PromQL (visualização) 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, consulte Metrics Explorer com PromQL.

Uma captura de tela mostrando uma consulta PromQL no explorador de métricas.

Pastas de trabalho do Azure

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

Integração com Grafana

VisualizE Prometheus métricas usando o Azure Managed Grafana. Conecte seu espaço de trabalho do Azure Monitor a um espaço de trabalho do Grafana para que ele possa ser usado como uma fonte de dados em um painel do Grafana. Em seguida, você tem acesso a vários painéis pré-construídos que usam métricas Prometheus e a capacidade de criar qualquer número de painéis personalizados. Para obter mais informações, consulte Vincular um espaço de trabalho do Grafana a um espaço de trabalho do Azure Monitor

API de consulta 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, consulte Prometheus query API.

Regras e alertas

O Prometheus suporta regras de gravação e regras de alerta usando consultas PromQL. As regras e alertas são implantados automaticamente no serviço gerenciado do Azure Monitor para Prometheus. As métricas registradas por 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. As regras de alerta e as regras de registo podem ser criadas e geridas utilizando os grupos de regras do Azure Managed Prometheus. Para o seu cluster AKS, é fornecido um conjunto de regras de alerta e regras de registo Prometheus predefinidas para permitir um início rápido e fácil.

Os 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 alertas Prometheus disparados e resolvidos no portal do Azure junto com outros tipos de alerta.

Limites e quotas de serviço

O serviço Azure Monitor Managed for Prometheus tem limites padrão e cotas para ingestão. Quando atingir os limites de ingestão, pode ocorrer uma limitação. Pode solicitar um aumento destes limites. Para obter informações sobre os limites de métricas do Prometheus, consulte Limites de serviço do Azure Monitor.

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

Limitações/Problemas conhecidos - Azure Monitor managed Service for Prometheus

  • A frequência mínima para raspar e armazenar métricas é de 1 segundo.
  • Durante as atualizações do nó, você pode enfrentar lacunas que duram de 1 a 2 minutos em algumas coleções de métricas do nosso coletor de nível de cluster. Essa lacuna se deve a uma ação regular do Serviço Kubernetes do Azure para atualizar os nós em seu cluster. Este comportamento é esperado e ocorre devido ao nó em que é executado estar a ser atualizado. As regras de alerta recomendadas não são afetadas por esse comportamento.
  • O Prometheus gerenciado para nós do Windows não está habilitado automaticamente. Para habilitar o monitoramento de nós do Windows & pods em seus clusters, consulte Monitorar nós do Windows & pods em seus clusters.

Sensível às maiúsculas e minúsculas

O Azure managed Prometheus é um sistema que não diferencia maiúsculas de minúsculas. Trata cadeias de carateres, como nomes de métricas, nomes de etiquetas ou valores de etiquetas, como a mesma série temporal, caso se diferenciem de outra série temporal apenas pelas maiúsculas/minúsculas da cadeia de carateres.

Nota

Este comportamento é diferente do Prometheus nativo open source que é um sistema sensível a maiúsculas e minúsculas.
As instâncias autogerenciadas do Prometheus em execução em VMs do Azure, VMSSs ou clusters do Serviço Kubernetes do Azure (AKS) são sistemas que diferenciam maiúsculas de minúsculas.

No Azure managed Prometheus, as seguintes séries temporais são consideradas iguais:

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 eles são armazenadas como se fossem raspadas/ingeridas contra uma única série temporal.
  • Se os exemplos anteriores forem ingeridos com o mesmo carimbo de data/hora, um deles será descartado aleatoriamente.
  • O invólucro armazenado no banco de dados de séries temporais e retornado por uma consulta é imprevisível. Invólucros diferentes podem ser devolvidos em momentos diferentes para a 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 cadeia de caracteres.

É uma prática recomendada garantir que uma série temporal seja produzida ou raspada usando um único caso consistente.

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

Referências de Prometeu

Seguem-se ligações para a documentação do Prometheus.

Próximos passos