Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.trulayer.ai/llms.txt

Use this file to discover all available pages before exploring further.

Metrics are rolling aggregations over traces. TruLayer computes them continuously and surfaces them in the dashboard and via the /v1/metrics endpoint.

Built-in metrics

MetricDescription
error_rateFraction of traces that ended in error over the window
latency_p50, latency_p95, latency_p99Trace latency percentiles
total_costSum of (prompt_tokens + completion_tokens) × model_price across traces
trace_countNumber of traces in the window
feedback_good_rateFraction of feedback-labeled traces with label="good"

Query

import trulayer
from datetime import datetime, timedelta

client = trulayer.get_client()
metrics = client.get_metrics(
    project_id="rag-app",
    from_time=datetime.utcnow() - timedelta(hours=1),
    to_time=datetime.utcnow(),
)
print(metrics.error_rate, metrics.latency_p95, metrics.total_cost)

In the dashboard

The Metrics page shows these metrics as time-series charts. You can:
  • Filter by project, model, or tag
  • Overlay multiple metrics on the same axis
  • Drill from any point into the underlying traces

Project-scoped metrics

GET /v1/projects/{id}/metrics returns a single scalar metric scoped to one project over a fixed window. This endpoint complements the trace-level /v1/metrics endpoint — it answers questions about control-loop behaviour at the project level rather than about individual trace latency or cost.

Supported metrics

MetricDescription
retry_cap_hitNumber of traces in the window where a policy hit its max_retry_depth cap and auto-escalated to the HITL pending-approval queue.

Parameters

ParameterRequiredDescription
metricYesMetric name. Currently only retry_cap_hit is valid.
windowYesAggregation window. One of 7d or 30d.

Response shape

{
  "metric": "retry_cap_hit",
  "value": 12,
  "window": "30d"
}
value is always an integer count. The endpoint returns 0 (not null) when no traces match in the window.

Auth

Requires a Clerk session (viewer role or above) or an API key with the query scope.

Example

curl "https://api.trulayer.ai/v1/projects/proj_01j.../metrics?metric=retry_cap_hit&window=30d" \
  -H "Authorization: Bearer $TRULAYER_API_KEY"
Use retry_cap_hit alongside your policy’s max_retry_depth setting to tune the escalation threshold: if the count is high, consider raising the depth cap or adjusting the trigger condition to reduce spurious retries.

Cost calculation

TruLayer maintains a per-model price table for major providers (OpenAI, Anthropic, Google, Cohere). Cost is computed at ingest time and stored on the trace so historical reports are stable even when upstream prices change. For custom models or providers, attach metadata.cost_usd to the LLM span and TruLayer will use it instead of the price table.