OpenTelemetry
OTLP/JSON trace export in; GenAI spans become events with source: otel.
| Method | Path | Scope | Summary |
|---|---|---|---|
POST | /otel/v1/traces | events:write | Ingest Traces |
Try it
curl -sf -X POST "$VIGIL_URL/otel/v1/traces" -H "Authorization: Bearer $VIGIL_KEY" -H "Content-Type: application/json" -d '{
"resourceSpans": [{ "resource": { "attributes": [{ "key": "service.name", "value": { "stringValue": "docs-api-otel" } }] },
"scopeSpans": [{ "scope": { "name": "docs" }, "spans": [{ "traceId": "5b8aa5a2d2c872e8321cf37308d69df2", "spanId": "051581bf3cb55c13",
"name": "invoke_agent", "kind": 1, "startTimeUnixNano": "1757330000000000000", "endTimeUnixNano": "1757330001200000000",
"attributes": [{ "key": "gen_ai.operation.name", "value": { "stringValue": "invoke_agent" } },
{ "key": "gen_ai.usage.output_tokens", "value": { "intValue": "120" } }] }] }] }] }'
Routes
POST /otel/v1/traces
Ingest Traces. Scope: events:write.
Request body:
{}
Response 200:
{
"accepted": 0,
"ignored": 0,
"gates": [
{
"agent_id": "string",
"event_type": "string",
"event_id": 0,
"action_id": 0,
"gate_status": "pass | hold | alert | collapse",
"bii": 0,
"requires_human_review": true,
"actor": "string | null"
}
]
}
Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.