Skip to content

Commit 33afee8

Browse files
authored
Merge pull request #2465 from calebschoepp/o11y-stack
Setup a docker compose file that creates an o11y stack for Spin to use
2 parents fb45f59 + 9f79852 commit 33afee8

File tree

5 files changed

+141
-0
lines changed

5 files changed

+141
-0
lines changed

hack/o11y-stack/docker-compose.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
version: "3"
2+
services:
3+
otel-collector:
4+
image: otel/opentelemetry-collector-contrib:0.98.0
5+
restart: always
6+
command:
7+
- "--config=/etc/otel-collector-config.yaml"
8+
volumes:
9+
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
10+
ports:
11+
- "8888:8888" # Prometheus metrics exposed by the collector
12+
- "8889:8889" # Prometheus exporter metrics
13+
- "4317:4317" # OTLP gRPC receiver
14+
- "4318:4318" # OTLP gRPC receiver
15+
depends_on:
16+
- jaeger
17+
- prometheus
18+
- tempo
19+
20+
jaeger:
21+
image: jaegertracing/all-in-one:latest
22+
restart: always
23+
ports:
24+
- "16686:16686" # UI
25+
- "14268" # ??
26+
- "14250" # ??
27+
28+
tempo:
29+
image: grafana/tempo:2.4.1
30+
command:
31+
- '-config.file=/etc/tempo/config.yaml'
32+
volumes:
33+
- ./tempo.yaml:/etc/tempo/config.yaml
34+
ports:
35+
- 4318
36+
- 7999:7999
37+
38+
prometheus:
39+
image: prom/prometheus:latest
40+
restart: always
41+
command:
42+
- '--config.file=/etc/prometheus/prometheus.yaml'
43+
- '--web.enable-remote-write-receiver'
44+
volumes:
45+
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml
46+
ports:
47+
- "9090:9090"
48+
49+
grafana:
50+
image: grafana/grafana:10.4.2
51+
ports:
52+
- 5050:3000
53+
volumes:
54+
- ./grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
55+
environment:
56+
- GF_AUTH_ANONYMOUS_ENABLED=true
57+
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
58+
- GF_AUTH_DISABLE_LOGIN_FORM=true
59+
depends_on:
60+
- prometheus
61+
- tempo

hack/o11y-stack/grafana.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: 1
2+
3+
datasources:
4+
- name: Prometheus
5+
type: prometheus
6+
url: http://prometheus:9090
7+
isDefault: true
8+
access: proxy
9+
editable: true
10+
- name: Tempo
11+
type: tempo
12+
url: http://tempo:7999
13+
access: proxy
14+
version: 1
15+
editable: false
16+
uid: tempo
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
receivers:
2+
otlp:
3+
protocols:
4+
grpc:
5+
endpoint: 0.0.0.0:4317
6+
http:
7+
endpoint: 0.0.0.0:4318
8+
9+
exporters:
10+
prometheusremotewrite:
11+
endpoint: "http://prometheus:9090/api/v1/write"
12+
tls:
13+
insecure: true
14+
15+
debug:
16+
17+
otlp/jaeger:
18+
endpoint: jaeger:4317
19+
tls:
20+
insecure: true
21+
22+
otlphttp/tempo:
23+
endpoint: http://tempo:4318
24+
tls:
25+
insecure: true
26+
27+
processors:
28+
batch:
29+
30+
service:
31+
extensions: []
32+
pipelines:
33+
traces:
34+
receivers: [otlp]
35+
processors: [batch]
36+
exporters: [debug, otlp/jaeger, otlphttp/tempo]
37+
metrics:
38+
receivers: [otlp]
39+
processors: [batch]
40+
exporters: [debug, prometheusremotewrite]

hack/o11y-stack/prometheus.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
scrape_configs:

hack/o11y-stack/tempo.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
server:
2+
http_listen_port: 7999
3+
4+
distributor:
5+
receivers:
6+
otlp:
7+
protocols:
8+
http:
9+
endpoint: "0.0.0.0:4318"
10+
log_received_spans:
11+
enabled: true
12+
13+
# This is not tuned at all https://grafana.com/docs/tempo/latest/configuration/#storage
14+
storage:
15+
trace:
16+
backend: local
17+
block:
18+
v2_encoding: zstd
19+
wal:
20+
path: /tmp/tempo/wal
21+
v2_encoding: none
22+
local:
23+
path: /tmp/tempo/blocks

0 commit comments

Comments
 (0)