跳到正文
原文
Simon Willison·· 9 天前AI 评分46

使用 Parseable 配合 Datasette 查看 OpenTelemetry traces

Using Parseable with Datasette for OpenTelemetry traces

AI 导读

Parseable 可接收并展示 Datasette 的 OpenTelemetry traces,作者借助 Codex 跑通了配置。Parseable 是兼容 OpenTelemetry 的新观测平台,提供 AGPL 开源 Rust 实现(约 180MB 单文件二进制)、Enterprise 版与云端托管选项。

正文 · AI 翻译

TIL 将 Parseable 与 Datasette 结合用于 OpenTelemetry 追踪 — [Parseable](https://www.parseable.com) 是一款全新的可观测性工具,兼容 [OpenTelemetry](https://opentelemetry.io),用于存储和查询可观测性数据。

今天我在 Show HN 上看到了 Parseable——它是一个新的可观测性平台,既有开源(AGPL)的 Rust 实现(一个约 180MB 的单一二进制文件),也有具备额外功能的“企业”版本和云端托管选项。

既然 Datasette 1.0a41 已添加 OpenTelemetry 支持(感谢 Alex Garcia),我决定启动 Codex,让它弄清楚如何运行 Parseable 并将 Datasette 的追踪数据输送给它。

这是我(人工撰写的)TIL,展示了可行的模式,以下是在 Parseable localhost 网页应用中显示的 Datasette 追踪截图:

Screenshot of a trace detail view in an observability web app, with a span waterfall overlaid on a dimmed navigation sidebar and filter column. Dimmed sidebar: breadcrumb "Community > Traces > datas" (cut off), search box "Search... ⌘K", nav items "Home", "Ingest telemetry", section "ANALYZE": "Keystone", "Dashboards", "SQL Editor", section "OBSERVE": "Logs", "Metrics", "Traces" (selected), "APM", "Agents", section "MONITOR": "Alerts", "Errors", section "DATA": "Datasets", and at the bottom "Settings", "Book a call", "Support". Dimmed filter column, cut off at the right edge: "Search fi", "Core", "Log format", "User agent", "Source IPs", "Error", "Service", "service.ins", "service.na", "datasett" (checked), "Span", "Database", "HTTP", "http.reque", "NULL" (unchecked), "GET" (checked), "http.respo", "http.route", "Server", "server.add", "Telemetry", "URL", "All fields". Trace panel header: "Trace detail > 6f819a2170bcd1e91c6ea3ae236ec60b" with a copy icon, a "Related logs" button and a close X. Summary: "Start time 6:56 PM, Oct 6, 2026 UTC", "Duration 40.9 ms", "Spans 247". A minimap with axis "0ns 10.2ms 20.5ms 30.7ms 40.9ms" shows many short span bars cascading diagonally from top left toward the lower middle, with a few longer bars. Below is a span table with a "Span name" header, a "Search spans..." box, collapse and expand buttons, and a timeline axis "0ns 10.2ms 20.5ms 30.7ms 40.9ms". Rows (name, service, duration): root span with collapse toggle "123", "GET /..." "datasette..." 40.9ms spanning the full timeline; then alternating rows where each "db.query" has a collapse toggle "1": db.query datasette-local 679µs, db.query.execute datasette-local 278µs, db.query datasette-local 341µs, db.query.execute datasette-local 55µs, db.query datasette-local 357µs, db.query.execute datasette-local 197µs, db.query datasette-local 330µs, db.query.execute datasette-local 73µs, db.query datasette-local 2.26ms, db.query.execute datasette-local 2.02ms, db.query datasette-local 232µs, db.query.execute datasette-local 64µs, db.query datasette-local 207µs, db.query.execute datasette-local 71µs, db.query datasette-local 6.11ms. The child span bars start progressively later across the early part of the timeline.

来源:Simon Willison · simonwillison.net