4.11 Prometheus

Nesta seção iremos instalar e executar o Prometheusarrow-up-right e explorar suas funcionalidades básicas. O objetivo deste primeiro contato não é monitorar todo o nosso ambiente ainda, mas entender como uma ferramenta de monitoramento coleta, armazena e exibe métricas.

Ao final desta seção você será capaz de:

  • executar o Prometheus em um contêiner Docker;

  • acessar sua interface web;

  • entender o conceito de scraping de métricas;

  • explorar as métricas internas do próprio Prometheus;

  • visualizar gráficos simples;

  • executar consultas personalizadas.

Todo o processo pode ser realizado apenas com Docker, sem a necessidade de instalar nada diretamente no sistema operacional.


1. Executando o Prometheus com Docker

Primeiramente, vamos executar o Prometheus utilizando uma imagem oficial disponível no Docker Hub.

Execute o seguinte comando no terminal:

docker run --rm -p 9090:9090 prom/prometheus

Esse comando realiza várias ações importantes:

  • faz o download da imagem oficial do Prometheus (caso ainda não esteja no seu computador);

  • cria um contêiner a partir dessa imagem;

  • publica a porta 9090 do contêiner para o host.

A porta 9090 é a porta padrão utilizada pelo Prometheus para sua interface web.

Se tudo ocorrer corretamente, o terminal começará a exibir mensagens de inicialização semelhantes às seguintes:

Essas mensagens indicam que o servidor de monitoramento está em execução.

Observação: ao encerrar o contêiner, todas as métricas armazenadas serão perdidas, pois não estamos utilizando volumes persistentes.

2. Acessando a Interface Web

Abra seu navegador e acesse o seguinte endereço:

A interface principal do Prometheus será exibida.

Ela contém alguns menus importantes:

Graph

Permite executar consultas sobre métricas e visualizar gráficos.

Status

Exibe informações internas do Prometheus, incluindo os serviços que estão sendo monitorados.

Alerts

Apresenta alertas configurados no sistema.

Targets

Mostra quais serviços o Prometheus está monitorando no momento.

Como estamos executando apenas o próprio Prometheus, veremos inicialmente apenas um alvo monitorado: o próprio servidor Prometheus.

3. Verificando os Targets Monitorados

Clique em:

A página exibirá uma tabela com os serviços monitorados.

Nesse momento você verá algo parecido com:

Endpoint
State

prometheus:9090

UP

Isso significa que o Prometheus está coletando métricas dele próprio.

4. Entendendo o Conceito de Scrape

O Prometheus utiliza um mecanismo chamado scraping para coletar métricas.

Em vez de os serviços enviarem dados para o servidor de monitoramento, o Prometheus consulta periodicamente os serviços monitorados.

O processo funciona da seguinte forma:

Ou seja:

  1. o serviço expõe um endpoint HTTP chamado /metrics;

  2. o Prometheus consulta esse endpoint periodicamente;

  3. os valores retornados são armazenados como séries temporais.

Esse modelo é conhecido como pull-based monitoring, pois o monitoramento ocorre através da coleta ativa das métricas pelo servidor.

Isso difere de sistemas baseados em push, onde os serviços enviam métricas. No Prometheus, o controle da coleta está centralizado.

5. Explorando Métricas Internas

Mesmo sem monitorar nenhum sistema externo, o Prometheus já disponibiliza diversas métricas sobre seu próprio funcionamento.

Vamos visualizar algumas delas.

Clique no menu Graph.

Na caixa de consulta, digite:

Clique em Execute.

Depois clique em Graph para visualizar o gráfico.

Essa métrica representa o tempo total de CPU utilizado pelo processo do Prometheus.

6. Visualizando Outras Métricas

Experimente executar algumas consultas adicionais.

Uso de memória do processo:

Essa métrica mostra a quantidade de memória utilizada pelo processo do Prometheus.

Número de requisições HTTP recebidas:

Essa métrica representa o número total de requisições HTTP recebidas pelo servidor Prometheus.

Número de séries temporais armazenadas:

Essa métrica indica quantas séries temporais estão armazenadas na memória do Prometheus.

7. Visualizando o Endpoint de Métricas

Agora vamos observar diretamente o endpoint que fornece essas métricas.

Abra o seguinte endereço no navegador:

Você verá uma longa lista de métricas em formato texto, semelhante ao exemplo abaixo:

Cada linha representa uma métrica coletada pelo Prometheus.

A estrutura geral é:

Os labels permitem diferenciar valores da mesma métrica. Por exemplo:

Essa expressão representa uma métrica chamada http_requests_total, que indica o número total de requisições HTTP registradas. Os elementos entre chaves ({method="GET", status="200"}) são chamados de labels e servem para filtrar ou identificar dimensões específicas dessa métrica — neste caso, apenas requisições do tipo GET que retornaram status 200 (sucesso). O valor 1027 indica que, até aquele momento, foram registradas 1027 requisições com essas características.

8. Criando Consultas Simples

O Prometheus utiliza uma linguagem de consulta chamada PromQL (Prometheus Query Language).

Essa linguagem permite consultar e manipular métricas armazenadas no sistema.

Vamos experimentar algumas consultas simples.

Taxa de crescimento de uma métrica

Digite no campo de consulta:

Em PromQL, expressões como [1m] indicam um intervalo de tempo (range), permitindo calcular variações ao longo do tempo. Neste caso, a consulta calcula a taxa de crescimento da métrica no último minuto.

Valor médio de uma métrica

Outra consulta possível seria:

Essa consulta calcula o valor médio da métrica.

9. Parando o Prometheus

Quando quiser encerrar o Prometheus, volte ao terminal onde o contêiner está rodando e pressione:

O contêiner será interrompido, removido, e o servidor de monitoramento será encerrado.

Conclusão

Nesta seção realizamos o primeiro contato com o Prometheus. Aprendemos como:

  • executar o servidor de monitoramento em um contêiner Docker;

  • acessar sua interface web;

  • entender o mecanismo de coleta de métricas (scraping);

  • explorar métricas internas do sistema;

  • visualizar gráficos simples;

  • executar consultas básicas utilizando PromQL.

Nas próximas seções iremos integrar o Prometheus com outras ferramentas de visualização e monitorar diferentes componentes do ambiente de produção construído nos capítulos anteriores.

Nota sobre o desenvolvimento do material

O conteúdo desta seção contou com o apoio do ChatGPT como ferramenta auxiliar na estruturação de explicações, revisão de conceitos e refinamento técnico. Todas as decisões de conteúdo, exemplos e direcionamento didático foram conduzidas pelo autor.

Atualizado