maple-telemetry-conventions
Installation
SKILL.md
Maple Telemetry Conventions
Reference for the language-agnostic OpenTelemetry conventions Maple uses across TypeScript (apps/api, Cloudflare workers in packages/effect-sdk/), Rust (apps/ingest), and future Python services. These conventions are load-bearing — Tinybird materialized views pre-extract certain attribute keys into columns, dashboards filter on Title Case status strings, and sampling-aware throughput math relies on the SampleRate column. Use the exact attribute spellings here in every language.
When to apply
- Adding
setAttribute/Effect.annotateCurrentSpan/Span::current().record(...)/#[instrument(fields(...))]to any code path - Setting span status (Ok / Error / Unset)
- Wiring a new query through
WarehouseQueryService.compiledQuery()(thecontextandprofileoptions become span attributes) - Configuring an OTLP exporter, tracer provider, or resource builder
- Introducing a new pre-extracted MV column or a new vendor attribute under
maple.* - Reviewing a PR that touches
apps/api/src/services/WarehouseQueryService.ts,apps/ingest/src/main.rs,apps/api/src/app.ts,packages/effect-sdk/src/cloudflare/, orpackages/domain/src/tinybird/materializations.ts