Skip to content

Monitoring Sections

diegosouzapw edited this page Jun 15, 2026 · 1 revision

🌍 View in other languages

Monitoring & Costs — Navigation Structure

Implemented in Group B (plan 16). See src/shared/constants/sidebarVisibility.ts.


High-Level Navigation

The dashboard sidebar (after Group B) has these top-level sections in order:

Home
Providers
Combos
API Keys
Settings
Analytics
Costs          ← NEW (Group B, plan 16)
Monitoring     ← REORGANIZED (Group B, plan 16)
...

Costs section (new, level 1)

Path prefix: /dashboard/costs/

Item URL Description
Overview /dashboard/costs Aggregated cost dashboard (moved from Analytics)
Pricing /dashboard/costs/pricing Per-model pricing table
Budget /dashboard/costs/budget Budget thresholds + alerts
Quota Sharing /dashboard/costs/quota-share Quota Share pools + usage
Plan Config /dashboard/costs/quota-share/plans Per-provider plan overrides

Rationale: Pricing, Budget, and Quota Sharing were previously under Monitoring > Costs Parameters. Moving them to a dedicated top-level section makes them discoverable without navigating through observability tooling.


Monitoring section (reorganized)

The Monitoring section now has Activity at the top followed by 3 subgroups:

Monitoring
├── Activity             ← Timeline feed (top-level item)
├── Logs group
│   ├── Logs (all)
│   ├── Proxy Logs
│   └── Console Logs
├── Audit group
│   ├── Audit Log
│   ├── MCP Audit
│   └── A2A Audit
└── System group
    ├── Health
    └── Runtime

What changed from the old structure

Before After
Activity = tab inside Logs that rendered the Audit Log Activity = dedicated feed (/dashboard/activity)
Costs Parameters group in Monitoring Moved to Costs section
Flat list: Logs, Activity (logs), Audit, Health, Runtime, Pricing, Budget, Quota Structured 3-group + dedicated Costs section

Activity vs Audit Log

These two are now distinct:

Dimension Activity (/dashboard/activity) Audit Log (/dashboard/audit)
Purpose User-facing event feed ("what happened recently") Compliance / security log
Data source GET /api/compliance/audit-log?level=high GET /api/compliance/audit-log?level=all
Format Timeline, grouped by day, human-readable verbs + icons Dense paginaged table, 50/page
Filters Event type category Action, severity, actor, date range
Export Not available JSON export
Actor filter Not applicable Filterable by actor
Events shown High-level actions only (allowlist) All audit events

High-Level Actions allowlist

Defined in src/lib/audit/highLevelActions.ts. Controls which events appear in the Activity feed. The allowlist includes:

  • Provider add/remove/test events
  • Combo create/update/delete
  • API key lifecycle (create, revoke, rotate)
  • Budget threshold reached
  • Auth login/logout
  • Cloud agent session creation
  • MCP tool registration
  • Webhook create/delete
  • Quota pool/plan changes (quota.* actions, Group B)
  • Platform events (update, deploy)
  • Skill install/remove

Events not in this list appear only in the Audit Log.

Adding a new high-level action

Edit src/lib/audit/highLevelActions.ts and add the action string to HIGH_LEVEL_ACTIONS. This requires a PR (the list is code, not DB-configurable). The corresponding icon can be added to src/lib/audit/activityIcons.ts.


Redirect: /dashboard/logs/activity

The old path /dashboard/logs/activity is permanently redirected (HTTP 308) to /dashboard/activity via permanentRedirect() in src/app/(dashboard)/dashboard/logs/activity/page.tsx.

The legacy sidebar ID logs-activity is preserved in HIDEABLE_SIDEBAR_ITEM_IDS (but removed from SIDEBAR_DEFINITIONS) to avoid breaking user presets that reference the old ID.


i18n

Namespaces added by Group B:

Namespace key Covers
sidebar.costsSection Costs section label
sidebar.activity Activity sidebar item
sidebar.logsGroup Logs subgroup label
sidebar.systemGroup System subgroup label
sidebar.costsOverview Costs overview item
activity.* All Activity page strings (title, verbs, filters, empty state)

Source-of-truth locales: pt-BR and en. All other 39 locales fall back to English via the fallback mechanism (src/i18n/fallback.ts or next-intl fallback).

Clone this wiki locally