• 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

     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.

    Link do repo no GitHub aqui

    profile image of Lucien Risso Coreia

    Lucien Risso Coreia

    Engenheiro de Software, entusiasta de tecnologia e criador de conteúdo.

    Mais posts de Lucien Risso Coreia