Send OpenDunes traces to your own OpenTelemetry collector, as OTLP JSON.
The otel-collector destination sends every OpenDunes request to an OpenTelemetry collector you run — or any OTLP/HTTP receiver — so you can route traces wherever your collector sends them.
| Setting | Required | Description |
|---|---|---|
endpoint | Yes | The full traces address, such as https://otel.soukbot.example/v1/traces |
headers | No | Headers sent with every delivery, such as an Authorization your collector checks |
curl https://opendunes.com/v1/observability/destinations \
-H "Authorization: Bearer $OPENDUNES_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Collector",
"type": "otel-collector",
"config": {
"endpoint": "https://otel.soukbot.example/v1/traces",
"headers": { "Authorization": "Bearer …" }
}
}'One POST per request to endpoint, Content-Type: application/json, holding an OTLP ExportTraceServiceRequest with one span:
| Attribute | Holds |
|---|---|
gen_ai.operation.name · gen_ai.request.model · gen_ai.response.model · gen_ai.system | the route, the model asked for, the model that answered, its provider |
gen_ai.response.id · gen_ai.response.finish_reason | the receipt id and the finish reason |
gen_ai.usage.input_tokens · output_tokens · total_tokens · cost | the usage; the cost in DA |
gen_ai.request.<parameter> | the sampling parameters the request set |
gen_ai.prompt · gen_ai.completion | the input and output, as text — absent under privacy_mode |
user.id · session.id · trace.name · trace.metadata.<key> | what the request sent in user, session_id and trace |
The resource carries service.name: opendunes.
Back to Broadcast overview.