
Observability Triage
Triage OpenSEO production errors in Cloudflare Workers Observability, verified query...
Install
npx skills add every-app/open-seo --skill observability-triage -g -a claude-code -y- Repository
- every-app/open-seo26k
- Category
- DevOps
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 2,786 tokens
- Runs scripts
- Yes, review before use
What it does
Triage OpenSEO production errors in Cloudflare Workers Observability, verified query recipes, counting gotchas, a known-noise filter list applied automatically, and the on-demand CPU/heap profiling recipe. Use when asked to review Cloudflare logs/observability, count OOMs or worker errors, compare error rates between periods, investigate a prod error spike, or find where a worker spends CPU or memory (profiles, flamegraphs).
Observability triage
Query Cloudflare Workers Observability for prod errors, count them correctly, and skip the noise that has already been investigated to a dead end. Apply the known-noise list below without re-investigating those entries.
Access
- Resolve the account at runtime, never hardcode it: the
cloudflare-apiMCP server pre-bindsaccountIdinmcp__cloudflare-api__execute, andnpx wrangler whoamiprints it. The workers to triage are the ones this repo deploys (seedeploy/alchemy/alchemy.run.ts): the main app worker plus the aux workers (audit engine, landing, self-host). - Query via the
cloudflare-apiMCP server (mcp__cloudflare-api__execute). If its tools are absent, run its authenticate flow and give the user the URL, wrangler's OAuth token gets a 403 on the observability API (missing scope), so don't burn time on curl-with-wrangler-token. - PostHog is the second error source but cannot see
exceededMemory/canceled/responseStreamDisconnectedoutcomes, worker-outcome questions are answerable only here.
Query recipes (verified shapes)
POST /accounts/{account_id}/workers/observability/telemetry/query. All of these are load-bearing; the API's 400s are opaque:
-
queryId: "adhoc"is required. Timeframe is epoch milliseconds:timeframe: { from, to }. -
Count invocations by outcome:
{ "queryId": "adhoc", "timeframe": { "from": 0, "to": 0 }, "parameters": { "datasets": ["cloudflare-workers"], "filters": [ { "key": "$metadata.type", "operation": "eq", "value": "cf-worker-event", "type": "string" } ], "calculations": [{ "operator": "count", "alias": "count" }], "groupBys": [ { "value": "$workers.scriptName", "type": "string" }, { "value": "$workers.outcome", "type": "string" } ], "limit": 100 }, "view": "calculations", "limit": 100 }

