Bỏ qua tới nội dung
Mục lục

Monitor bằng SDK Sentry chính thức

Python, Node.js và các SDK Sentry khác gửi check-in tới Belvador bằng API crons của chính chúng; cái nào đã kiểm, cái nào chưa.

Bản Markdown
Trong bài này

Các SDK Sentry chính thức có API crons gửi đúng loại check-in mà Belvador hiểu. Trỏ SDK vào DSN Belvador và dùng API đó như tài liệu của Sentry; không cần gói Belvador nào.

SDK nào đã được kiểm#

SDKTrạng thái
Python sentry-sdkĐã kiểm: một test trong repo chạy nó với edge và node Belvador cục bộ
Node.js @sentry/nodeĐã kiểm theo cùng cách
Go, PHP, Ruby, Java, .NETCùng giao thức, chưa được Belvador kiểm. Lẽ ra chạy được; nếu không, báo chúng tôi qua hello@belvador.dev

Bảng đầy đủ, sinh từ cùng nguồn với các test, nằm ở Bảng năng lực theo runtime.

Python#

Cài SDK như ở Python, rồi gắn decorator cho job:

Python
from sentry_sdk.crons import monitor@monitor(monitor_slug="nightly-invoices", monitor_config={"schedule": {"type": "crontab", "value": "0 2 * * *"}, "timezone": "UTC"})def nightly_invoices():    ...  # your job

monitor_config tạo monitor từ code ở check-in đầu tiên (xem tạo từ code). Bỏ nó đi nếu dùng monitor tạo trong Belvador. Task Celery beat có thể dùng tích hợp Celery của Sentry với monitor_beat_tasks=True; check-in vẫn như vậy.

Node.js#

Cài SDK như ở Node.js, rồi bọc job:

JavaScript
import * as Sentry from "@sentry/node";await Sentry.withMonitor("nightly-invoices", async () => {  // Your job.}, { schedule: { type: "crontab", value: "0 2 * * *" }, timezone: "UTC" });

Ngôn ngữ khác#

Dùng hàm "crons" hoặc "check-in" của SDK với slug của monitor. Hai quy tắc để chạy đúng với Belvador:

  • Gửi in_progress lúc bắt đầu và ok hoặc error với cùng check-in id lúc kết thúc. Một ok không có lúc bắt đầu hoạt động như heartbeat.

  • Giữ monitor_config trong giới hạn của Belvador: lịch crontab (5 trường) hoặc interval, checkin_margin 1–1440, max_runtime 1–10080, ngưỡng 1–720. max_runtime quá 7 ngày bị cắt về 7 ngày như Sentry; giá trị khác nằm ngoài các khoảng này khiến Belvador bỏ qua monitor_config đó — bản thân check-in vẫn được ghi.

Không có SDK nào thì dùng check-in qua HTTP.

Tính năng Sentry không áp dụng#

Belvador chỉ nhận lỗi và check-in. Trace hiệu năng, profile, replay và log mà SDK Sentry có thể gửi đều không được lưu: node của bạn đếm chúng là không hỗ trợ và bỏ đi. Hãy tắt trong SDK để đỡ tốn băng thông (traces_sample_rate=0 ở Python, tracesSampleRate: 0 ở Node.js).

Bài viết về chủ đề này

Tất cả bài viết

Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev