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:
@@ -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))
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user