Olá, tudo bem?
Estou seguindo o projeto conforme as aulas, mas me deparei com o seguinte problema ao tentar incluir o Prometheus como fonte de dados do grafana:
Post "http://192.168.0.7:9090/api/v1/query": dial tcp 192.168.0.7:9090: i/o timeout - There was an error returned querying the Prometheus API.
Porém, quando eu coloco o dns do container (http://prometheus-api-cursos:9090) ao invés do meu IP, o grafana reconhece.
O problema maior é que o prometheus não consegue buscar as informações que constam em /actuator/prometheus. Por exemplo, a query abaixo:
http_server_requests_seconds_bucket{application="api-cursos"}
retorna o seguinte:
Empty query result
Segue meu prometheus.yml e docker-compose.yml abaixo, respectivamente:
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus-api-cursos
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- prometheus-api-cursos:9090
- job_name: api-cursos
metrics_path: /actuator/prometheus
static_configs:
- targets:
- 192.168.0.7:8080
version: '3.8'
networks:
database:
monit:
services:
database:
image: postgres:15
container_name: database-api-cursos
restart: unless-stopped
healthcheck:
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
timeout: 45s
interval: 10s
retries: 10
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=h5UzM2kEnp8Q42
- APP_DB_USER=alura
- APP_DB_PASS=nJ6vsW37rCd1v88
- APP_DB_NAME=logsdb
- PGDATA=/var/lib/postgresql/data HOME=/root
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/15/bin
ports:
- '5432:5432'
volumes:
- ./postgres/db:/docker-entrypoint-initdb.d/
- ./postgres/data:/var/lib/postgresql/data
networks:
- database
prometheus-api-cursos:
image: prom/prometheus:latest
user: "root:root"
container_name: prometheus-api-cursos
restart: unless-stopped
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
ports:
- 9090:9090
networks:
- monit
grafana-api-cursos:
image: grafana/grafana
user: "root:root"
container_name: grafana-api-cursos
volumes:
- ./grafana:/var/lib/grafana
restart: unless-stopped
ports:
- 3000:3000
networks:
- monit
OBS: quando tento importar o dashboard no grafana, aparece essa mensagem:
Templating
Failed to upgrade legacy queries
E quando atualizo a fonte de dados, e dou um 'run query', o resultado é:
Preview of values
None
Gostaria de saber o que posso estar fazendo errado. Obrigado!!