OpenTelemetry tích hợp sẵn của Deno
Bật OTEL_DENO để Deno tự tạo span cho Deno.serve và fetch, gửi console thành log; giới hạn khi exporter không gửi lại và cách khắc phục.
Trong bài này
Deno 2 có sẵn OpenTelemetry. Chỉ với một biến, Deno tạo span server cho mỗi request Deno.serve, span client cho mỗi fetch, gửi đầu ra console.* thành bản ghi log mang trace ID đang chạy, và xuất dữ liệu theo bộ biến chuẩn. Không cần cài gói nào.
Đã kiểm ngày 2026-10-24 với deno 2.6.10: traces đạt, logs đạt, log mang trace/span của request. Giới hạn đã kiểm: không gửi lại khi 429/503.
Chạy#
export OTEL_DENO=truedeno run --allow-net --allow-env main.tsDeno 2.2 và 2.3 còn cần thêm cờ --unstable-otel; các bản hiện nay thì không.
Logs#
console.log thành bản ghi INFO, console.warn thành WARN và console.error thành ERROR, mỗi bản ghi mang trace ID và span ID của request nó chạy trong đó. Đầu ra vẫn hiện trên terminal như trước.
Giới hạn: không gửi lại#
Lần chạy của Belvador cho thấy exporter có sẵn của Deno không gửi lại một lô sau khi nhận 429 hoặc 503 — lô đó bị mất. Belvador chỉ trả các mã này khi chạm hạn mức hoặc giới hạn tốc độ, hoặc khi edge tạm thời không nhận được, nhưng nếu khi đó mất một lô là đáng kể, hãy chạy một Collector cạnh app và cho Deno gửi tới nó; Collector có hàng đợi và gửi lại:
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318unset OTEL_EXPORTER_OTLP_HEADERS # Collector giữ khoá BelvadorPhép kiểm này chạy lại ở mỗi lần chứng nhận, nên ghi chú sẽ tự biến mất khi Deno bắt đầu gửi lại.
Deno Deploy#
Deno Deploy tự cấu hình telemetry của nó; việc gửi telemetry đó tới Belvador chưa được kiểm.
Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev