Products
LensAI
Latency, cost, tokens, errors — eBPF/HTTP ingest → Redpanda → ClickHouse → Grafana.
Active See latency, cost, tokens, errors, and volume across models and agents. LensAI is the observe layer — fleet SLOs and cost attribution via ingest → warehouse → Grafana, not a replacement for your APM.
When to use
- You need p50/p95/p99 and $/task by tenant, agent, and model
- Finance and platform must share one cost number
- You want anomaly feeds that jump to TraceForge via
trace_id
Ingest path
eBPF tracer or HTTP/SDK events
↓
streaming ingest :8080
↓
Redpanda
↓
ClickHouse
↓
Grafana :3000 ← dashboardsRun via lensai-integration (make build && make up && make smoke). Streaming stack: infra-ai-streaming; eBPF: ebpf-llm-tracer. A suite :4000 observe query API is Design target / not shipped.
Required labels
| Label | Why |
|---|---|
tenant_id | Cost attribution; reject if missing |
model_id | Model mix and SLO by revision |
trace_id | Join spike → TraceForge waterfall |
agent_id | Per-agent burn and errors |
env | Keep chaos/shadow out of prod SLO |
Core metrics
lensai.latency.p50/p95/p99— inference latency (ms)lensai.tokens.input/output— finalize streams or under-countlensai.cost.usd/cost.per_successful_tasklensai.errors.timeout,provider_5xx,rate_limit.429slensai.ingest.lag_ms,cardinality.active_series
Operator failure modes
| ID | Problem | Next action |
|---|---|---|
| L08 | Missing tenant_id → unattributed cost | Reject unlabeled at ingest |
| L09 | Token under-count on streams | Hook stream-end events |
| L12 | HTTP 200 with empty body | Treat empty as error class |
| L13 | 429 thrash burns retry cost | Respect Retry-After; jitter |
| L20 | Fallback to strong model spikes bill | Budget caps in RouteIQ |
| L23 | Cannot jump spike → trace | Require trace_id on events |
| L01 | Cardinality explosion | Drop high-churn labels; aggregate |
| L18 | Sampling hides rare errors | Always sample errors + slow |
Config today
Use Compose/Helm env in lensai-integration and infra-ai-streaming — not a suite inferix.yaml. See Configuration.