OTel Collector — intermediate agent for collecting, enriching and exporting telemetry.
Architecture: Receivers → Processors → Exporters → Backends.
ConfigMap:
1apiVersion: v12kind: ConfigMap3metadata:4 name: otel-collector-config5 namespace: observability6data:7 config.yaml: |8 receivers:9 otlp:10 protocols:11 grpc:12 endpoint: 0.0.0.0:431713 http:14 endpoint: 0.0.0.0:431815 prometheus:16 config:17 scrape_configs:18 - job_name: "otel-collector"19 static_configs:20 - targets: ["localhost:8888"]2122 processors:23 batch:24 timeout: 5s25 send_batch_size: 100026 memory_limiter:27 limit_mib: 51228 spike_limit_mib: 12829 attributes:30 actions:31 - key: environment32 action: upsert33 value: production34 tail_sampling:35 decision_wait: 10s36 policies:37 - name: error-sampling38 type: status_code39 status_code:40 status_codes: [ERROR]41 - name: probabilistic42 type: probabilistic43 probabilistic:44 sampling_percentage: 104546 exporters:47 prometheus:48 endpoint: "0.0.0.0:8889"49 namespace: otel50 otlp/jaeger:51 endpoint: jaeger-collector.observability:431752 tls:53 insecure: true54 loki:55 endpoint: http://loki:3100/loki/api/v1/push5657 service:58 pipelines:59 metrics:60 receivers: [otlp]61 processors: [memory_limiter, batch]62 exporters: [prometheus]63 traces:64 receivers: [otlp]65 processors: [memory_limiter, tail_sampling, batch]66 exporters: [otlp/jaeger]67 logs:68 receivers: [otlp]69 processors: [memory_limiter, batch]70 exporters: [loki]
Processors: batch (batching), memory_limiter (OOM protection), tail_sampling (tail sampling), attributes (adding metadata).