mirror of
https://github.com/simonw/datasette.git
synced 2026-09-09 01:54:15 +02:00
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
72 lines
2.5 KiB
ReStructuredText
72 lines
2.5 KiB
ReStructuredText
Datasette
|
|
=========
|
|
|
|
|PyPI| |Changelog| |Python 3.x| |Tests| |License| |docker:
|
|
datasette| |discord|
|
|
|
|
.. |PyPI| image:: https://img.shields.io/pypi/v/datasette.svg
|
|
:target: https://pypi.org/project/datasette/
|
|
.. |Changelog| image:: https://img.shields.io/github/v/release/simonw/datasette?label=changelog
|
|
:target: https://docs.datasette.io/en/stable/changelog.html
|
|
.. |Python 3.x| image:: https://img.shields.io/pypi/pyversions/datasette.svg?logo=python&logoColor=white
|
|
:target: https://pypi.org/project/datasette/
|
|
.. |Tests| image:: https://github.com/simonw/datasette/workflows/Test/badge.svg
|
|
:target: https://github.com/simonw/datasette/actions?query=workflow%3ATest
|
|
.. |License| image:: https://img.shields.io/badge/license-Apache%202.0-blue.svg
|
|
:target: https://github.com/simonw/datasette/blob/main/LICENSE
|
|
.. |docker: datasette| image:: https://img.shields.io/badge/docker-datasette-blue
|
|
:target: https://hub.docker.com/r/datasetteproject/datasette
|
|
.. |discord| image:: https://img.shields.io/discord/823971286308356157?label=discord
|
|
:target: https://datasette.io/discord
|
|
|
|
*An open source multi-tool for exploring and publishing data*
|
|
|
|
Datasette is a tool for exploring and publishing data. It helps people take data of any shape or size and publish that as an interactive, explorable website and accompanying API.
|
|
|
|
Datasette is aimed at data journalists, museum curators, archivists, local governments and anyone else who has data that they wish to share with the world. It is part of a :ref:`wider ecosystem of tools and plugins <ecosystem>` dedicated to making working with structured data as productive as possible.
|
|
|
|
`Explore a demo <https://fivethirtyeight.datasettes.com/fivethirtyeight>`__, watch `a presentation about the project <https://static.simonwillison.net/static/2018/pybay-datasette/>`__.
|
|
|
|
Interested in learning Datasette? Start with `the official tutorials <https://datasette.io/tutorials>`__.
|
|
|
|
Support questions, feedback? Join the `Datasette Discord <https://datasette.io/discord>`__.
|
|
|
|
Contents
|
|
--------
|
|
|
|
.. toctree::
|
|
:maxdepth: 3
|
|
|
|
getting_started
|
|
installation
|
|
configuration
|
|
ecosystem
|
|
cli-reference
|
|
pages
|
|
publish
|
|
deploying
|
|
json_api
|
|
sql_queries
|
|
authentication
|
|
performance
|
|
csv_export
|
|
binary_data
|
|
facets
|
|
full_text_search
|
|
spatialite
|
|
metadata
|
|
settings
|
|
introspection
|
|
custom_templates
|
|
template_context
|
|
plugins
|
|
writing_plugins
|
|
javascript_plugins
|
|
plugin_hooks
|
|
testing_plugins
|
|
plugin_telemetry
|
|
internals
|
|
events
|
|
upgrade_guide
|
|
contributing
|
|
changelog
|