OpenTelemetry
A plain BaseExporter<Activity> for any .NET OpenTelemetry workload, no Semantic Kernel required.
AxonPush.Otel is a plain BaseExporter<Activity>. If your application already
produces OpenTelemetry spans, this forwards them to axonpush and nothing about
your instrumentation changes.
For tracing GenAI model calls, the recommended path is now
OpenTelemetry-native telemetry, which emits standard
gen_ai.* spans over OTLP. This exporter (which ships spans as proprietary
app.span events) still works and is supported, but is superseded for new code.
Install
dotnet add package AxonPush.OtelWire it up
using OpenTelemetry;
using OpenTelemetry.Trace;
using AxonPush.Otel;
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("MyApp")
.AddAxonPushExporter(
client => { client.ApiKey = "ak_..."; client.TenantId = "..."; },
exporter => { exporter.ChannelId = "..."; })
.Build();AddAxonPushExporter wraps the exporter in a BatchActivityExportProcessor
with defaults that suit most services. Because it is an ordinary exporter, it
composes with whatever else you already export to, adding axonpush does not
mean removing your existing backend.
Failures stay inside the exporter
With fail-open on (the default), Export returns ExportResult.Success even
when individual spans could not be delivered, so the OpenTelemetry SDK never
propagates a delivery failure into your application code. Set
AXONPUSH_FAIL_OPEN=false if you would rather see them.
Configuration
Every option in the SDK overview applies here. The two that matter most for an exporter:
AXONPUSH_BASE_URL, point at your own deployment when self-hosting.AXONPUSH_ENVIRONMENT, stamped on every span, so dev traffic filters out.
Telemetry
OpenTelemetry-native GenAI tracing, reuse your own TracerProvider and ship standard gen_ai.* spans to axonpush over OTLP.
Self-host on your own AWS
Run the full axonpush stack in your own AWS account, serverless, pay-per-use, and roughly $0/month at idle. One licence key, one command, your data never leaves your cloud.