> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diffblue.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Telemetry export

> Forward Diffblue Agents telemetry to your own OpenTelemetry-compatible collector

Diffblue Agents emits structured telemetry events throughout workflow execution. Events are stored locally at `~/.diffblue/agents/telemetry/events-*.jsonl`. To send them to an external observability platform, configure one or more OTLP-compatible collectors such as Grafana, Datadog, or Honeycomb.

## Configure an OTLP endpoint

Add one or more OTLP endpoints to `~/.diffblue/agents/config.properties`. Each endpoint is identified by a numeric prefix (1 to 99).

```properties theme={null}
otel.exporter.otlp.1.endpoint=https://otlp.example.com:4318/v1/logs
otel.exporter.otlp.1.timeout=30s
otel.exporter.otlp.1.headers=Authorization=Bearer <your-token>
```

| Property | Description |
| - | - |
| `otel.exporter.otlp.<n>.endpoint` | OTLP HTTP endpoint URL (required) |
| `otel.exporter.otlp.<n>.timeout` | Request timeout (default: `30s`) |
| `otel.exporter.otlp.<n>.headers` | HTTP headers as comma-separated `key=value` pairs |

Replace `<n>` with a number from 1 to 99.

### Multiple endpoints

```properties theme={null}
# Primary collector
otel.exporter.otlp.1.endpoint=https://otlp.example.com:4318/v1/logs
otel.exporter.otlp.1.headers=Authorization=Bearer <primary-token>

# Secondary collector
otel.exporter.otlp.2.endpoint=https://backup-otlp.example.com:4318/v1/logs
otel.exporter.otlp.2.headers=Authorization=Bearer <secondary-token>
```

### Provider examples

> [tab] Grafana Cloud
>
> ```properties theme={null}
> otel.exporter.otlp.1.endpoint=https://otlp-gateway-prod-gb-south-1.grafana.net/otlp/v1/logs
> otel.exporter.otlp.1.headers=Authorization=Basic <base64-encoded-instance-id:token>
> ```

> [tab] Datadog
>
> ```properties theme={null}
> otel.exporter.otlp.1.endpoint=https://http-intake.logs.datadoghq.com/api/v2/logs
> otel.exporter.otlp.1.headers=DD-API-KEY=<your-api-key>
> ```

> [tab] Honeycomb
>
> ```properties theme={null}
> otel.exporter.otlp.1.endpoint=https://api.honeycomb.io/v1/logs
> otel.exporter.otlp.1.headers=x-honeycomb-team=<your-api-key>
> ```

> [!NOTE]
>
> Refer to your provider's documentation for the exact endpoint URL and authentication header format. These may vary by region or account.

## Error handling

Invalid endpoint configurations are skipped without affecting workflow execution. Diffblue Agents logs a warning to stderr for:

* Malformed endpoint URLs
* Invalid timeout values (the default of 30 seconds is used instead)
* Malformed header key-value pairs

If an endpoint is unreachable at runtime, events are dropped for that endpoint. Other configured endpoints and the workflow itself are not affected.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.