Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions code/chapter09/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
version: '3.8'

services:
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "13000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana-storage:/var/lib/grafana
depends_on:
- prometheus
- loki
- tempo
networks:
- observability

prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "19090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-storage:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
networks:
- observability

loki:
image: grafana/loki:latest
container_name: loki
ports:
- "13100:3100"
volumes:
- loki-storage:/loki
command: -config.file=/etc/loki/local-config.yml
networks:
- observability

tempo:
image: grafana/tempo:latest
container_name: tempo
ports:
- "14317:4317"
- "14318:4318"
volumes:
- tempo-storage:/var/tempo
command: [ "-config.file=/etc/tempo/local-config.yml" ]
networks:
- observability

otel-collector:
image: otel/opentelemetry-collector-contrib:latest
container_name: otel-collector
ports:
- "24317:4317"
- "24318:4318"
- "19411:9411"
volumes:
- ./otel-collector-config.yml:/etc/otel-collector-config.yml
command: [ "--config=/etc/otel-collector-config.yml" ]
depends_on:
- loki
- prometheus
- tempo
networks:
- observability

volumes:
grafana-storage:
prometheus-storage:
loki-storage:
tempo-storage:

networks:
observability:
driver: bridge
44 changes: 44 additions & 0 deletions code/chapter09/otel-collector-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318

processors:
batch:
timeout: 10s
send_batch_size: 1024

exporters:
logging:
loglevel: debug

otlp:
endpoint: tempo:4317
tls:
insecure: true

loki:
endpoint: http://loki:3100/loki/api/v1/push

prometheus:
endpoint: "0.0.0.0:8889"

service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]

metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus, logging]

logs:
receivers: [otlp]
processors: [batch]
exporters: [loki, logging]
Loading
Loading