Skip to content
AstraRunner
Become a PartnerJoin waitlist
Observability

If you can't trace it,
you can't trust it.

AstraRunner ships with a full observability surface from day one — traces, metrics, failure analysis, cost, reasoning. Built on OpenTelemetry. Compatible with what you already run.

Traces · Cost

Two views. Same source of truth.

One agent run becomes a hierarchical trace and a cost record. Both queryable, both replayable, both exportable.

Pillars

The eight signals every agent team needs.

Pick the one you're missing. We probably ship it.

Distributed traces

Every tool call, every LLM hop, every retry — nested as OTel-compatible spans you can replay.

Real-time metrics

Latency, throughput, success rate, token spend — per agent, per team, per tenant, per minute.

Reasoning visibility

See the chain-of-thought that led to a tool pick. Diff it across runs. Catch model regressions early.

Failure forensics

Auto-classified failure modes — wrong tool, hallucination, timeout, guardrail trip — with rerun playgrounds.

Cost analysis

Per-tenant + per-team budgets. Forecast overruns before they happen. Throttle on overshoot.

Replay & diff

Replay any trace with a different model. See what changes. Promote winners to production.

Audit & compliance

Immutable run history. Per-tenant retention policy. SOC2-friendly access controls.

Continuous learning

Feed validated runs back into memory + prompt-tuning loops. Improve without retraining.

OpenTelemetry-native

Ship spans where you already look.

OTLP exporter is built-in. Your spans land in Datadog, Honeycomb, Grafana Tempo, or your own collector — no extra agent, no proprietary format.

  • OTLP gRPC + HTTP, both ends.
  • Standard OTel semantic conventions, plus agent + model + tool attributes.
  • Per-tenant resource attributes so your warehouse partitions cleanly.
  • Zero-config sampling that prioritises failed + slow runs.
import { OtlpExporter } from '@astrarunner/observability'

// Ship spans to your existing OTel collector (Datadog, Honeycomb, Grafana).
const exporter = new OtlpExporter({
  endpoint: process.env.OTEL_COLLECTOR,
  headers:  { 'x-tenant': process.env.TENANT_ID! },
})

team.observability.attach(exporter)
Builder
Define the exporter once and wire the team into your collector.
Implement
Ship spans, metrics, and failures without adding a separate observability stack.

Trace production beta agent runs.

Join the waitlist for full traces, metrics, approvals, and cost telemetry during the open beta.