Skip to main content
Control Plane’s observability layer gives you full visibility into what your agents do, how long it takes, and what it costs for every run, in production and in CI.

Trace collection

Traces are collected via the Control Plane SDK and routed through the Control Plane Collector (an OpenTelemetry Collector configured for agent workloads).

Automatic instrumentation

When you call langship.init(), Control Plane patches the following libraries automatically: No code changes needed beyond the init() call.

Manual spans

For code that Control Plane doesn’t auto-instrument, add spans manually:
Spans support arbitrary attributes:

Trace viewer

The trace viewer shows the full span tree for any run:
  • Timeline view: spans laid out on a horizontal time axis; see overlapping calls
  • Tree view: hierarchical view of parent/child spans
  • Detail panel: click any span to see full input, output, model metadata, token counts, and cost
Filter runs by:
  • Project and environment
  • Date range
  • Status (success / failure / error)
  • Tag or attribute value
  • Latency (runs slower than N ms)
  • Cost (runs above $X)
Search full-text across all span inputs and outputs.

Metrics

Control Plane aggregates per-project metrics over time: Metrics are available in the dashboard and via the API for export to Grafana or other dashboards.

Alerting

Set up alerts on any metric:
  1. Go to your project → AlertsNew Alert
  2. Choose a metric (e.g., P95 latency, error rate, cost per day)
  3. Set a threshold and a notification channel (email, Slack webhook, PagerDuty)
Alerts evaluate every 5 minutes.

Exporting to external backends

Control Plane’s collector can forward traces to any OTLP-compatible backend in parallel with Control Plane’s own storage. In collector-config.yaml (included in the Docker Compose setup):

Session replay

Control Plane records the full conversation history for multi-turn agents. In the run detail view, click Session Replay to step through the conversation turn by turn, with the full trace visible for each turn.

Cost tracking

Control Plane estimates cost for every LLM call using current model pricing. Costs are visible:
  • Per span (each LLM call)
  • Per run (total)
  • Per project per day (aggregate)
  • In eval results (how much did this eval suite cost to run?)
Set a cost budget alert to notify you when daily costs exceed a threshold.

SDK API reference