AI Pilot — Observability Dimensions

Audience: Platform engineers, FinOps, AI governance owners Time: ~6 min read

The Observability tab in /pilot and /settings/pilot lets you slice token usage, cost, latency, and decisions by every meaningful dimension — not just global aggregates.

All available dimensions

Every endpoint under /pep-config/pilot/bouncer/{id}/observability and /analytics accepts these query parameters:

DimensionQuery paramSource fieldExamples
Time windowwindow(computed)1h, 24h, 7d, 30d, custom
Bouncerbouncer_idAuditLog.pep_id42
Application / CallerappAuditLog.actor_appmarketing-portal, agent-runner
User / SubjectuserAuditLog.user_subjectu_123, alice@acme.com
Resource typetarget_typeAuditLog.target_typellm, mcp, rag, agent, api, data
ProviderproviderAuditLog.ai_provideropenai, azure-openai, anthropic, bedrock, vertex
ModelmodelAuditLog.ai_modelgpt-4o, claude-3-5-sonnet, gemini-1.5-pro
MCP servermcp_serverAuditLog.mcp_server_idinternal-tools, weather-api
MCP toolmcp_toolAuditLog.mcp_methodget_record, delete_record
AI agentagent_idAuditLog.agent_idsf-agentforce-1, foundry-2
RAG servicerag_serviceAuditLog.rag_servicekb-finance, kb-product
DecisiondecisionAuditLog.outcomeallow, deny, mask, redact, 4xx, 5xx
Correlation idcorrelation_idAuditLog.correlation_idfor transaction-level drill-down

Multiple dimensions stack: ?provider=openai&model=gpt-4o&user=alice@acme.com&decision=deny.

Filter bar in the UI

/settings/pilot -> Observability and /pilot -> Analytics both expose the same filter bar. Each filter is multi-select (except correlation id). The filter bar persists per-tab in the URL so you can share a filtered view by copying the URL.

Worked queries

QuestionFilter
Which user is burning the most tokens this hour?window=1h&target_type=llm then sort by tokens_in+tokens_out per user
Did Anthropic on Bedrock deny anything yesterday?window=24h&provider=bedrock&model=claude-*&decision=deny
What did the marketing portal spend on AI yesterday?window=24h&app=marketing-portal
What MCP tools did agent foundry-2 call?agent_id=foundry-2&target_type=mcp
Show me the slowest p95 on GPT-4o todaywindow=24h&provider=openai&model=gpt-4o then look at TTFT/ITL
Did anyone hit an MFA wall?decision=deny + drill-down into AI_DECISION_LINEAGE for step_up_required

Token Ledger drill-down

The Token Ledger tab in /pilot is the same data narrowed to per-transaction granularity. Each row links to /audit?correlation_id=... for the full lineage view.

Where the data comes from

All Observability data is computed from AuditLog rows the bouncer's ext_proc already emits today. The 2026-Q2 schema additions:

  • AuditLog.target_type, target_id, ai_provider, ai_model, mcp_server_id, mcp_method, agent_id, rag_service, actor_app, user_subject

Existing rows are backfilled lazily; old rows missing dimensions show as unknown in filters.

Performance

For high-cardinality fields (e.g. user), the API returns the top-N results plus an other bucket. Default N is 25; tune with top=N (max 200).