跳到正文
Simon Willison·· 11 天前AI 评分22

用 Parseable 与 Datasette 处理 OpenTelemetry traces

Using Parseable with Datasette for OpenTelemetry traces

AI 导读

Parseable 是一款兼容 OpenTelemetry 的全新可观测性工具,提供 AGPL 开源 Rust 实现(单个约 180MB 二进制文件)、企业版和云托管选项。

正文 · 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 本地 Web 应用程序中显示的 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