tutoriais
FrankenPHP parte 3 - Prometheus
No post anterior, vimos como subir uma aplicação usando o FrankenPHP com o Caddyfile habilitando as métricas. Nesse artigo, vamos evoluir um pouco mais e subir um container prometheus configurado para capturar as métricas do FrankenPHP.
#Adicionando o container do Prometheus
No nosso docker-compose.yaml
vamos adicionar o service do Prometheus
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
- ./data/prometheus:/prometheus
E antes de subirmos tudo, vamos criar nosso arquivo de configuração do Prometheus em config/prometheus.yml
:
global:
scrape_interval: 15s # default is 1 minute
scrape_configs:
- job_name: caddy
static_configs:
- targets: ['app:2019']
Usamos app:2019
pois, o localhost dentro do container do prometheus aponta para ele mesmo, e o app
é o hostname dentro do docker, mesmo nome que colocamos no service no docker-compose.yaml
#Validando tudo
Ao abrir localhost:9090
devemos conseguir ver a tela inicial do prometheus, e para confirmar que deu certo, vamos ir na aba status
e clicar na opção Target health
e se tiver tudo ok, devemos ter algo parecido com a captura de tela abaixo:

#Feito!
Pronto, o Prometheus já está capturando as métricas num intervalo de 15 segundos. Antes de irmos para o Grafana você pode ir explorando o prometheus na aba query
e buscando as métricas salvas pelo nome que aparece quando acessa o endpoint de métricas em localhost:2019/metrics
.