Skip to main content
Droid can export OpenTelemetry (OTEL) metrics to your own OTLP-compatible collector, giving you full visibility into Droid activity within your existing observability stack. Metrics are sent to both Factory’s collector and yours in the same export cycle — if your collector is unreachable, Factory’s own export is not affected.

Configuration

Set these environment variables before launching Droid:

How it works

  • When OTEL_TELEMETRY_ENDPOINT is set, metrics are sent to your endpoint in the same export cycle via a fan-out exporter — no extra timers, no duplication of metric readers.
  • Failures to your collector do not affect Factory’s own export. Each endpoint is isolated.
  • Metrics use delta temporality — each export contains only new values since the last flush (60-second intervals).

Exported metrics

All metrics use the droid.* namespace.

Common attributes

Every data point includes these attributes automatically: Tool-specific attributes (tool.name, mcp.server, skill.name, etc.) are included where applicable. Resource attributes include service.name (cli) and service.version.

Message content logging

By default, telemetry export includes only metrics — the text of prompts, model responses, and tool I/O is not exported. Metrics fan out to both Factory and your collector (see above); message content does not. To capture message content (for example, for session auditing), set:
When enabled, Droid emits message content as OTEL trace spans (on the /v1/traces path of your endpoint), covering:
  • User messages (droid.message.user)
  • Assistant responses (droid.message.assistant)
  • Tool calls and their inputs (droid.tool.call)
  • Tool results (droid.tool.result)
Message content is sent only to the collector you configure and never reaches Factory. Unlike metrics, content spans are routed exclusively to your OTEL_TELEMETRY_ENDPOINT; Factory’s collector is never a destination for message content.
  • A customer endpoint (OTEL_TELEMETRY_ENDPOINT) is required. If none is set, content is dropped rather than sent to Factory.
  • If your endpoint resolves to the same URL as Factory’s collector, content logging is automatically disabled.
  • Metrics export is unaffected and continues to fan out to both Factory and your collector.

Example configurations


Troubleshooting

  • Verify your collector accepts OTLP HTTP on the /v1/metrics path.
  • Confirm OTEL_TELEMETRY_HEADERS includes valid auth credentials.
  • Ensure network connectivity from the machine running Droid to your collector.