a789495a98
FreeBSD Smoke / FreeBSD Smoke (x86_64) (push) Has been cancelled
CI / Quality Guardrails (push) Has been cancelled
CI / Build & Test (macos-latest) (push) Has been cancelled
CI / Build & Test (ubuntu-latest) (push) Has been cancelled
CI / Build & Test (windows-latest) (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / PowerShell Syntax (push) Has been cancelled
CI / Windows Cross-Target Check (Linux) (push) Has been cancelled
141 lines
5.5 KiB
SQL
141 lines
5.5 KiB
SQL
-- Telemetry health dashboard query.
|
|
-- Usage:
|
|
-- wrangler d1 execute jcode-telemetry --remote --file=health.sql
|
|
|
|
WITH install_ids AS (
|
|
SELECT DISTINCT telemetry_id
|
|
FROM events INDEXED BY idx_events_event_telemetry_created
|
|
WHERE event = 'install'
|
|
), lifecycle AS (
|
|
SELECT telemetry_id, created_at
|
|
FROM events INDEXED BY idx_events_event_telemetry_created
|
|
WHERE event IN ('session_end', 'session_crash')
|
|
), session_starts_by_id AS (
|
|
SELECT DISTINCT telemetry_id
|
|
FROM events INDEXED BY idx_events_event_telemetry_created
|
|
WHERE event = 'session_start'
|
|
), event_counts AS (
|
|
SELECT
|
|
SUM(CASE WHEN event = 'install' THEN 1 ELSE 0 END) AS install_events,
|
|
SUM(CASE WHEN event = 'session_start' THEN 1 ELSE 0 END) AS session_starts,
|
|
SUM(CASE WHEN event = 'session_end' THEN 1 ELSE 0 END) AS session_ends,
|
|
SUM(CASE WHEN event = 'session_crash' THEN 1 ELSE 0 END) AS session_crashes
|
|
FROM events INDEXED BY idx_events_event_created_telemetry
|
|
WHERE event IN ('install', 'session_start', 'session_end', 'session_crash')
|
|
), identity_counts AS (
|
|
SELECT
|
|
(SELECT COUNT(*) FROM install_ids) AS install_ids,
|
|
(SELECT COUNT(DISTINCT telemetry_id) FROM lifecycle) AS lifecycle_ids,
|
|
(SELECT COUNT(*) FROM session_starts_by_id) AS session_start_ids,
|
|
(SELECT COUNT(DISTINCT lifecycle.telemetry_id)
|
|
FROM lifecycle
|
|
LEFT JOIN install_ids USING (telemetry_id)
|
|
WHERE install_ids.telemetry_id IS NULL) AS lifecycle_ids_without_install
|
|
),
|
|
meaningful AS (
|
|
SELECT
|
|
SUM(CASE WHEN e.event IN ('session_end', 'session_crash') THEN 1 ELSE 0 END) AS meaningful_sessions,
|
|
COUNT(DISTINCT e.telemetry_id) AS meaningful_users_30d
|
|
FROM events e
|
|
LEFT JOIN turn_details td ON td.event_id = e.event_id
|
|
WHERE e.event IN ('session_end', 'session_crash', 'turn_end')
|
|
AND e.created_at > datetime('now', '-30 days')
|
|
AND (
|
|
(e.event IN ('session_end', 'session_crash') AND (
|
|
e.turns > 0
|
|
OR e.duration_mins > 0
|
|
OR e.error_provider_timeout > 0
|
|
OR e.error_auth_failed > 0
|
|
OR e.error_tool_error > 0
|
|
OR e.error_mcp_error > 0
|
|
OR e.error_rate_limited > 0
|
|
OR e.provider_switches > 0
|
|
OR e.model_switches > 0
|
|
OR e.had_user_prompt > 0
|
|
OR e.had_assistant_response > 0
|
|
OR e.assistant_responses > 0
|
|
OR e.tool_calls > 0
|
|
OR e.tool_failures > 0
|
|
OR e.executed_tool_calls > 0
|
|
OR e.feature_memory_used > 0
|
|
OR e.feature_swarm_used > 0
|
|
OR e.feature_web_used > 0
|
|
OR e.feature_email_used > 0
|
|
OR e.feature_mcp_used > 0
|
|
OR e.feature_side_panel_used > 0
|
|
OR e.feature_goal_used > 0
|
|
OR e.feature_selfdev_used > 0
|
|
OR e.feature_background_used > 0
|
|
OR e.feature_subagent_used > 0
|
|
))
|
|
-- turn_end activity lives in turn_details: production events never got
|
|
-- migration 0005's per-turn columns (D1 caps tables at 100 columns).
|
|
OR (e.event = 'turn_end' AND (
|
|
td.assistant_responses > 0
|
|
OR td.tool_calls > 0
|
|
OR td.executed_tool_calls > 0
|
|
OR td.file_write_calls > 0
|
|
OR td.tests_run > 0
|
|
))
|
|
)
|
|
),
|
|
outliers AS (
|
|
SELECT
|
|
MAX(session_events) AS max_session_events_one_id,
|
|
SUM(CASE WHEN rn <= 5 THEN session_events ELSE 0 END) AS top5_session_events,
|
|
SUM(session_events) AS total_session_events
|
|
FROM (
|
|
SELECT telemetry_id, COUNT(*) AS session_events,
|
|
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS rn
|
|
FROM lifecycle
|
|
GROUP BY telemetry_id
|
|
)
|
|
),
|
|
ci_noise AS (
|
|
SELECT
|
|
COUNT(DISTINCT telemetry_id) AS ci_ids_30d,
|
|
COUNT(DISTINCT CASE WHEN event = 'install' THEN telemetry_id END) AS ci_install_ids,
|
|
COUNT(DISTINCT CASE WHEN event IN ('session_end', 'session_crash') THEN telemetry_id END) AS ci_lifecycle_ids
|
|
FROM events
|
|
INDEXED BY idx_events_event_created_telemetry
|
|
WHERE event IN ('install', 'session_start', 'turn_end', 'session_end', 'session_crash')
|
|
AND created_at > datetime('now', '-30 days')
|
|
AND is_ci = 1
|
|
),
|
|
-- Auth failure health: count affected sessions/users, NOT SUM(error_auth_failed).
|
|
-- Raw sums are dominated by runaway retry loops (one session logged 18k+ auth
|
|
-- failures pre-breaker), which makes a single broken install look like a
|
|
-- fleet-wide auth outage. Affected-session/user counts are outlier-resistant.
|
|
auth_failures AS (
|
|
SELECT
|
|
COUNT(*) AS auth_failed_sessions_30d,
|
|
COUNT(DISTINCT telemetry_id) AS auth_failed_users_30d,
|
|
MAX(error_auth_failed) AS max_auth_fails_one_session_30d
|
|
FROM events
|
|
WHERE event IN ('session_end', 'session_crash')
|
|
AND error_auth_failed > 0
|
|
AND created_at > datetime('now', '-30 days')
|
|
)
|
|
SELECT
|
|
install_events,
|
|
session_starts,
|
|
session_ends,
|
|
session_crashes,
|
|
install_ids,
|
|
lifecycle_ids,
|
|
session_start_ids,
|
|
lifecycle_ids_without_install,
|
|
meaningful_sessions,
|
|
meaningful_users_30d,
|
|
ci_ids_30d,
|
|
ci_install_ids,
|
|
ci_lifecycle_ids,
|
|
max_session_events_one_id,
|
|
top5_session_events,
|
|
total_session_events,
|
|
auth_failed_sessions_30d,
|
|
auth_failed_users_30d,
|
|
max_auth_fails_one_session_30d,
|
|
ROUND(CAST(session_ends + session_crashes AS REAL) / NULLIF(session_starts, 0), 3) AS lifecycle_completion_ratio
|
|
FROM event_counts, identity_counts, meaningful, outliers, ci_noise, auth_failures;
|