MicProtocol / services /monitoring /docker-compose.yml
Benaah's picture
Upload folder using huggingface_hub (part 5)
801f2d3 verified
Raw History Blame Contribute Delete
3.29 kB
# ════════════════════════════════════════════════════════════
# MicProtocol - Monitoring Stack (OTel, Loki, Prometheus, Grafana)
# Runs with --network host so all services are reachable at localhost
# ════════════════════════════════════════════════════════════
version: "3.8"
services:
# ─── Prometheus (Metrics) ──────────────────────────────────
prometheus:
image: prom/prometheus:latest
container_name: micprotocol-prometheus
restart: unless-stopped
network_mode: host
ports:
- "9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- 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
- --web.listen-address=0.0.0.0:9090
# ─── Loki (Logs) ───────────────────────────────────────────
loki:
image: grafana/loki:latest
container_name: micprotocol-loki
restart: unless-stopped
network_mode: host
ports:
- "3100:3100"
volumes:
- ./loki/loki-config.yaml:/etc/loki/local-config.yaml:ro
command: -config.file=/etc/loki/local-config.yaml
# ─── OpenTelemetry Collector (Traces + Metrics + Logs) ─────
otel-collector:
image: otel/opentelemetry-collector-contrib:latest
container_name: micprotocol-otel-collector
restart: unless-stopped
network_mode: host
ports:
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
- "8888:8888" # metrics endpoint
volumes:
- ./otel-collector/config.yaml:/etc/otel-collector/config.yaml:ro
command: ["--config=/etc/otel-collector/config.yaml"]
depends_on:
- prometheus
- loki
# ─── Grafana (Visualization) ───────────────────────────────
grafana:
image: grafana/grafana:latest
container_name: micprotocol-grafana
restart: unless-stopped
network_mode: host
ports:
- "3005:3000"
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
- GF_USERS_DEFAULT_THEME=dark
- GF_SERVER__HTTP_PORT=3005
volumes:
- ./grafana/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml:ro
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
- grafana_data:/var/lib/grafana
depends_on:
- prometheus
- loki
# ─── Volumes ─────────────────────────────────────────────────
volumes:
prometheus_data:
driver: local
grafana_data:
driver: local