4.13 Conectando Prometheus e Grafana pela Primeira Vez
Nas seções anteriores executamos separadamente o Prometheus e o Grafana.
Agora iremos conectar essas duas ferramentas para que o Grafana possa visualizar as métricas coletadas pelo Prometheus.
Neste primeiro exemplo iremos utilizar apenas as métricas internas do próprio Prometheus, sem ainda monitorar nossos serviços de machine learning. O objetivo é compreender como funciona a integração entre essas duas ferramentas.
Ao final desta seção você será capaz de:
executar Prometheus e Grafana simultaneamente;
conectar o Grafana ao Prometheus;
executar consultas PromQL no Grafana;
criar um primeiro painel de monitoramento.
1. Executando Prometheus e Grafana na Mesma Rede
Para que um contêiner possa acessar outro contêiner diretamente, ambos precisam estar conectados à mesma rede Docker.
Primeiro vamos criar uma rede chamada minharede (caso ainda não exista, lembre-se que já criamos uma com esse nome anteriormente):
docker network create minharedeAgora vamos executar o Prometheus nessa rede:
docker run -d -p 9090:9090 --name prometheus --network minharede prom/prometheusEm seguida execute o Grafana na mesma rede:
docker run -d -p 3000:3000 --name grafana --network minharede grafana/grafanaSe tudo estiver correto, o comando abaixo mostrará os dois contêineres em execução:
Você deverá ver algo semelhante a:
2. Acessando as Interfaces
Abra o navegador e acesse:
Prometheus:
Grafana:
No Grafana utilize as credenciais padrão:
Após o primeiro login será solicitado que você altere a senha.
3. Adicionando o Prometheus como Fonte de Dados
Agora iremos informar ao Grafana onde estão armazenadas as métricas.
No menu lateral do Grafana, clique em:
Em seguida clique em:
Escolha:
Agora será necessário informar o endereço do servidor Prometheus.
Como os dois contêineres estão na mesma rede Docker, podemos utilizar o nome do contêiner como hostname.
No campo Prometheus server URL, informe:
Depois clique em:
Se tudo estiver correto, o Grafana exibirá a mensagem:
Isso significa que o Grafana conseguiu se conectar ao Prometheus.
4. Explorando Métricas com o Grafana
Agora podemos explorar as métricas armazenadas no Prometheus diretamente pelo Grafana.
No menu lateral clique em:
No topo da página selecione a fonte de dados Prometheus.
A interface exibirá um Query Builder, que permite montar consultas visualmente. Cada consulta é identificada por uma letra (A, B, C, etc.). Por padrão o Grafana cria automaticamente uma primeira consulta chamada A.
No campo de consulta da query A, digite:
Pressione Run query (um botão no canto direito, com duas setas circulares).
O Grafana exibirá um gráfico mostrando o comportamento dessa métrica ao longo do tempo.
5. Explorando múltiplas métricas do Prometheus no Grafana
Agora vamos criar um gráfico contendo várias métricas ao mesmo tempo, utilizando o Query Builder do Grafana. Isso nos permitirá observar diferentes aspectos do comportamento do Prometheus simultaneamente.
Neste exemplo vamos utilizar cinco métricas internas do próprio Prometheus.
No menu lateral do Grafana clique em:
No topo da página selecione a fonte de dados:
O Grafana exibirá o Query Builder, onde cada consulta é identificada por uma letra.
Por padrão já existe uma consulta chamada A. Clique em Add query quatro vezes, para criar cinco consultas. Escolha as seguintes métricas, uma para cada query:
A
prometheus_http_requests_total
Total de requisições HTTP recebidas
B
prometheus_engine_queries
Número de consultas executadas pelo motor de queries
C
go_goroutines
Quantidade de goroutines ativas no processo
D
go_threads
Número de threads do sistema utilizadas
E
process_open_fds
Número de descritores de arquivos abertos
Essas métricas podem ser visualizadas juntas para fins exploratórios, embora em cenários reais seja comum separá-las ou utilizar eixos diferentes.
Agora clique no botão Run query.
O gráfico exibirá cinco séries temporais diferentes, cada uma representando uma métrica.
Você pode:
clicar no nome da série na legenda para ativar ou desativar uma métrica
passar o mouse sobre o gráfico para ver os valores exatos em um determinado momento
ajustar o intervalo de tempo no canto superior direito
Esse tipo de visualização permite observar vários aspectos do sistema ao mesmo tempo, algo muito comum em ambientes de produção.
6. Criando um Primeiro Dashboard
Agora vamos criar um painel simples para visualizar métricas do Prometheus.
No menu lateral clique em:
Clique em:
Selecione a fonte de dados Prometheus.
No campo de consulta digite:
Clique em Run queries.
Um gráfico será exibido mostrando o consumo de memória do processo do Prometheus.
Observe que no lado direito da tela existe uma área dedicada à escolha do tipo de visualização.
Nessa área aparecem duas abas principais:
Essas abas ajudam você a escolher como os dados coletados pelo Prometheus serão exibidos no painel.
A aba All visualizations mostra todos os tipos de visualização disponíveis no Grafana.
Alguns exemplos comuns incluem:
Time series
Gráfico de séries temporais (o mais comum para métricas)
Bar chart
Gráfico de barras
Stat
Mostra um único valor numérico destacado
Gauge
Medidor semelhante a um velocímetro
Table
Exibe os dados em formato tabular
Pie chart
Gráfico de pizza
Para testar diferentes visualizações basta:
Clicar em um dos tipos listados.
Observar como o painel muda automaticamente.
O Grafana reutiliza a mesma consulta, apenas alterando a forma de apresentar os dados.
A aba Suggestions tenta sugerir automaticamente os tipos de visualização mais adequados para a métrica selecionada.
Por exemplo:
métricas ao longo do tempo → Time series
valores únicos → Stat
comparações entre categorias → Bar chart
Essas sugestões são baseadas no formato dos dados retornados pela consulta.
Embora as sugestões geralmente sejam úteis, você sempre pode voltar à aba All visualizations para escolher manualmente qualquer tipo de visualização.
Uma boa forma de aprender Grafana é experimentar diferentes tipos de visualização com a mesma métrica.
Em ambientes reais de monitoramento, a escolha da visualização correta é importante para tornar os dashboards claros e fáceis de interpretar.
Uma vez que esteja satisfeito com o tipo de visualização, escolha um título para este painel (ex: "Uso de memória") e clique em Save dashboard para adicionar o painel ao dashboard. Neste momento, também é preciso escolher um nome para o dashboard. Escolha "Monitoramento do Prometheus" e salve.
Agora você possui seu primeiro dashboard simples, com um painel.
7. Adicionando Outro Painel
Para adicionar outro gráfico ao mesmo dashboard, você precisa voltar ao modo de edição do dashboard. Você pode fazer isso clicando em Back to dashboard, no topo da página, ou clicando novamente em Dashboards, no menu à esquerda, e selecionando o dashboard recém-criado. Em seguida, selecione o botão Edit, no topo da página.
Agora clique em:
Construa a seguinte consulta (utilizando o builder ou selecionando o botão "code" ao lado de "Run queries"):
A função rate() calcula a velocidade de crescimento de uma métrica do tipo contador ao longo do tempo, sendo muito utilizada para medir taxas, como requisições por segundo. Neste caso, o gráfico irá mostrar a taxa de requisições HTTP recebidas pelo servidor Prometheus. Vamos escolher o tipo de visualização "Time series"
Clique em Save dashboard novamente.
Volte ao dashboard e repita o processo, mas agora adicione a mesma visualização usando o tipo "Stat".
Agora seu dashboard possui três painéis de monitoramento.
Experimente esses novos painéis. Abra o de visualização de requisições enquanto faz várias requisições ao endpoint de métricas do Prometheus (http://localhost:9090/metrics). Veja o gráfico subindo em resposta.
Conclusão
Nesta seção conectamos o Grafana ao Prometheus e criamos nossos primeiros painéis de monitoramento. Aprendemos como:
executar Prometheus e Grafana na mesma rede Docker;
configurar o Prometheus como fonte de dados no Grafana;
explorar métricas utilizando consultas PromQL;
criar dashboards simples.
Embora neste exemplo tenhamos utilizado apenas métricas internas do Prometheus, o mesmo procedimento será utilizado para visualizar métricas de outros serviços.
Nas próximas seções iremos conectar o Prometheus a diferentes componentes do nosso ambiente de produção, como contêineres Docker, servidores e serviços de processamento de dados.
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