Pular para conteúdo

c. Docker Compose

Dois novos serviços — prometheus e grafana — devem ser adicionados ao compose.yaml. Ambos compartilham a mesma rede Docker privada dos microsserviços, de modo que o Prometheus consegue alcançá-los pelo hostname.

compose.yaml
  prometheus:
    image: prom/prometheus:latest
    hostname: prometheus
    ports:
      - 9090:9090
    volumes:
      - $SETUP/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana-enterprise
    hostname: grafana
    ports:
      - 3000:3000
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - $SETUP/grafana:/var/lib/grafana
      - $SETUP/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources

A variável $SETUP aponta para o diretório que contém todos os arquivos de configuração externos. Defina-a no arquivo .env na raiz do projeto:

SETUP=./setup

A estrutura resultante do projeto fica assim:

📁 api/
├── 📁 setup/
│   ├── 📁 prometheus/
│   │   └── YAML prometheus.yml
│   └── 📁 grafana/
│       └── 📁 provisioning/
│           └── 📁 datasources/
│               └── YAML datasources.yml
├── 📁 account-service/
├── 📁 auth-service/
├── 📁 gateway-service/
├── YAML compose.yaml
└──  .env