0Pricing
DevOps Bootcamp · Aula

Métricas com Prometheus e Grafana

Configure o Prometheus para coletar métricas do cluster e das aplicações e visualize-as com o Grafana.

Métricas com Prometheus e Grafana é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

O poder das métricas

As métricas são medições numéricas que descrevem o estado e o desempenho das suas aplicações e da sua infraestrutura. Pense nelas como sinais vitais do seu software!

Elas fornecem informações valiosas sobre:

  • Desempenho: Com que rapidez sua aplicação responde?
  • Uso de recursos: Seu servidor está ficando sem memória?
  • Disponibilidade: Seu serviço está ativo e funcionando para os usuários?

Ao acompanhar as métricas, você pode entender tendências, detectar anomalias e solucionar problemas de forma proativa.

Conheça o Prometheus

O Prometheus é um sistema de monitoramento de código aberto projetado para oferecer confiabilidade e escalabilidade. Ele é uma ferramenta essencial da pilha de observabilidade nativa da nuvem.

Sua função principal é:

  • Coletar: Reunir métricas de destinos configurados, como suas aplicações.
  • Armazenar: Salvar essas métricas em um banco de dados de séries temporais.
  • Consultar: Permitir que você faça perguntas sobre os dados coletados.

O Prometheus ajuda você a obter uma visão clara do que está acontecendo dentro do seu cluster Kubernetes.

Modelo de "coleta" do Prometheus

O Prometheus usa um modelo de "pull" para coletar métricas. Em vez de as aplicações enviarem dados ao Prometheus, o Prometheus "coleta" ou busca ativamente as métricas delas.

Veja como isso geralmente funciona:

  1. Sua aplicação expõe métricas em um endpoint HTTP específico (geralmente /metrics).
  2. O Prometheus é configurado com uma lista de destinos, como o IP e a porta da sua aplicação.
  3. Em intervalos regulares, o Prometheus envia uma solicitação HTTP ao endpoint /metrics de cada destino.
  4. O destino responde com suas métricas atuais, que o Prometheus armazena.

Métricas: pares chave-valor

O Prometheus armazena dados como séries temporais: sequências de valores com marcação de tempo. Cada série temporal é identificada exclusivamente por um nome de métrica e um conjunto de pares chave-valor chamados rótulos.

Exemplo: http_requests_total{method="GET", path="/api"}

O Prometheus tem os seguintes tipos principais de métricas:

  • Contador: Uma métrica cumulativa que apenas aumenta (por exemplo, o total de solicitações).
  • Medidor: Um valor que pode aumentar ou diminuir (por exemplo, o uso atual da CPU).
  • Histograma/Resumo: Usado para amostrar observações e contá-las em intervalos configuráveis (por exemplo, as durações das solicitações).

Fazendo as aplicações "falarem" em métricas

Para que o Prometheus colete métricas, sua aplicação precisa expô-las em um formato que o Prometheus entenda. Isso geralmente é feito por meio de um endpoint HTTP.

Muitas linguagens de programação têm bibliotecas de cliente que facilitam a instrumentação do seu código:

  • Incrementar contadores quando ocorrerem eventos.
  • Definir medidores para estados atuais.
  • Observar as durações das operações.

Vamos ver um exemplo muito simples de uma aplicação que expõe uma métrica de contador básica.

Aplicação Python expondo métricas

Aqui está uma pequena aplicação Python com Flask que expõe uma métrica de contador simples. Ela simula a contagem de visualizações de páginas.

Execute este código e tente acessar /metrics no seu navegador ou terminal (por exemplo, depois da execução, acesse http://localhost:5000/metrics).

from flask import Flask
from prometheus_client import Counter, generate_latest
import time

app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')

@app.route('/')
def hello():
    c.inc() # Increment the counter
    return "Hello, CoddyKit!"

@app.route('/metrics')
def metrics():
    return generate_latest().decode('utf-8')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Prometheus no seu cluster

No Kubernetes, implantar o Prometheus de forma eficiente geralmente envolve o Operador do Prometheus. Esse operador ajuda a gerenciar instâncias e configurações do Prometheus.

Principais recursos do Kubernetes para o Prometheus:

  • ServiceMonitor: Informa ao Prometheus *onde* encontrar endpoints de métricas (por exemplo, quais Services e Pods devem ser coletados).
  • PodMonitor: É semelhante ao ServiceMonitor, mas direciona-se diretamente aos Pods.

Esses recursos permitem que o Prometheus descubra e colete automaticamente métricas das suas aplicações implantadas.

Grafana: o maestro dos painéis

Enquanto o Prometheus coleta e armazena métricas, o Grafana é a ferramenta principal para visualizá-las. Ele é uma aplicação web de análise e visualização interativa de código aberto.

O Grafana permite que você:

  • Crie painéis bonitos e informativos.
  • Consulte várias fontes de dados, como o Prometheus.
  • Configure alertas com base em limites de métricas.

Ele transforma dados brutos de métricas em informações úteis para a tomada de decisões.

Grafana e Prometheus: uma dupla poderosa

O Grafana não armazena dados de métricas por conta própria; ele consulta dados de fontes externas. Para visualizar as métricas do Kubernetes, você configurará o Prometheus como uma fonte de dados no Grafana.

Etapas:

  1. No Grafana, adicione uma nova fonte de dados.
  2. Selecione "Prometheus" como o tipo.
  3. Forneça o URL do seu servidor Prometheus.
  4. Comece a criar painéis usando a linguagem de consulta do Prometheus, PromQL!

Essa combinação oferece controle total sobre o monitoramento do seu cluster.

Teste seus conhecimentos!

É hora de verificar sua compreensão sobre o Prometheus e o Grafana!

Recapitulação: métricas e visualização

Ótimo trabalho! Nesta lição, você aprendeu:

  • A importância das métricas para a observabilidade.
  • O Prometheus como um sistema poderoso para coletar e armazenar métricas de séries temporais.
  • Como as aplicações expõem métricas para que o Prometheus as colete.
  • O Grafana para criar painéis informativos e visualizar seus dados de métricas.

Entender essas ferramentas é fundamental para manter suas aplicações Kubernetes saudáveis e com bom desempenho. Continue explorando como instrumentar suas próprias aplicações!

Perguntas Frequentes

A aula “Métricas com Prometheus e Grafana” é grátis?

Sim — o texto completo de “Métricas com Prometheus e Grafana” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Métricas com Prometheus e Grafana”?

Configure o Prometheus para coletar métricas do cluster e das aplicações e visualize-as com o Grafana. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Métricas com Prometheus e Grafana”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Logging com kubectl logs
  2. Métricas com Prometheus e Grafana
  3. Verificações de integridade: sondas de atividade e prontidão
  4. Rastreamento Distribuído e Eventos
← Voltar para DevOps Bootcamp