ipx-web's spans are named for the request (#286)

Caddy named every span ipx-web, so Tempo's lists and trace view showed the
same name for each request. Caddy 2.11 takes placeholders in the span name:
now the method and path, as ipx names its own. The prod check's span list
shows a span's url.path when it has no route.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-18 20:04:10 +00:00
parent 3df7c974e8
commit 187729a278
3 changed files with 5 additions and 2 deletions

View File

@@ -68,7 +68,7 @@ def main():
for ss in t.get("spanSets") or [t.get("spanSet") or {}]: for ss in t.get("spanSets") or [t.get("spanSet") or {}]:
for sp in ss.get("spans", []): for sp in ss.get("spans", []):
attrs = {a["key"]: next(iter(a["value"].values()), None) for a in sp.get("attributes", [])} attrs = {a["key"]: next(iter(a["value"].values()), None) for a in sp.get("attributes", [])}
what = attrs.get("http.route") or attrs.get("of") or sp.get("name") or "" what = attrs.get("http.route") or attrs.get("of") or attrs.get("url.path") or sp.get("name") or ""
rows.append((int(sp.get("durationNanos", 0)) / 1e6, int(sp["startTimeUnixNano"]), t["traceID"], what)) rows.append((int(sp.get("durationNanos", 0)) / 1e6, int(sp["startTimeUnixNano"]), t["traceID"], what))
for ms, ts, tid, what in sorted(rows, reverse=True): for ms, ts, tid, what in sorted(rows, reverse=True):
when = time.strftime("%m-%d %H:%M:%S", time.gmtime(ts / 1e9)) when = time.strftime("%m-%d %H:%M:%S", time.gmtime(ts / 1e9))

View File

@@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- An OPML subscription's page lists the items of all its shows together, newest first, with the same tabs, search and sort as a show's, in place of a list of the shows; the shows are still in the folder in the feed list (#283). - An OPML subscription's page lists the items of all its shows together, newest first, with the same tabs, search and sort as a show's, in place of a list of the shows; the shows are still in the folder in the feed list (#283).
- Unless the server pays for them, Signals are turned on in Settings with your own TypeSafe key, and the Signals folder shows only once they are on (#271). - Unless the server pays for them, Signals are turned on in Settings with your own TypeSafe key, and the Signals folder shows only once they are on (#271).
- A Signal's dialog says how far back it reads, and that an edit reads again only what was picked out (#276). - A Signal's dialog says how far back it reads, and that an edit reads again only what was picked out (#276).
- Each request's span in Tempo is named for its method and path, such as `GET /api/entries`, instead of `ipx-web` for every one (#286).
## [1.1.0] - 2026-10-16 ## [1.1.0] - 2026-10-16

View File

@@ -30,7 +30,9 @@
(tracing-on) { (tracing-on) {
tracing { tracing {
span ipx-web # Named for the request, as ipx names its own (#286): one name for all left every span in
# Tempo looking the same.
span "{http.request.method} {http.request.uri.path}"
} }
} }
(tracing-off) { (tracing-off) {