Overview of OpenTelemetry Collector distributions, comparing Core and Contrib, when and how to build custom collectors with OCB, support models, releases, best practices, and Kubernetes deployment patterns
This lesson explains OpenTelemetry Collector distributions: how they’re packaged, extended, and when to build a custom collector. You’ll learn the differences between Collector Core and Contrib, how to pick components safely, how to create a tailored build with the OpenTelemetry Collector Builder (OCB), and high-level Kubernetes deployment patterns.Here’s the big-picture outline: compare Collector Core vs Contrib, decide when to build a custom collector, review support and releases, and preview Kubernetes deployment patterns.
The Collector Core distribution is intentionally conservative and small. It contains the officially maintained components required to build predictable telemetry pipelines: receivers, processors, exporters, and extensions. Core’s limited surface area and slower cadence make it easier to audit, upgrade, and operate safely in production.
What Core typically includes
Receivers: otlp and simple/no-op receivers for testing or when no external input is required.
Exporters: otlp, no-op, debug/logging exporters.
Processors: batch, memory_limiter, and other stability-focused processors.
Extensions: health_check, pprof, zpages, etc.
Keeping your runtime close to Core reduces upgrade risk and simplifies security reviews.
Contrib extends Core with community- and vendor-contributed components. It includes integrations for Prometheus, Kafka, Jaeger, cloud providers (AWS, Azure, GCP), and many other systems. Contrib is feature-rich and moves faster, but many components are experimental or community-maintained—validate maturity before production use.
Component stabilityContrib components typically progress through these stability stages: Development → Alpha → Beta → Stable. Use Development/Alpha/Beta for experimentation. Only promote a component to production once it is declared Stable and validated in your environment. Stability may vary across signals (traces/metrics/logs) and across different features of the same component.
Feature gatesExperimental features are often controlled by feature gates (runtime toggles). Only enable feature gates after testing. Feature gates can be set via CLI or environment variables; check each component’s documentation for exact gate names and semantics.Example usage patterns:
# Run the Contrib binary (many distros ship a separate binary such as otelcol-contrib)otelcol-contrib --config=collector-config.yaml --feature-gates=<gate>=enabled# Or set via environment variableOTEL_FEATURE_GATES=<gate>=enabled otelcol-contrib --config=collector-config.yaml
GitHub issues, community discussions, best-effort support
Development, experimentation, and early testing
Vendor distributions
SLAs, tested bundles, official support channels
Production-critical deployments needing guaranteed support
Vendor distributions often include compatibility testing with that vendor’s backend and may be preferable for production environments that require SLAs.
For production, prefer validated OCB builds or vendor-supported distributions and deploy collectors declaratively (for example, via the OpenTelemetry Operator) to ensure reproducibility and easier operations.