## §SELF — miscsubjects capability (paste without context)
**Principle:** Self-explaining payload — no external context required. This _self block is the capability: what it is, how to run it, how to change it, and where to look next.
**Path:** OIP > CF > CF_OBSERVABILITY_OBSERVABILITY_KEYS
**Capability:** `CF_OBSERVABILITY_OBSERVABILITY_KEYS` — Find keys in the Workers Observability Data ## Best Practices - Set a high limit (1000+) to ensure you see all available keys - Add the $metadata.service filter to narrow results to a specific Worker  MCP: https://observability.mcp.cloudflare.com/sse
**RUN NOW (open this URL):** https://miscsubjects.com/api/dispatch?invoke=CF_OBSERVABILITY_OBSERVABILITY_KEYS&body=%3Carg1%3E&share=<TOKEN>
**Example call:** [CF_OBSERVABILITY_OBSERVABILITY_KEYS]<arg1>[/CF_OBSERVABILITY_OBSERVABILITY_KEYS]
- **type · runner:** tool · fn · cf_observability
- **run it:** Open run_now (URL, fires the example), or POST https://miscsubjects.com/api/dispatch {"key":"CF_OBSERVABILITY_OBSERVABILITY_KEYS","body":"<arg1>"}. From the router: null
- **inputs:** {"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"keysQuery":{"type":"object","properties":{"timeframe":{"anyOf":[{"type":"object","properties":{"to":{"type":"string"},"from":{"type":"string"}},"required":["to","from"],"description":"An absolute timeframe for your query (ISO-8601 format).\n\n  • Current server time: 1970-01-01T00:00:00Z\n  • Default: Last hour from current time\n  • Maximum range: Last 7 days\n  • Format: \"YYYY-MM-DDTHH:MM:SSZ\" (e.g., \"2025-04-29T14:30:00Z\")\n\n  Examples:\n  - Between April 1st and 5th: from=\"2025-04-01T00:00:00Z\", to=\"2025-04-05T23:59:59Z\"\n\n  Note: Narrower timeframes provide faster responses and more specific results.\n  Omit this parameter entirely to use the default (last hour)."},{"type":"object","properties":{"reference":{"type":"string"},"offset":{"type":"string"}},"required":["reference","offset"],"description":"Relative timeframe for your query, composed of a reference time and an offset.\n\n  • Current server time: 1970-01-01T00:00:00Z\n  • Default: Last hour from current time\n  • Maximum range: Last 7 days\n  • Reference time format: \"YYYY-MM-DDTHH:MM:SSZ\" (ISO-8601) (e.g., \"2025-04-29T14:30:00Z\")\n  • Offset format: Must start with a '+' or '-' sign, which indicates whether the offset is in the past or future, followed by one or more time units (e.g., '+5d', '-2h', '+6h20m').\n\t\tUnits: s (seconds), m (minutes), h (hours), d (days), w (weeks).\n\t• You should not use a future looking offset in combination with the current server time as the reference time, as this will yield no results. (e.g. \"the next 20 minutes\")\n\n  Examples:\n  - Last 30 minutes: reference=\"1970-01-01T00:00:00Z\", offset=\"-30m\"\n  - Yesterday: reference=\"1970-01-01T00:00:00Z\", offset=\"-1d\"\n\n  Note: Narrower timeframes provide faster responses and more specific results.\n  Omit this parameter entirely to use the default (last hour)."}],"description":"Timeframe for your query, which can be either absolute or relative.\n\n  • Absolute timeframe: Specify exact start and end times in ISO-8601 format (e.g., \"2025-04-29T14:30:00Z\").\n  • Relative timeframe: Specify a reference time and an offset (e.g., reference=\"2025-04-29T14:30:00Z\", offset=\"-30m\").\n\n  Examples:\n  - Absolute: from=\"2025-04-01T00:00:00Z\", to=\"2025-04-05T23:59:59Z\"\n  - Relative: reference=\"2025-04-29T14:30:00Z\", offset=\"-30m\"\n\n  Note: Narrower timeframes provide faster responses and more specific results."},"datasets":{"default":[],"description":"Leave this empty to use the default datasets","type":"array","items":{"type":"string"}},"filters":{"default":[],"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Filter field name. IMPORTANT:\n\n    • DO NOT guess keys - always use verified keys from either:\n      - Previous query results\n      - The observability_keys response\n\n    • PREFERRED KEYS (faster & always available):\n      - $metadata.service: Worker service name\n\t\t\t- $metadata.origin: Trigger type (e.g., fetch, scheduled, etc.)\n\t\t\t- $metadata.trigger: Trigger type (e.g., GET /users, POST /orders, etc.)\n      - $metadata.message: Log message text (present in nearly all logs)\n      - $metadata.error: Error message (when applicable)\n"},"operation":{"type":"string","enum":["includes","not_includes","starts_with","regex","exists","is_null","in","not_in","eq","neq","gt","gte","lt","lte"]},"value":{"description":"Filter comparison value. IMPORTANT:\n\n    • MUST match actual values in your logs\n    • VERIFY using either:\n      - Actual values from previous query results\n      - The '/values' endpoint with your selected key\n\n    • TYPE MATCHING:\n      - Ensure value type (string/number/boolean) matches the field type\n      - String comparisons are case-sensitive unless using specific operations\n\n    • PATTERN USAGE:\n      - For 'contains', use simple wildcard patterns\n      - For 'regex', MUST use ClickHouse regex syntax:\n        - Uses RE2 syntax (not PCRE/JavaScript)\n        - No lookaheads/lookbehinds\n        - Examples: '^5\\d{2}$' for HTTP 5xx codes, '\\bERROR\\b' for word boundary\n        - Escape backslashes with double backslash","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"type":{"type":"string","enum":["string","number","boolean"]}},"required":["key","operation","type"],"description":"\n\t## Filtering Best Practices\n- Before applying filters, use the observability_keys and observability_values queries to confirm available filter fields and values.\n- If the query is asking to find something you should check that it exists. I.e. to requests with errors filter for $metadata.error exists.\n\t"}},"limit":{"description":"\n    • ADVANCED USAGE:\n      set limit=1000+ to retrieve comprehensive key options without needing additional filtering","type":"number"},"needle":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"isRegex":{"type":"boolean"},"matchCase":{"type":"boolean"}},"required":["value"]},"keyNeedle":{"description":"If the user makes a suggestion for a key, use this to narrow down the list of keys returned.\n\t\tMake sure match case is fals to avoid case sensitivity issues.","type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"isRegex":{"type":"boolean"},"matchCase":{"type":"boolean"}},"required":["value"]}},"required":["timeframe"]}},"required":["keysQuery"]}
- **outputs:** { ok, result, invocation, yield, _self } — result is this object's output; yield is tokens/cost/material; invocation is the ledgered record.
- **auth · risk:** none · low
### Machine Contract
- Read this article first; do not infer the row shape from memory.
- If acting with a URL-only tool, open run_now after replacing placeholder args.
- If the call returns ran:false or proof.ok:false, read the receipt and repair the failed invocation instead of narrating success.
- If the token denies the call, report the denial exactly; do not switch to a broader action unless the owner supplied a broader token.
### Invocation, Ledger, Repair
- root tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown
- parent system article: https://miscsubjects.com/api/dispatch?map=CF&format=markdown
- append-only ledger: https://miscsubjects.com/api/invocations?object_id=CF_OBSERVABILITY_OBSERVABILITY_KEYS
- receipt pattern: https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
- replay: POST /api/dispatch {"replay":"inv_ID"}
- repair: POST /api/dispatch {"key":"CF_OBSERVABILITY_OBSERVABILITY_KEYS","body":"corrected args","repairs":"inv_ID"}
### Troubleshooting
- **unknown key** — Use the did_you_mean links or ask URL; never guess another key. · https://miscsubjects.com/api/dispatch?ask=CF_OBSERVABILITY_OBSERVABILITY_KEYS
- **argument/body mismatch** — Read inputs/example_args here, then retry with repairs: inv_ID so lineage closes. · https://miscsubjects.com/api/dispatch?key=CF_OBSERVABILITY_OBSERVABILITY_KEYS
- **expired or corrupted token** — Report token_expired/token_corrupted from the response; owner mints a fresh scoped link. · https://miscsubjects.com/api/dispatch?explain=1&share=<TOKEN>
- **tool returned ok:false / exit nonzero** — Do not call it sent. Read the receipt, correct the body, fire a repair. · https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
### Logical proof (verify each step)
1. Every capability is an invokable object with its own _self — this block. → https://miscsubjects.com/api/dispatch?key=CF_OBSERVABILITY_OBSERVABILITY_KEYS
2. You run it by POSTing to /api/dispatch; in a model turn the router tag is [CF_OBSERVABILITY_OBSERVABILITY_KEYS]args[/CF_OBSERVABILITY_OBSERVABILITY_KEYS]. → https://miscsubjects.com/api/dispatch?registry=1
3. Every invocation is ledgered with actor, cost, and material/waste. → https://miscsubjects.com/api/invocations?object_id=CF_OBSERVABILITY_OBSERVABILITY_KEYS
4. You can ask the build for capabilities in plain language. → https://miscsubjects.com/api/dispatch?ask=CF_OBSERVABILITY_OBSERVABILITY_KEYS
5. The whole build is one self-describing map, with the terminal key. → https://miscsubjects.com/api/dispatch?build=1
### Where to look next
- **registry** — Every capability, self-describing · https://miscsubjects.com/api/dispatch?registry=1
- **ask** — Ask the build what to use, in plain language · https://miscsubjects.com/api/dispatch?ask=<question>
- **history** — This capability's invocation history — its edges · https://miscsubjects.com/api/invocations?object_id=CF_OBSERVABILITY_OBSERVABILITY_KEYS
- **build** — The whole build as one map (terminal key) · https://miscsubjects.com/api/dispatch?build=1
*Self-explaining. Not project knowledge — fetch specifics from the links above.*