OpenTelemetry Config Generator
Build production-ready otel-collector-config.yaml with Receivers, Processors, Exporters, Extensions, and Pipelines.
OpenTelemetry Collector
Receivers
Processors
Exporters
Extensions
Pipelines
traces
metrics
logs
Overview
The OpenTelemetry Config Generator helps you build production-ready otel-collector-config.yaml files for the OpenTelemetry Collector. OpenTelemetry (OTel) is the CNCF standard for instrumenting, generating, collecting, and exporting telemetry data including traces, metrics, and logs in a vendor-neutral way.
The OTel Collector is the cornerstone of the OpenTelemetry ecosystem. It receives telemetry in multiple formats, processes it through a pipeline of processors, and exports it to one or more backends. This generator produces syntactically correct YAML configurations with all four core components fully configured: Receivers, Processors, Exporters, and Extensions.
How It Works
1. Define Receivers: Receivers ingest telemetry data into the Collector. Common receivers include otlp (gRPC and HTTP), jaeger, zipkin, prometheus (scrape), kafka, hostmetrics (CPU, memory, disk, network), docker_stats, and k8s_cluster for Kubernetes metrics.
2. Add Processors: Processors transform, filter, and enrich telemetry in-flight. Use batch for efficient batching, memory_limiter to prevent OOM, filter to drop unwanted signals, attributes to modify resource or span attributes, resource to set resource-level attributes, probabilistic_sampler for head-based sampling, and transform for OTTL-based transformations.
3. Configure Exporters: Exporters send processed telemetry to backends. Supported exporters include prometheus, jaeger, zipkin, otlp, loki, elasticsearch, opensearch, AWS CloudWatch, Azure Monitor, Google Cloud Logging, and debug for development.
4. Enable Extensions: Extensions provide health checks (health_check), profiling (pprof), and observability (zpages) for monitoring the Collector itself.
5. Wire Pipelines: Connect receivers, processors, and exporters into signal-specific pipelines (traces, metrics, logs). Each pipeline defines which receivers feed into which processors and exporters for that particular telemetry signal.
Best Practices
- Always include a memory_limiter processor to prevent out-of-memory crashes under high load.
- Use batch processor to group telemetry before exporting, reducing network overhead and backend load.
- Configure health_check extension for Kubernetes liveness and readiness probes.
- Use separate pipelines for traces, metrics, and logs to apply signal-specific processors.
- Enable zpages extension during development to inspect pipeline performance in real-time.
- Set explicit TLS configuration on all exporters for production deployments.
- Use probabilistic_sampler to control trace volume in high-traffic environments.
- Include pprof extension for production profiling and debugging performance issues.
Common Mistakes
- Running without memory_limiter processor, risking OOM kills under traffic spikes.
- Not configuring health_check extension, preventing Kubernetes probes from working.
- Using debug exporter in production, leaking sensitive telemetry to stdout.
- Forgetting to add receivers to pipelines, resulting in no data flow through the Collector.
- Mixing incompatible receiver formats without proper decoding processors.
Security Recommendations
- Enable TLS on all gRPC and HTTP endpoints to encrypt telemetry in transit.
- Use authentication headers or mTLS between the Collector and backend exporters.
- Avoid the debug exporter in production environments to prevent data leakage.
- Apply RBAC in Kubernetes to restrict which namespaces the Collector can observe.
- Use environment variables for sensitive values like API keys and tokens.
- Restrict Collector network exposure — receivers should only listen on necessary interfaces.
Production Tips
- Deploy the OTel Collector as a sidecar in Kubernetes for per-pod instrumentation.
- Use the agent/collector split pattern: lightweight agents forward to a centralized collector fleet.
- Monitor the Collector itself via the health_check and pprof extensions.
- Scale the Collector horizontally behind a load balancer for high-availability setups.
- Tune batch send_batch_size and timeout based on your backend's ingestion capacity.
- Use the transform processor with OTTL for advanced telemetry manipulation without code changes.
- Export traces to Jaeger or Tempo and metrics to Prometheus for a complete CNCF observability stack.