3
respostas

[Dúvida] Problemas ao realizar o teste com o Grafana

Eu tive problemas ao realizar um teste com o Grafana.
O IP de minha máquina é 192.168.0.27 e a porta padrão é a 9090, então no Grafana a url ficou: http://192.168.0.27:9090

Seguem os prints das telas:

  • Erro Grafana:
    Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Com o IP de minha máquina 192.168.0.27 e a porta padrão 9090:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E com o host 127.0.0.1 e porta 9090, ele responde: http://127.0.0.1:9090

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E com o host 127.0.0.1 e porta 8181, ele responde: http://127.0.0.1:8181

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E com o host localhost e porta 8181, ele responde: http://127.0.0.1:8181

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E com o host localhost e porta 9090, ele responde: http://127.0.0.1:9090

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Já reiniciei os conteiners do Docker com os comandos:

  • docker restart prometheus
  • docker restart grafana

Mas o erro permanece.

Segue o conteúdo do arquivo prometheus.yml:

scrape_configs:
  - job_name: 'banking-service-app'
    scrape_interval: 5s
    metrics_path: '/metrics'
    static_configs:
     - targets: ['127.0.0.1:8181','192.168.0.27:8181', 'host.docker.internal:9090','192.168.0.27:9090']

No Prometheus está assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Por favor, alguém poderia me ajudar ?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
3 respostas

Ola Evaldo.
É muita coisa para digerir.
Vamos tentar algumas soluções:
Grafana e Prometheus estão em containers separados?
Se sim, endereços como 192.168.0.27 podem não funcionar dentro do Docker, porque o container pode não conseguir acessar o host via IP da rede local.
Solução recomendada:

  • Use o nome do container do Prometheus (por exemplo, prometheus) como o host na URL dentro do Grafana.
  • Exemplo de URL no Grafana:
    http://prometheus:9090
    

Isso só funciona se ambos os containers estiverem na mesma rede Docker.
Verifique a rede dos containers:
Execute:

docker network ls

Veja se há uma rede compartilhada (ex: grafana-prometheus-net) e conecte os containers a essa rede com:

docker network connect <nome-da-rede> prometheus
docker network connect <nome-da-rede> grafana

No host, tente acessar no navegador:

http://192.168.0.27:9090

Se funcionar no host, mas não no container Grafana, o problema é de acesso do container à rede externa.
Você está usando localhost:3000 para acessar o Grafana?
Isso indica que está acessando do host local, mas o Grafana roda em container, e dentro do container, 192.168.0.27 pode não ser acessível.

  1. Encontre o nome do container do Prometheus:
docker ps

Suponha que o nome seja prometheus.
2. No Grafana, mude a URL da fonte de dados para:

http://prometheus:9090
  1. Clique em Save & Test.
    Se estiver usando Docker Compose, defina uma rede e coloque ambos os serviços (Grafana e Prometheus) nela. Exemplo:
version: '3'
services:
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    networks:
      - monitoring

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
    networks:
      - monitoring

networks:
  monitoring:

Assim, no Grafana você poderá usar:

http://prometheus:9090

Testa ai e avise.
Uma solução mais drastica é resetar o docker e subir os containeres novamente.
Resetar tudo com um único comando (Linux/macOS)

docker system prune -a --volumes

Este comando remove containers, imagens, redes e volumes não utilizados.
Depois de resetar, suba novamente seus containers:
Se estiver usando docker-compose.yml:

docker-compose up -d

Analisa as possibilidades ai e depois me envie um feedback.
Boa sorte com seu problema e bons estudos.
Até...

Ronaldo, deu certo a segunda solução, utilizando o Docker Compose, com o arquivo docker-compose.yml, na raiz da aplicação.
No Grafana eu seto a url como http://prometheus:9090.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado pela ajuda.

Ola Evaldo.
Fico feliz que tenha dado certo.
Peço apenas para encerrar este topico marcando como cocluido.
Obrigado.
Em caso de duvida só chamar no fórum.
Até...