Skip to main content

OpenTelemetry (optional)

Sqube records tamper-evident events in the ledger first. OpenTelemetry is observability only — it never participates in policy or authorization decisions. If OTel is missing or fails, execution continues according to your configured failure semantics (fail_closed / fail_open).

Enable (Python)​

pip install "sqube-agent-guard[otel]"
from sqube_agent_guard import ExecutionGuard
from sqube_agent_guard.telemetry.otel import OtelEventSink

guard = ExecutionGuard(event_sinks=[OtelEventSink()])

Configure your OpenTelemetry SDK (collector/exporter) as usual in the host application.

Enable (Node.js)​

npm install @opentelemetry/api   # optional peer
import { ExecutionGuard, OtelEventSink } from "sqube-agent-guard";

const guard = new ExecutionGuard({ eventSinks: [new OtelEventSink()] });

Semantics contract​

Span names, attributes, and metric instruments are defined in the repository:

tests/contract/otel_semantics.json

Shared attribute keys include sqube.execution_id, sqube.agent_id, sqube.action, sqube.decision, and sqube.status. Raw parameters, secrets, and tokens are never exported — only redacted or allowlisted fields from ledger events.

Rust​

Rust v1.0 does not ship an OTel SDK integration. The same otel_semantics.json contract applies when Rust gains telemetry in a future release.