Telemetry
OpenTelemetry integration for AI agent observability. Trace requests, measure latency, and export telemetry to your preferred backend.
Initialization
- TypeScript
- Python
- Rust
import { initTelemetry } from '@sekuire/sdk';
await initTelemetry({
serviceName: 'my-agent',
exporterUrl: 'https://otel-collector.example.com:4318',
// or use Sekuire's built-in collector
useSekuireExporter: true
});
from sekuire_sdk.telemetry import init_telemetry
await init_telemetry(
service_name="my-agent",
exporter_url="https://otel-collector.example.com:4318",
# or use Sekuire's built-in collector
use_sekuire_exporter=True
)
use sekuire_sdk::telemetry::init_telemetry;
init_telemetry(TelemetryConfig {
service_name: "my-agent".into(),
exporter_url: Some("https://otel-collector.example.com:4318".into()),
use_sekuire_exporter: true,
..Default::default()
})?;
Tracing
The SDK automatically creates spans for agent operations. You can also create custom spans:
- TypeScript
- Python
- Rust
import { getTracer } from '@sekuire/sdk';
const tracer = getTracer('my-agent');
// Create a span for custom operations
await tracer.startActiveSpan('process_data', async (span) => {
span.setAttribute('data.size', 1024);
// Your logic here
const result = await processData();
span.setAttribute('result.status', 'success');
span.end();
return result;
});
from sekuire_sdk.telemetry import get_tracer
tracer = get_tracer("my-agent")
# Create a span for custom operations
with tracer.start_as_current_span("process_data") as span:
span.set_attribute("data.size", 1024)
# Your logic here
result = await process_data()
span.set_attribute("result.status", "success")
use sekuire_sdk::telemetry::get_tracer;
let tracer = get_tracer("my-agent");
tracer.in_span("process_data", |cx| async move {
cx.span().set_attribute("data.size", 1024);
// Your logic here
let result = process_data().await?;
cx.span().set_attribute("result.status", "success");
Ok(result)
}).await?;
SekuireSpanExporter
Export telemetry directly to Sekuire for integrated dashboard visibility:
- TypeScript
- Python
- Rust
import { SekuireSpanExporter } from '@sekuire/sdk';
const exporter = new SekuireSpanExporter({
backendUrl: 'https://api.sekuire.ai',
agentId: '7f8a9b3c...',
batchSize: 100,
flushInterval: 5000
});
// Integrates with your OTEL setup
provider.addSpanProcessor(
new BatchSpanProcessor(exporter)
);
from sekuire_sdk.telemetry import SekuireSpanExporter
exporter = SekuireSpanExporter(
backend_url="https://api.sekuire.ai",
agent_id="7f8a9b3c...",
batch_size=100,
flush_interval=5
)
# Integrates with your OTEL setup
provider.add_span_processor(
BatchSpanProcessor(exporter)
)
use sekuire_sdk::telemetry::SekuireSpanExporter;
let exporter = SekuireSpanExporter::new(
"https://api.sekuire.ai",
"7f8a9b3c...",
)?
.batch_size(100)
.flush_interval(Duration::from_secs(5));
// Integrates with your OTEL setup
tip
When using useSekuireExporter: true, telemetry data appears in the Sekuire dashboard alongside beacon heartbeats and metrics.
Automatic Instrumentation
The SDK automatically instruments:
- LLM API calls (provider, model, tokens, latency)
- Tool executions (tool name, duration, success/failure)
- Memory operations (store, retrieve, clear)
- Beacon heartbeats
- Policy enforcement checks
Next Steps
- sekuire metrics - View metrics from CLI
- Beacon SDK - Report custom metrics