Files
supabase/apps/docs/data/content-listings/telemetry.data.ts
T
Saxon FletcherandClaude Opus 5 91e23a0f2d docs: define detection checks and specialist monitoring prompts (#50075)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

Yes.

## What kind of change does this PR introduce?

Documentation update.

## What is the current behavior?

Specialist monitoring prompts leave some comparison windows, baselines,
thresholds, and missing-data behavior undefined. This can produce
reports or forecasts without sufficient evidence.

## What is the new behavior?

Detection checks define inputs, comparison windows, thresholds, units,
missing-data behavior, and next investigation steps. Query regressions
require comparable snapshots and reset history; capacity forecasts
require saved measurements and a matching confirmed limit.

Health, Security, Performance, and Capacity prompts fetch and follow the
shared detection checks automatically. They record finding, clear, or
unable to assess, preserve alert state, and suppress unchanged repeats.
Missing history or failed access cannot become a healthy result.

Specialist pages retain their diagrams and the sections What it watches,
When it watches, What it will output, and Set up the agent. Setup
explains the necessary documentation access and saved state; optional
links explain report triggers. Prompt and provider setup tabs remain
available in HTML and Markdown. The Hire an agent overview and
Generalist page and prompt remain unchanged.

Prompt Markdown exports use the Markdown serializer to safely contain
nested code fences, preserving the full Generalist prompt and its SQL
examples. Both prompt exporters have parser-based round-trip coverage.

## Additional context

Full docs suite: 215 passed, 2 skipped against a freshly reset
disposable Supabase stack. Typecheck, targeted ESLint, formatting, and
guides Markdown generation also pass after the export fix.

Earlier validation: production docs build, docs typecheck, targeted
ESLint, formatting, and guides Markdown generation pass. All four
specialist exports contain their diagrams, setup sections, enhanced
prompts, and provider instructions. The Health page diagram and setup
tab were checked in the browser. Changed pages have no MDX lint
violations; existing repository-wide violations remain.

The unchanged detection SQL was previously smoke-tested in a disposable
sandbox. Hosted MCP runs, scheduler persistence, notifications, and
agent evals are outside this validation. Evals remain outside this
change.

Stage 3 of 3; depends on stage 2.

Stack: #50073 → #50074 → #50075.



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
- Reworked observability guidance around hourly, read-only monitoring
checks.
- Updated health, security, performance, and usage monitors to identify
new findings, data gaps, regressions, and resource growth.
- Added clearer setup instructions for linked documentation, saved
measurements, and alert state.
- Replaced the issue-detection guide with standardized outcomes:
finding, clear, or unable to assess.
- Added explicit thresholds, evidence details, investigation links, and
verification steps for turning detections into diagnoses.
- **Improvements**
- Standardized monitoring prompts and presentation across supported
agent types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 08:48:51 +10:00

140 lines
4.5 KiB
TypeScript

import { monitoringAgents } from '~/data/monitoring-agents.data'
import { getScheduleLabel } from '~/data/monitoring-agents.utils'
import type { ContentListingGroup } from '~/lib/content-listings.schema'
export const telemetryAccessWhat: ContentListingGroup = {
id: 'telemetry-access-what',
type: 'grid',
columns: 2,
items: [
{
title: 'Query logs with SQL',
href: '/guides/observability/advanced-log-filtering',
description: 'Query ClickHouse events through MCP, the API, or Explorer.',
},
{
title: 'Logs in Studio',
href: '/guides/observability/logs',
description: 'Filter, inspect, and export events in the unified Logs view.',
},
{
title: 'Log sources and fields',
href: '/guides/observability/log-field-reference',
description: 'Look up sources, ClickHouse query fields, and capture limits.',
},
{
title: 'Metrics API',
href: '/guides/observability/metrics',
description: 'Scrape Prometheus-compatible database metrics, or chart a subset in Reports.',
},
{
title: 'Inspect the database',
href: '/guides/observability/inspect',
description: 'Inspect live Postgres stats from the CLI, Explorer, or MCP.',
},
{
title: 'Advisors',
href: '/guides/observability/advisors',
description: 'Pull security and performance findings from Studio, MCP, the CLI, or the API.',
},
{
title: 'Reports',
href: '/guides/observability/reports',
description: 'Studio dashboards for API, Auth, Storage, Realtime, and database signals.',
},
],
}
export const telemetryDetect: ContentListingGroup = {
id: 'telemetry-detect',
type: 'grid',
items: [
{
title: 'Detect issues',
href: '/guides/observability/detecting',
description:
'Run health, security, performance, and capacity checks against logs and database statistics to pick up a signal.',
},
],
}
export const telemetryDiagnose: ContentListingGroup = {
id: 'telemetry-diagnose',
type: 'grid',
items: [
{
title: 'Diagnose and resolve',
href: '/guides/troubleshooting',
description:
'Use a concrete finding, symptom, or error code to identify the cause and apply a known solution.',
},
],
}
export const telemetryHireAgent: ContentListingGroup = {
id: 'telemetry-hire-agent',
type: 'grid',
columns: 2,
items: [
{
title: 'Generalist',
href: '/guides/observability/automate-with-agents/all',
subtitle: getScheduleLabel(monitoringAgents.all),
description:
'Run all four checks — health, security, performance, and capacity — in one daily pass.',
},
{
title: monitoringAgents.health.name,
href: '/guides/observability/automate-with-agents/health',
subtitle: getScheduleLabel(monitoringAgents.health),
description: 'Check API and Auth server errors and connection pressure.',
},
{
title: monitoringAgents.security.name,
href: '/guides/observability/automate-with-agents/security',
subtitle: getScheduleLabel(monitoringAgents.security),
description: 'Review advisor findings and authorization failures.',
},
{
title: monitoringAgents.performance.name,
href: '/guides/observability/automate-with-agents/performance',
subtitle: getScheduleLabel(monitoringAgents.performance),
description: 'Review sessions, query regressions, and performance advisors.',
},
{
title: monitoringAgents.usage.name,
href: '/guides/observability/automate-with-agents/usage',
subtitle: getScheduleLabel(monitoringAgents.usage),
description: 'Track sizes, connections, request growth, and supported forecasts.',
},
],
}
export const telemetryExport: ContentListingGroup = {
id: 'telemetry-export',
type: 'grid',
columns: 3,
items: [
{
title: 'Configure logging',
href: '/guides/observability/configure-logging',
description: 'Record additional Postgres and Realtime events.',
},
{
title: 'Log drains',
href: '/guides/observability/log-drains',
description: 'Send project logs to your own destination.',
},
{
title: 'Client-side tracing',
href: '/guides/observability/client-side-tracing',
description: 'Propagate W3C trace context from the client through Supabase services.',
},
{
title: 'Sentry integration',
href: '/guides/observability/sentry-monitoring',
description: 'Capture supabase-js errors and spans in Sentry.',
},
],
}