Skip to content

Commit

Permalink
connect otel-collector to prometheus and jaeger
Browse files Browse the repository at this point in the history
  • Loading branch information
aradwann committed Mar 29, 2024
1 parent 00a0e59 commit a97bf21
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 2 deletions.
49 changes: 47 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

services:
postgres:
container_name: postgres
image: postgis/postgis:16-3.4-alpine
environment:
- POSTGRES_DB=eenergy
Expand All @@ -17,6 +18,7 @@ services:
retries: 5

pgadmin4:
container_name: pgadmin4
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=user@domain.com
Expand All @@ -25,6 +27,7 @@ services:
- "80:80"

redis:
container_name: redis
image: redis:7-alpine
ports:
- "6379:6379"
Expand All @@ -35,12 +38,13 @@ services:
retries: 5

api:
container_name: api
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
- "9090:9090"
- 8080:8080
- 9091:9091
environment:
- DB_SOURCE=postgresql://root:secret@postgres:5432/eenergy?sslmode=disable
- REDIS_ADDRESS=redis:6379
Expand All @@ -49,16 +53,21 @@ services:
condition: service_healthy # Only start after postgres is healthy
redis: # Wait for redis to start
condition: service_healthy # Only start after redis is healthy
otel-collector:
condition: service_started
# Removed entrypoint section

# logs containers
loki:
container_name: loki
image: grafana/loki:latest
ports:
- "3100:3100"
volumes:
- loki-data:/loki

promtail:
container_name: promtail
image: grafana/promtail:latest
volumes:
- ./promtail-config.yml:/etc/promtail/promtail.yml
Expand All @@ -69,13 +78,49 @@ services:
- loki

grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- loki

# metrics containers
prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"

# traces containes
# Jaeger
jaeger-all-in-one:
container_name: jaeger
image: jaegertracing/all-in-one:latest
ports:
- 16686:16686
- "14268"
- "14250:14250"
environment:
- COLLECTOR_OTLP_ENABLED=true

otel-collector:
container_name: otel-collector
image: otel/opentelemetry-collector-contrib
volumes:
- ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
ports:
- 1888:1888 # pprof extension
- 8888:8888 # Prometheus metrics exposed by the Collector
- 13133:13133 # health_check extension
- 4317:4317 # OTLP gRPC receiver
- 55679:55679 # zpages extension
depends_on:
- jaeger-all-in-one

volumes:
data-volume:
Expand Down
38 changes: 38 additions & 0 deletions otel-collector-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317

processors:
batch:

exporters:
# prometheus:
# endpoint: prometheus:8888 # I think this is activated in case of collector push to prometheus, but it currently Prom. pulls from collector

otlp/jaeger:
endpoint: jaeger:14250
tls:
insecure: true
logging:
loglevel: debug

extensions:
health_check:
pprof:
endpoint: :1888
zpages:
endpoint: :55679

service:
extensions: [health_check, pprof, zpages]
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [logging, otlp/jaeger]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [logging]
5 changes: 5 additions & 0 deletions prometheus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 2s
static_configs:
- targets: ['otel-collector:8888']

0 comments on commit a97bf21

Please sign in to comment.