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
1 prometheus:
2 image: prom/prometheus
3 ports:
4 - "9090:9090"
5 volumes:
6 - ./config/prometheus.yml:/etc/prometheus/prometheus.yml
7 - ./data/prometheus:/prometheus
E antes de subirmos tudo, vamos criar nosso arquivo de configuração do Prometheus em config/prometheus.yml:
1global:
2 scrape_interval: 15s # default is 1 minute
3
4scrape_configs:
5 - job_name: caddy
6 static_configs:
7 - 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.