Observe
Understand agent behavior through traces, spans, and sessions.
Risicare's observability layer provides deep visibility into your AI agent's behavior.
Overview
Traces
End-to-end request traces
Spans
Individual operations
Sessions
User interaction sessions
Agents
Multi-agent observability
Data Model
Session (user interaction)
└── Trace (single request)
└── Span (individual operation)
├── LLM Call
├── Tool Execution
├── Agent Decision
└── Child Spans...
Key Metrics
| Metric | Description |
|---|---|
| Latency | P50, P95, P99 response times |
| Token Usage | Prompt and completion tokens |
| Cost | USD cost per trace/session |
| Error Rate | Failed traces percentage |
| Throughput | Traces per minute |
Dashboard Views
Trace List
View all traces with filtering:
- Time range
- Status (success/error)
- Agent name
- Session ID
- Latency thresholds
- Cost thresholds
Trace Detail
Deep dive into a single trace:
- Span waterfall visualization
- LLM prompts and completions
- Tool inputs and outputs
- Error details and stack traces
- Cost breakdown by model
Analytics
Aggregate views:
- Trace volume over time
- Error rate trends
- Latency distributions
- Cost by model/agent
- Top error codes
Real-Time Streaming
View traces as they happen:
# Traces appear in dashboard within ~100ms
response = client.chat.completions.create(...)Filtering and Search
There is no query language
Risicare has no field:value search syntax and no boolean operators. A query
like status:error AND agent:planner is treated as one literal string and
will match nothing.
Search
The search box takes plain text (minimum 2 characters) and matches on exactly two things:
- the root span name, as a case-insensitive substring
- the trace ID, as a prefix
It does not search agent names, models, content, or error codes.
Filters
Filtering is done with separate controls, not search terms:
| Filter | Values |
|---|---|
| Status | errored or completed |
| Environment | your configured environment name |
| Time window | relative range |
To narrow by anything else — model, cost, latency, agent, error code — query
the REST API and filter client-side, or use
GET /api/v1/diagnoses?error_code=... for error codes specifically.
Data Retention
Retention is a fixed ClickHouse TTL that varies by data type, uniform across every project during beta:
| Data | Retention |
|---|---|
| Traces, spans, sessions | 90 days |
| Prompt/completion content | 90 days — stored on the span itself |
| Evaluations, scorer results | 365 days |
Captured prompt and completion text lives in the span's attributes, so it is retained for the span's full 90 days — not the 30 days stated by earlier versions of these docs.
The retention_days project setting is reserved but not yet honored, and per-plan retention tiers will ship after beta. See Data Management for the full table.