mirror of
https://github.com/simonw/datasette.git
synced 2026-09-29 13:24:07 +02:00
Review polish: changelog entry, comment dedupe, semconv note, 404 route test
- Add the missing changelog bullet for the HTTP request span - the most user-visible signal in the stack had no entry. - State the deliberate deviation on server.address: it is the verbatim Host header including any :port, not the semconv address/port split. - Deduplicate the is_recording()-vs-is_valid rationale: the middleware fast path keeps the full telling, request_span() now points at it. - Trim the http.route regex rationale in the docs intro to a pointer at the attribute description, halve the httpx raw_path digression, drop a comment that restated the call below it, and leave client-IP policy to the privacy section instead of the user_agent description. - Assert the routed 404 still carries http.route and an enriched span name - route enrichment must not be gated on a successful response. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012U7coQfVu8nK2R4q2mCULA
This commit is contained in:
parent
e8ab045249
commit
347cac7a04
5 changed files with 18 additions and 21 deletions
|
|
@ -10,6 +10,7 @@ Unreleased
|
|||
----------
|
||||
|
||||
- Datasette's database layer now emits `OpenTelemetry <https://opentelemetry.io/>`__ spans: one per query, covering the full round trip including time spent waiting for a SQL worker thread, plus separate child spans for the execution itself and for time spent in the write queue. Callback-style calls - :ref:`db.execute_fn() <database_execute_fn>`, :ref:`db.execute_write_fn() <database_execute_write_fn>` and ``db.execute_isolated_fn()``, the documented way for plugins to run arbitrary SQL - are covered too, carrying ``datasette.callback`` in place of the SQL text. Datasette core depends on ``opentelemetry-api`` only and never installs an SDK provider, an exporter or a sampler, so there is no effect and no measurable overhead unless tracing is switched on externally - normally with the standard ``opentelemetry-instrument`` agent. See :ref:`internals_telemetry`. (:issue:`1730`)
|
||||
- Every HTTP request now gets an OpenTelemetry ``SERVER`` span, named after the request method and matched route, carrying ``http.route``, the response status and W3C trace context extracted from inbound headers - so every database span has a request to belong to, and Datasette joins distributed traces started by a proxy or calling service. The query string is never recorded. See :ref:`internals_telemetry_requests`. (:issue:`1730`)
|
||||
|
||||
Nothing is removed by the OpenTelemetry work: the ``?_trace=1`` query string parameter, the ``trace_debug`` setting and the :ref:`internals_tracer` module all continue to work as before.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue