OTEL cluster example:
version: "3"
services:
# To eventually offload to Tempo...
tempo:
image: grafana/tempo:r24-161073a
command: [ "-config.file=/etc/tempo.yaml" ]
volumes:
- ./tempo-local.yaml:/etc/tempo.yaml
- ./overrides.yaml:/etc/overrides.yaml
ports:
- "14268" # jaeger ingest
- "3200" # tempo
- "4317" # otlp grpc
- "4318" # otlp http
- "9411" # zipkin
loki:
image: grafana/loki:2.4.1
platform: linux/amd64
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
# Collector
otel-collector:
platform: linux/amd64
image: otel/opentelemetry-collector-contrib:0.43.0-amd64
command: [
"--config=/etc/otel-collector-config.yaml",
# Memory Ballast size should be max 1/3 to 1/2 of memory.
# "--mem-ballast-size-mib=683",
"${OTELCOL_ARGS}" ]
volumes:
- ./otel-collector-config.yaml:/etc/otel-collector-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
- "55670:55679" # zpages extension
- "24224:24224" # fluentforwarder
- "24224:24224/udp" # fluentforwarder
depends_on:
- tempo
prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
grafana:
container_name: grafana
platform: linux/amd64
image: grafana/grafana:8.4.4
volumes:
- ./grafana.ini:/etc/grafana/grafana.ini
- ./grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
environment:
GF_INSTALL_PLUGINS: grafana-clock-panel,grafana-simple-json-datasource
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
GF_AUTH_DISABLE_LOGIN_FORM: "true"
ports:
- "3000:3000"
Use check command which check target collectors address for compliance OTLP protocol possibility to gather logs.
Use demo to perform emulate all log possibilities: send logs with traces and metrics.