{"dataset":"ptxprint_telemetry","blobs":[{"position":1,"column":"blob1","name":"event_type","desc":"mcp_request | tool_call | job_phase | job_terminal"},{"position":2,"column":"blob2","name":"method","desc":"JSON-RPC method (e.g. tools/call, initialize)"},{"position":3,"column":"blob3","name":"tool_name","desc":"MCP tool name when method is tools/call"},{"position":4,"column":"blob4","name":"consumer_label","desc":"self-declared caller identity"},{"position":5,"column":"blob5","name":"consumer_source","desc":"header | query | client_info | user_agent | unknown"},{"position":6,"column":"blob6","name":"worker_version","desc":"worker code version string at write time"},{"position":7,"column":"blob7","name":"phase","desc":"job lifecycle phase (job_phase / job_terminal events only)"},{"position":8,"column":"blob8","name":"failure_mode","desc":"success | soft | hard | cancelled | timeout (job_terminal only)"},{"position":9,"column":"blob9","name":"cache_outcome","desc":"hit | miss | n/a (mcp_request when tool_name = submit_typeset)"},{"position":10,"column":"blob10","name":"payload_hash_prefix","desc":"first 8 hex chars of canonical payload sha256"},{"position":11,"column":"blob11","name":"docs_audience","desc":"headless | gui (docs() tool only)"},{"position":12,"column":"blob12","name":"docs_top_uri","desc":"klappy://canon/... URI of the top-ranked docs() result"}],"doubles":[{"position":1,"column":"double1","name":"count","desc":"always 1, present so SUM(_sample_interval) yields call counts"},{"position":2,"column":"double2","name":"duration_ms","desc":"wall-clock duration of the event at the layer that wrote it"},{"position":3,"column":"double3","name":"bytes_in","desc":"request body size (mcp_*) or input payload size (job_*)"},{"position":4,"column":"double4","name":"bytes_out","desc":"response body size (mcp_*) or PDF byte count (job_terminal success)"},{"position":5,"column":"double5","name":"sources_count","desc":"number of source URLs in payload (submit_typeset)"},{"position":6,"column":"double6","name":"fonts_count","desc":"number of font URLs in payload (submit_typeset)"},{"position":7,"column":"double7","name":"figures_count","desc":"number of figure URLs in payload (submit_typeset)"},{"position":8,"column":"double8","name":"passes_completed","desc":"autofill pass count when the job stopped"},{"position":9,"column":"double9","name":"overfull_count","desc":"Overfull \\hbox warnings in run log"},{"position":10,"column":"double10","name":"pages_count","desc":"page count of produced PDF (job_terminal with failure_mode=success)"}],"notes":["Cloudflare Analytics Engine stores writes as positional blob1..20 and double1..20.","Use semantic field names in your SQL — telemetry_public auto-rewrites them to positional refs.","Or query positionally with blob1..12 and double1..10 directly; both work.","Use SUM(_sample_interval) instead of COUNT(*) to account for AE sampling.","Always include a timestamp filter, e.g. WHERE timestamp > NOW() - INTERVAL '30' DAY."]}