datasette/docs
Alex Garcia f28db54eda Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs
A survey of five plugin OTel plans (datasette-paper, -agent, -litestream,
-accounts, -cron) found every one hand-copying the same core machinery:
the registry classes, the conformance-test harness, the pytest fixtures,
the bucket boundaries and the detached-root-with-Link recipe. This makes
that machinery importable instead:

- The registry classes are documented public API. Attribute gains
  values= (a closed enum the conformance helpers enforce - what makes an
  attribute safe as a metric dimension); SpanName gains prefix=True for
  span families like "chat {model}" whose names share a fixed prefix,
  matched by span_for() after exact names. span_for()/attribute helpers
  accept a spans= tuple so plugin registries can use them.
- datasette.telemetry.linked_root_span_kwargs(): the root-span-with-Link
  shape for work a request caused without containing - background jobs,
  scheduled ticks, block=False writes. Core's own write thread now uses
  it instead of building the kwargs inline.
- datasette.telemetry_testing: the session provider fixtures, otel_spans
  / otel_metrics, a two-way registry conformance checker (including enum
  and prefix handling, filtered by instrumentation scope) and an
  assert_package_never_imports_sdk() guard. Core's conftest now imports
  these instead of defining them, so the suite consumes the kit exactly
  as a plugin's would.
- New "Telemetry for plugin authors" docs page: scope discipline,
  registry usage, privacy/cardinality rules, named-callable guidance,
  request_span(), the background root-with-link convention (one root per
  tick, always emitted), provider-ordering facts and known caveats.
  request_span() is now documented public API.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012U7coQfVu8nK2R4q2mCULA
2026-09-02 14:21:14 -07:00
..
_static Add favicon to documentation (#1967) 2022-12-31 11:00:31 -08:00
_templates Drop jQuery dependency 2023-03-26 16:38:58 -07:00
.gitignore Added initial docs, including a changelog 2017-11-16 07:11:00 -08:00
authentication.rst Better permission debug tools and documentation 2026-07-14 08:40:07 -07:00
auto-build.sh Added --load-extension argument to datasette serve 2017-11-16 08:48:49 -08:00
binary_data.rst Support BLOB values in row edit UI 2026-07-03 16:09:27 -07:00
changelog.rst Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs 2026-09-02 14:21:14 -07:00
cli-reference.rst max_post_body_bytes setting, enforced for reuest.post_body() 2026-07-03 17:42:39 -07:00
codespell-ignore-words.txt Move Metadata to --internal database 2024-06-11 09:33:23 -07:00
conf.py Upgrade to ruff>=0.16.0 (#2857) 2026-07-25 15:47:08 -07:00
configuration.rst textarea column type 2026-06-13 22:18:45 -07:00
contributing.rst Add cache-busted static asset helper (#2804) 2026-06-23 13:44:58 -07:00
csv_export.rst Use shot-scraper images from datasette-screenshots repo, closes #1844 2022-10-14 12:57:00 -07:00
custom_templates.rst Improve docs structure for static(), refs #2804, #2800 2026-06-23 13:59:01 -07:00
datasette-0.51.png Release 0.51 2020-10-31 15:21:49 -07:00
datasette-logo.svg Added new logo to the documentation 2020-07-12 12:53:29 -07:00
deploying.rst Add test for RST heading underline lengths, closes #2544 2025-10-26 09:49:49 -07:00
ecosystem.rst Shrunk ecosystem docs in favour of datasette.io, closes #1182 2021-01-09 14:17:18 -08:00
events.md RenameTableEvent, plus write connection track_event() mechanism (#2682) 2026-03-30 11:20:46 -07:00
facets.rst Move table configuration docs from metadata.rst to configuration.rst (#2668) 2026-03-17 08:47:04 -07:00
full_text_search.rst Move table configuration docs from metadata.rst to configuration.rst (#2668) 2026-03-17 08:47:04 -07:00
getting_started.rst Replace Glitch with Codespaces, closes #2488 2025-05-28 19:17:22 -07:00
index.rst Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs 2026-09-02 14:21:14 -07:00
installation.rst Remove Datasette Desktop from installation guide 2026-07-07 14:04:46 -07:00
internals.rst Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs 2026-09-02 14:21:14 -07:00
introspection.rst /-/plugins.json is now an array of objects again (#2843) 2026-07-13 21:19:04 -07:00
javascript_plugins.rst Better docs for makeJumpSections() 2026-06-14 16:28:09 -07:00
json_api.rst /-/jump is a stable documented endpoint, not a debug exemption 2026-07-07 00:25:09 +00:00
json_api_doc.py Upgrade to ruff>=0.16.0 (#2857) 2026-07-25 15:47:08 -07:00
Makefile Document custom json encoder (#1996) 2026-06-23 16:24:03 -07:00
metadata.rst Move table configuration docs from metadata.rst to configuration.rst (#2668) 2026-03-17 08:47:04 -07:00
metadata_doc.py Upgrade to ruff>=0.16.0 (#2857) 2026-07-25 15:47:08 -07:00
pages.rst Unify page-size parameters on _size with table semantics 2026-07-04 17:54:03 +00:00
performance.rst Release 0.63a1 2022-10-23 20:07:09 -07:00
plugin_hooks.rst Return 401 for invalid or expired bearer tokens 2026-07-04 15:18:12 +00:00
plugin_telemetry.rst Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs 2026-09-02 14:21:14 -07:00
plugins.rst Advise plugin authors on naming secret configuration keys 2026-07-06 23:09:10 +00:00
publish.rst Remove all remaining "$ " prefixes from docs, closes #2140 2023-08-11 10:44:34 -07:00
settings.rst max_post_body_bytes setting, enforced for reuest.post_body() 2026-07-03 17:42:39 -07:00
spatialite.rst Renamed canned queries to queries / stored queries in docs 2026-05-26 15:17:51 -07:00
sql_queries.rst Return 400 for write canned-query SQL failures 2026-07-04 14:35:54 +00:00
telemetry_doc.py Add a plugin telemetry kit: public registry API, linked_root_span_kwargs, test helpers, docs 2026-09-02 14:21:14 -07:00
template_context.rst Remove the next_url extra - the key is always present 2026-07-06 23:59:53 +00:00
template_context_doc.py Upgrade to ruff>=0.16.0 (#2857) 2026-07-25 15:47:08 -07:00
testing_plugins.rst datasette.fixtures module, closes #2733 2026-05-21 23:05:37 -07:00
upgrade-1.0a20.md Renamed canned queries to queries / stored queries in docs 2026-05-26 15:17:51 -07:00
upgrade_guide.md Replace token-based CSRF with Sec-Fetch-Site header protection (#2689) 2026-04-14 17:11:36 -07:00
writing_plugins.rst Add cache-busted static asset helper (#2804) 2026-06-23 13:44:58 -07:00