-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
144 lines (134 loc) · 5.73 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
services:
grafana:
container_name: grafana-monitoring-platform
build:
context: ops/docker/grafana
dockerfile: Dockerfile
ports:
- 3000:3000
environment:
- GF_PATHS_CONFIG=/etc/grafana/custom.ini
- GF_RENDERING_SERVER_URL=http://monitoring-platform-grafana-image-renderer:8081/render
- GF_RENDERING_CALLBACK_URL=http://grafana:3000/
- GF_FEATURE_TOGGLE_ENABLE=traceqlEditor tracesEmbeddedFlameGraph traceqlSearch correlations metricsSummary traceToMetrics datatrails
- GF_INSTALL_PLUGINS=https://storage.googleapis.com/integration-artifacts/grafana-lokiexplore-app/grafana-lokiexplore-app-latest.zip;grafana-lokiexplore-app,https://storage.googleapis.com/integration-artifacts/grafana-exploretraces-app/grafana-exploretraces-app-latest.zip;grafana-traces-app
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=true
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.sslheaders.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.routers.grafana-monitoring-platform.entrypoints=http"
- "traefik.http.routers.grafana-monitoring-platform.rule=Host(`monitoring-platform.test`)"
- "traefik.http.routers.grafana-monitoring-platform.middlewares=traefik-https-redirect"
- "traefik.http.routers.grafana-monitoring-platform-secure.entrypoints=https"
- "traefik.http.routers.grafana-monitoring-platform-secure.rule=Host(`monitoring-platform.test`)"
- "traefik.http.routers.grafana-monitoring-platform-secure.tls=true"
- "traefik.http.routers.grafana-monitoring-platform-secure.tls.domains[0].main=monitoring-platform.test"
- "traefik.http.routers.grafana-monitoring-platform-secure.tls.domains[0].sans=*.monitoring-platform.test"
- "traefik.http.routers.grafana-monitoring-platform-secure.service=grafana-monitoring-platform"
- "traefik.http.services.grafana-monitoring-platform.loadbalancer.server.scheme=https"
- "traefik.http.services.grafana-monitoring-platform.loadbalancer.server.port=3000"
volumes:
- grafana-data:/var/lib/grafana
- ./ops/docker/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- ./ops/docker/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./ops/docker/grafana/custom.ini:/etc/grafana/custom.ini
- ./var/logs/grafana:/var/log/grafana
monitoring-platform-grafana-image-renderer:
container_name: monitoring-platform-grafana-image-renderer
image: grafana/grafana-image-renderer:3.11.0
ports:
- 8081
volumes:
- ./ops/docker/grafana-image-renderer/config.json:/usr/src/app/config.json
monitoring-platform-mkcert:
container_name: monitoring-platform-mkcert
image: webgrip/traefik-local-development-mkcert:latest
pull_policy: always
volumes:
- ~/.config/mkcert:/root/.local/share/mkcert:ro
- certificate-data:/certificate-data:rw
entrypoint: [ "/app/entrypoint.sh", "monitoring-platform.test" ]
monitoring-platform-loki:
container_name: monitoring-platform-loki
image: grafana/loki:3.2.0
ports:
- "3100:3100" # HTTP
- "9095:9095" # GRCP
volumes:
- ./ops/docker/loki:/etc/loki
- ./ops/docker/loki/local-config.yaml:/etc/loki/local-config.yaml
- ./var/loki/index:/loki/tsdb-index
- ./var/loki/wal:/wal
- ./var/loki/chunks:/chunks
healthcheck:
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3100/ready || exit 1" ]
interval: 10s
timeout: 5s
retries: 5
monitoring-platform-tempo:
container_name: monitoring-platform-tempo
depends_on:
monitoring-platform-otel-collector:
condition: service_started
image: webgrip/monitoring-platform-tempo:latest
build:
context: ./ops/docker/tempo
dockerfile: Dockerfile
command: [ "-config.file=/etc/tempo.yaml" ]
volumes:
- ./ops/docker/tempo/tempo.yaml:/etc/tempo.yaml
ports:
- "14268:14268" # jaeger ingest
- "3200:3200" # tempo
- "4317:4317" # otlp grpc
- "4318:4318" # otlp http
- "9411:9411" # zipkin
# monitoring-platform-k6-tracing:
# container_name: monitoring-platform-k6-tracing
# image: ghcr.io/grafana/xk6-client-tracing:v0.0.5
# environment:
# - "ENDPOINT=monitoring-platform-otel-collector:4317"
# restart: always
# depends_on:
# - monitoring-platform-otel-collector
monitoring-platform-otel-collector:
container_name: monitoring-platform-otel-collector
image: webgrip/monitoring-platform-otel-collector:latest
build:
context: ./ops/docker/otel-collector
dockerfile: Dockerfile
command: ["--config", "/etc/otelcol-contrib/config.yaml"]
volumes:
- ./ops/docker/otel-collector/config.yml:/etc/otelcol-contrib/config.yaml
ports:
# - "1888:1888" # pprof extension
# - "8888:8888" # Prometheus metrics exposed by the collector
# - "8889:8889" # Prometheus exporter metrics
- "13133:13133" # health_check extension
# - "4317:4317" # OTLP gRPC receiver
# - "4318:4318" # OTLP HTTP receiver
monitoring-platform-mariadb:
container_name: monitoring-platform-mariadb
build:
context: ./ops/docker/mariadb
dockerfile: Dockerfile
volumes:
- ./ops/docker/mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: monitoring
MYSQL_USER: monitor
MYSQL_PASSWORD: monitor
volumes:
grafana-data:
certificate-data:
external: true
networks:
default:
external: true
name: webgrip