Configuration
Set these environment variables before launching Droid:| Variable | Required | Description |
|---|---|---|
OTEL_TELEMETRY_ENDPOINT | Yes | Base URL of your OTLP HTTP collector. Metrics are sent to {endpoint}/v1/metrics. |
OTEL_TELEMETRY_HEADERS | No | Comma-separated key=value pairs sent as HTTP headers on every export. Values may contain = (e.g. base64 tokens). |
How it works
- When
OTEL_TELEMETRY_ENDPOINTis 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 thedroid.* namespace.
| Metric | Type | Description |
|---|---|---|
droid.code.files_modified | Counter | Files modified during a session |
droid.code.files_read | Counter | Files read during a session |
droid.code.lines_modified | Counter | Lines of code modified |
droid.git.commits | Counter | Commits created |
droid.git.pull_requests | Counter | Pull requests created |
droid.tool.invocations | Counter | Tool invocations |
droid.tool.execution_time | Histogram | Tool execution duration (ms) |
droid.mcp.tool_invocations | Counter | MCP tool invocations |
droid.skill.invocations | Counter | Skill invocations |
droid.hook.invocations | Counter | Hook invocations |
droid.slash_command.invocations | Counter | Slash command invocations |
droid.auth.login_success | Counter | Successful logins |
droid.repo.metadata | Gauge | Repository metadata snapshot |
Common attributes
Every data point includes these attributes automatically:| Attribute | Description |
|---|---|
user.id | Authenticated user ID |
organization.id | Organization ID |
session.id | Current Droid session ID |
tool.name, mcp.server, skill.name, etc.) are included where applicable. Resource attributes include service.name (cli) and service.version.
Example configurations
Generic OTEL Collector / Grafana Alloy
Generic OTEL Collector / Grafana Alloy
Datadog (via Agent OTLP ingestion)
Datadog (via Agent OTLP ingestion)
Datadog (direct OTLP intake)
Datadog (direct OTLP intake)
New Relic
New Relic
Honeycomb
Honeycomb
Troubleshooting
- Verify your collector accepts OTLP HTTP on the
/v1/metricspath. - Confirm
OTEL_TELEMETRY_HEADERSincludes valid auth credentials. - Ensure network connectivity from the machine running Droid to your collector.
