70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
|
---
|
||
|
version: "3"
|
||
|
services:
|
||
|
grafana:
|
||
|
image: "grafana/grafana-oss:latest"
|
||
|
expose:
|
||
|
- "3000"
|
||
|
ports:
|
||
|
- "3000:3000"
|
||
|
volumes:
|
||
|
- "grafana:/var/lib/grafana"
|
||
|
- "./grafana.ini:/etc/grafana/grafana.ini"
|
||
|
- "./grafana-datasource.yaml:/etc/grafana/provisioning/datasources/grafana-datasource.yaml"
|
||
|
- "./grafana-dashboards.yaml:/etc/grafana/provisioning/dashboards/grafana-dashboards.yaml"
|
||
|
- "./dashboards:/dashboards"
|
||
|
healthcheck:
|
||
|
test:
|
||
|
- CMD-SHELL
|
||
|
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/3001; exit $$?;'
|
||
|
interval: 1s
|
||
|
timeout: 5s
|
||
|
retries: 5
|
||
|
prometheus:
|
||
|
image: "prom/prometheus:latest"
|
||
|
command:
|
||
|
- "--config.file=/etc/prometheus/prometheus.yaml"
|
||
|
- "--storage.tsdb.path=/prometheus"
|
||
|
- "--web.console.libraries=/usr/share/prometheus/console_libraries"
|
||
|
- "--web.console.templates=/usr/share/prometheus/consoles"
|
||
|
- "--web.listen-address=0.0.0.0:9090"
|
||
|
- "--web.enable-remote-write-receiver"
|
||
|
- "--storage.tsdb.retention.time=1d"
|
||
|
expose:
|
||
|
- "9090"
|
||
|
ports:
|
||
|
- "9090:9090"
|
||
|
volumes:
|
||
|
- "prometheus:/prometheus"
|
||
|
- "./prometheus.yaml:/etc/prometheus/prometheus.yaml"
|
||
|
|
||
|
tempo:
|
||
|
image: grafana/tempo:latest
|
||
|
command: [ "-config.file=/etc/tempo.yaml" ]
|
||
|
volumes:
|
||
|
- ./tempo.yaml:/etc/tempo.yaml
|
||
|
- tempo:/tmp/tempo
|
||
|
ports:
|
||
|
- "3200" # tempo
|
||
|
- "4317" # otlp grpc
|
||
|
|
||
|
|
||
|
otel-collector:
|
||
|
image: "otel/opentelemetry-collector-contrib"
|
||
|
command:
|
||
|
- "--config=/etc/otel-collector.yaml"
|
||
|
expose:
|
||
|
- "4317"
|
||
|
ports:
|
||
|
- "4317:4317" # otlp grpc
|
||
|
- "9090" # for prometheus
|
||
|
volumes: ["./otel-collector.yaml:/etc/otel-collector.yaml"]
|
||
|
|
||
|
volumes:
|
||
|
grafana:
|
||
|
external: false
|
||
|
prometheus:
|
||
|
external: false
|
||
|
tempo:
|
||
|
external: false
|