The simplest pattern is not to use a collector at all. This pattern consists of applications instrumented with an OpenTelemetry SDK that export telemetry signals (traces, metrics, logs) directly into a backend:
See the code instrumentation for programming languages for concrete end-to-end examples for how to export signals from your app directly into a backend.
- Simple to use (especially in a dev/test environment)
- No additional moving parts to operate (in production environments)
- Requires code changes if collection, processing, or ingestion changes
- Strong coupling between the application code and the backend
- There are limited number of exporters per language implementation