OpsCanary
observabilityopentelemetryPractitioner

Unlocking Observability: The OTel Engine in Alloy's Public Preview

5 min read Grafana BlogNov 3, 2026Reviewed for accuracy
Share
Practitioner — Hands-on experience recommended

Observability is critical in modern applications, and the OTel engine in Alloy addresses the need for a flexible, vendor-agnostic solution. By integrating Grafana Labs' distribution of the OpenTelemetry Collector, Alloy allows you to run standard collector configurations without any translation or custom syntax. This means if you're already using a collector config, you can easily transition to using the OTel engine with minimal effort.

The OTel engine operates by running the collector with a simple command: alloy otel --config=config.yaml. You can set the ALLOY_OTEL_MODE=1 environment variable to enable the OTel engine against your existing configuration file. This setup allows you to manage your observability stack more effectively, especially with the introduction of Fleet Management in Alloy v1.19.0, which centralizes configuration management across your fleet.

However, be cautious when using this feature. As of now, the OTel engine is in Public Preview, and the documentation warns that nothing in this section is supported for production use. This means you should thoroughly evaluate your use case and readiness before deploying it in a live environment. Keep an eye on updates as the feature matures, but for now, it's best to experiment in a controlled setting.

Key takeaways

  • →Utilize the OTel engine for a vendor-agnostic observability solution.
  • →Run the collector with `alloy otel --config=config.yaml` for easy integration.
  • →Manage OTel configurations centrally using Fleet Management in Alloy v1.19.0.
  • →Set `ALLOY_OTEL_MODE=1` to enable the OTel engine against your existing config.

Why it matters

This integration simplifies observability across diverse environments, allowing teams to monitor applications without being locked into a specific vendor. It enhances flexibility and reduces overhead in managing observability tools.

Code examples

Bash
alloy otel --config=config.yaml
YAML
spec:
  image: grafana/alloy:<ALLOY_VERSION>
  command: ["/bin/alloy", "otel"]
YAML
1extensions:
2  alloyengine:
3    config:
4      inline:
5        content: |
6          database_observability.postgres "default" {
7            data_source_name = env("POSTGRES_DSN")
8            forward_to       = [loki.write.grafana_cloud.receiver]
9          }

When NOT to use this

The official docs don't call out specific anti-patterns here. Use your judgment based on your scale and requirements.

Want the complete reference?

Read official docs

Test what you just learned

Quiz questions written from this article

Take the quiz →
DigitalOcean Serverless InferenceSponsor

OpenAI & Anthropic-compatible inference API — no GPU provisioning needed. 55+ models, pay-per-token with no minimums. VPC + zero data retention by default.

Try Serverless Inference →

Get the daily digest

One email. 5 articles. Every morning.

No spam. Unsubscribe anytime.