# Belvador > Belvador is error tracking for web apps, with OpenTelemetry traces and logs, cron monitors, uptime checks and SLOs. Each workspace connects its own Hetzner Cloud account; Belvador sets up and maintains a server (the node) there, and errors, traces and logs are stored on that node, not by Belvador. SDKs: @belvador/browser, @belvador/react, @belvador/tanstack-start, @belvador/cloudflare; Node.js and Python use the official Sentry SDKs with a Belvador DSN; traces and logs come from standard OpenTelemetry SDKs. Each link is the Markdown copy of a page. The same page as HTML: https://belvador.dev/en/docs/. Setup code in these pages is the code the Belvador app shows; replace the DSN placeholder with the project's own DSN from Project settings → DSN keys. Tài liệu cũng có bằng tiếng Việt (mục “Tiếng Việt” bên dưới). ## English ### Get started - [What is Belvador](https://belvador.dev/api/public/docs/en/overview): Error tracking, traces, logs, cron and uptime monitoring for your apps, with the data on your workspace's own Hetzner server, set up and maintained by Belvador. - [Quickstart](https://belvador.dev/api/public/docs/en/quickstart): From a new account to your first issue: create a workspace, connect Hetzner, create a project, install the SDK and send a test error. - [Projects and DSN](https://belvador.dev/api/public/docs/en/projects-and-dsn): Each app is one project with its own DSN. How to create a project, find the DSN, rotate or revoke keys and set intake limits. ### SDKs by platform - [Choose the right SDK](https://belvador.dev/api/public/docs/en/sdk/overview): Supported platforms, versions, requirements and what the Belvador SDK sends — and does not send. - [JavaScript in the browser](https://belvador.dev/api/public/docs/en/sdk/browser): Install @belvador/browser for websites and browser apps that do not use React. - [React 18 and React 19](https://belvador.dev/api/public/docs/en/sdk/react): Install @belvador/react for browser React apps (Vite, SPA), with separate wiring for React 18 and React 19. - [TanStack Start and Lovable](https://belvador.dev/api/public/docs/en/sdk/tanstack-start): Wire @belvador/tanstack-start into both the browser and the Cloudflare Workers server: router, server entry and middleware. - [Cloudflare Workers](https://belvador.dev/api/public/docs/en/sdk/cloudflare): Wrap your Worker with withBelvador so every invocation gets its own scope and errors are sent while responses stay unchanged. - [Node.js (Sentry-compatible SDK)](https://belvador.dev/api/public/docs/en/sdk/node): Use the official Sentry SDK for Node.js with a Belvador DSN and the data-scrubbing hook Belvador provides. - [Bun (Sentry-compatible SDK)](https://belvador.dev/api/public/docs/en/sdk/bun): Use the official Sentry SDK for Bun with a Belvador DSN, Belvador's scrubbing and an on-disk queue while your node is unreachable. - [Supabase Edge Functions](https://belvador.dev/api/public/docs/en/sdk/supabase-edge): One shared file on Sentry's Deno SDK: each function's errors are sent before it answers, query { data, error } results included. - [Python (Sentry-compatible SDK)](https://belvador.dev/api/public/docs/en/sdk/python): Use the official sentry-sdk for Python with a Belvador DSN and the data-scrubbing hook Belvador provides. - [Verify the connection](https://belvador.dev/api/public/docs/en/sdk/verify): Prove that every runtime of your app reports errors to the right project: verifyIntegration(), a tagged error for any SDK, diagnostic codes and connection problem codes. ### Configure the SDK - [SDK API reference](https://belvador.dev/api/public/docs/en/sdk/reference): Every public function, component and type in the @belvador/* packages, by import path. - [SDK options](https://belvador.dev/api/public/docs/en/sdk/configuration): release, environment, sampling, ignoring errors, opt-in breadcrumbs and attachments, delivery and queue limits. - [Offline and durable delivery](https://belvador.dev/api/public/docs/en/sdk/offline): Keep errors that cannot be sent yet: jittered retries, an IndexedDB queue with offline: true in browsers, and @belvador/spool on disk for Node.js, Bun and Deno. - [Report errors from { data, error } clients](https://belvador.dev/api/public/docs/en/sdk/database-errors): captureResult() reports the errors Supabase, PostgREST and other clients return instead of throwing: one event typed by its Postgres code, grouped by type and operation, never the SQL. - [Link errors across tiers with traces](https://belvador.dev/api/public/docs/en/sdk/tracing): Turn on tracePropagation so browser errors, server errors and job runs from one request show up together under “Same trace”. - [Migrate from Sentry to Belvador](https://belvador.dev/api/public/docs/en/sdk/migration): Replace an existing Sentry SDK with the matching Belvador package without reporting errors twice. - [Source maps](https://belvador.dev/api/public/docs/en/source-maps): Upload source maps to your node so stack traces show the original file, line and function — and what has and has not been verified. - [Data protection and scrubbing](https://belvador.dev/api/public/docs/en/privacy): What the SDK and the node remove or mask, what cannot be guaranteed, and how to check it safely. - [Capabilities by runtime](https://belvador.dev/api/public/docs/en/reference/capabilities): What each runtime can send to Belvador: automatic, you call it, or not possible — and which ones a test proves. ### Traces, logs and metrics (OpenTelemetry) - [Traces and logs with OpenTelemetry](https://belvador.dev/api/public/docs/en/otel/overview): Belvador takes OTLP traces and logs from standard OpenTelemetry SDKs, stores them on your node and links them to errors; metrics when you turn them on; which runtimes are tested and what is not collected. - [Send your first traces and logs](https://belvador.dev/api/public/docs/en/otel/quickstart): Create an ingest key, set the standard OTEL_* environment variables, run your app with its runtime's instrumentation and check the OTLP connection in Belvador. - [OTLP connection check: prove traces and logs reach the right project](https://belvador.dev/api/public/docs/en/otel/verify): What the Connection tab shows, running the check with curl or from your own SDK, what a pass proves, and what to do when a step stays waiting. - [OpenTelemetry for Node.js (CommonJS and ES modules)](https://belvador.dev/api/public/docs/en/otel/node): Zero-code instrumentation with auto-instrumentations-node, the ES modules loader hook, Pino/Winston logs linked to traces, and running it in Docker or on a PaaS. - [OpenTelemetry for Python](https://belvador.dev/api/public/docs/en/otel/python): opentelemetry-instrument for Flask, Django, FastAPI and requests; turn on the logging handler so logs carry traces; running under Gunicorn or uWSGI. - [OpenTelemetry for Go](https://belvador.dev/api/public/docs/en/otel/go): One setup function that reads the standard OTEL_* variables, otelhttp for servers and clients, otelslog for logs with traces, and flushing on shutdown. - [OpenTelemetry for Java (the Java agent)](https://belvador.dev/api/public/docs/en/otel/java): Attach the OpenTelemetry Java agent with -javaagent and no code changes: HTTP servers and clients, JDBC, java.util.logging/Logback/Log4j logs; Spring Boot and containers. - [Deno's built-in OpenTelemetry](https://belvador.dev/api/public/docs/en/otel/deno): Turn on OTEL_DENO so Deno creates spans for Deno.serve and fetch and sends console output as logs; the no-retry limitation and how to work around it. - [Send through the OpenTelemetry Collector](https://belvador.dev/api/public/docs/en/otel/collector): A standard Collector config that receives OTLP gRPC/HTTP from your apps and forwards to Belvador with otlphttp, a memory limit, batching, a queue and retries. - [Metrics with OpenTelemetry](https://belvador.dev/api/public/docs/en/otel/metrics): Turn on OTLP metrics, what is stored, reading them by aggregation, filter and group, the series limits that keep cost predictable, privacy and metric alerts. - [Metrics recipes: hosts, queues, business, Supabase](https://belvador.dev/api/public/docs/en/otel/metrics-recipes): Collector configs for Linux and Windows host metrics, queue depth and age gauges, business metrics, and Postgres metrics from the Supabase Metrics API. - [Traces and logs for TanStack Start apps](https://belvador.dev/api/public/docs/en/otel/tanstack-start): By where the app runs: your own Node.js server, your own Cloudflare account, or Lovable hosting. - [Cloudflare Workers' built-in traces and logs export to Belvador](https://belvador.dev/api/public/docs/en/otel/cloudflare-workers): Two OTLP destinations in the Cloudflare dashboard, the observability block in wrangler.jsonc, what you get and the current limits. - [Traces from Vercel and Next.js: from the app or with a Trace Drain](https://belvador.dev/api/public/docs/en/otel/nextjs-vercel): The OpenTelemetry Node SDK in instrumentation.ts, Trace Drains on Pro and Enterprise, and why Log Drains need a Collector. - [Supabase log drains to Belvador over OTLP](https://belvador.dev/api/public/docs/en/otel/supabase-log-drains): Send Postgres, Auth, Storage, Edge Functions, Realtime and API gateway logs to Belvador with an OpenTelemetry drain, with privacy and volume notes. - [Logging bridges: send your existing logger's lines as OpenTelemetry logs](https://belvador.dev/api/public/docs/en/otel/logging-bridges): Pino, Bunyan, Winston, Python logging, slog, Logback and Deno's console as log records with severity, attributes and the request's trace id. - [Sentry SDKs for errors while OpenTelemetry owns tracing](https://belvador.dev/api/public/docs/en/otel/sentry-coexistence): One tracing owner and the bridge that puts trace ids on errors: Sentry 10 and 11 for Node.js, OTLPIntegration for Python, sentry-go and sentry-java. - [Traces, logs and sensitive data](https://belvador.dev/api/public/docs/en/otel/privacy): What the node filters before storing — secrets, headers, query strings, IPs, SQL literals, hashed user ids — and what not to turn on in your instrumentation. - [Trace sampling, quotas and node capacity](https://belvador.dev/api/public/docs/en/otel/sampling-and-cost): Monthly quotas, rate limits, retention and the node disk budget; how to sample by trace without breaking traces that cross services. - [No traces or logs: finding the cause](https://belvador.dev/api/public/docs/en/otel/troubleshooting): By symptom: no data at all, 401/403, 413, 429, a root span without children, logs not linked to traces, working in dev but empty in production. - [OTLP endpoint reference](https://belvador.dev/api/public/docs/en/reference/otlp): Paths, authentication, content types, compression, response codes, Retry-After and the per-request limits of OTLP/HTTP sent to Belvador. - [OpenTelemetry environment variable reference for Belvador](https://belvador.dev/api/public/docs/en/reference/otel-env): Export, identity, sampling, batching and off-switch variables, plus the runtime-specific ones Belvador's recipes use. ### Monitor background work - [Monitors: know when background work fails or never runs](https://belvador.dev/api/public/docs/en/monitors/overview): Monitors watch scheduled jobs, queues and workers: a run that fails, runs too long, ends with an unknown result or never happens opens an incident. - [Ping URLs: get alerted when scheduled work goes quiet](https://belvador.dev/api/public/docs/en/monitors/heartbeat): Each monitor has one secret URL; your job calls it when done and adds /fail on failure. Belvador alerts when the pings stop — even if your app, database or node is down. - [Add monitors with the Belvador SDK](https://belvador.dev/api/public/docs/en/monitors/setup): withMonitor, captureCheckIn and heartbeat for TanStack Start and Cloudflare Workers; create monitors in Belvador or from code. - [HTTP check-ins (curl)](https://belvador.dev/api/public/docs/en/monitors/http): Report runs from shell cron, CI or any language without an SDK with one curl command: start, finish, heartbeat. - [Monitors with the official Sentry SDKs](https://belvador.dev/api/public/docs/en/monitors/sentry-sdks): Python, Node.js and other Sentry SDKs send check-ins to Belvador with their own crons API; which ones are tested and which are not. - [Signal monitors: counts, assertions and stalled runs](https://belvador.dev/api/public/docs/en/monitors/signals): Catch silent failures from the errors, check-ins, spans and logs you already send: too few or too many, wrong results, runs that stall — judged on your node. - [Deadline monitors: scheduled work must finish on time](https://belvador.dev/api/public/docs/en/monitors/deadlines): Register each run with an ingest key or the API, finish it with a span, log or check-in; a run without a success by its deadline alerts. - [Maintenance windows: quiet alerts during planned work](https://belvador.dev/api/public/docs/en/monitors/maintenance): One-off or weekly windows for a workspace, projects or monitors, with time zones and daylight saving; still judged and recorded, just not sent. ### Uptime: checks from outside - [Uptime: know when your site or service stops answering](https://belvador.dev/api/public/docs/en/uptime/quickstart): Create an HTTP or TCP check, run it from three regions and decide by majority; statuses, incidents, alerts, certificates and where data lives. - [Uptime check pass conditions](https://belvador.dev/api/public/docs/en/uptime/assertions): Status code, body text, JSON values, headers, response time and TLS certificate: how to write them, evaluation order and failure reasons. - [Belvador uptime probes: regions, IPs, user agent and opting out](https://belvador.dev/api/public/docs/en/uptime/probes): Where probes run, how they send requests, which addresses they refuse, the per-target rate cap and how a site owner asks us to stop. ### SLOs and error budgets - [SLOs: objectives, error budgets and unmeasured time](https://belvador.dev/api/public/docs/en/slos): Set a target on an uptime check, monitor, heartbeat or spans; how Belvador counts good and bad, coverage, statuses and where the data lives. - [Multi-window burn-rate alerts for SLOs](https://belvador.dev/api/public/docs/en/slos/alerts): The three default burn presets, page and ticket policies, alert rules, message contents, webhook events, pausing and muting. - [Manage SLOs with OpenSLO files](https://belvador.dev/api/public/docs/en/slos/openslo): Export SLOs as OpenSLO v1 YAML, keep them in Git and import them back: supported fields, Belvador annotations, dry-run checks and all-or-nothing saves. ### Guides - [Watching background work, by kind](https://belvador.dev/api/public/docs/en/guides/background-work): Scheduled jobs, queue consumers, background webhooks, long-running workers and CLIs: where to catch errors, when to report unknown, who retries. - [Warnings, breadcrumbs and signals that look alike](https://belvador.dev/api/public/docs/en/guides/warnings): How warning events, console.warn, breadcrumbs, SDK diagnostics, connection problems and a monitor's “Needs review” differ, and which ones alert. ### Using Belvador - [Issues, monitors, alerts and incidents](https://belvador.dev/api/public/docs/en/concepts/terminology): One meaning per word: event, issue, monitor, monitor problem, alert message, incident, release and environment; what Belvador has today and why unknown is never healthy. - [Events, issues and triage](https://belvador.dev/api/public/docs/en/issues): How errors are grouped into issues, statuses, search, filters, assignment and archiving. - [Fleet: every project on one screen](https://belvador.dev/api/public/docs/en/fleet): Reading the Fleet page: per-project health, new issues, 24-hour trends and what happens when numbers are not fresh. - [Alerts via Telegram, Slack, email and webhooks](https://belvador.dev/api/public/docs/en/alerts): Each workspace connects its own Telegram bot, Slack webhook, email sender (SMTP/Resend) or HTTPS webhook, then sets rules. - [Notification policies: quiet hours, digests, fallback and escalation](https://belvador.dev/api/public/docs/en/alerts/policies): Hold low-priority messages at night, bundle them into a digest, hand a failed message to a fallback destination and escalate incidents nobody takes — in your time zone. - [Receive alerts on your own webhook](https://belvador.dev/api/public/docs/en/alerts/webhooks): Belvador sends signed JSON in the Standard Webhooks format to your HTTPS endpoint: verifying signatures, event types, retries, replays and secret rotation. - [Incidents: related alerts as one piece of work with an owner](https://belvador.dev/api/public/docs/en/incidents): Incident rules group monitor, uptime, SLO and error alerts; take it, add notes, wait out recovery and close on its own, reopen on relapse; one PagerDuty or incident.io page per incident. - [Coverage: is every part of your app really being watched](https://belvador.dev/api/public/docs/en/coverage): Declare what each part of an app should send and Belvador checks it against what really arrived — verified, stale, problem or unknown; manage it from CI as code. - [Account, two-factor and roles](https://belvador.dev/api/public/docs/en/account-security): Turning on two-factor, recovery codes, re-verification for sensitive actions, workspace roles and invitations. - [DSN, ingest keys, ping URLs, tokens and node tickets](https://belvador.dev/api/public/docs/en/security/credentials): What each Belvador credential can do, whether it is secret, where you get it, how long it lasts and how to revoke it; none of them is an admin key. - [REST API reference](https://belvador.dev/api/public/docs/en/reference/api): Every operation of the Belvador API: path, required scope, which ones need a person's approval, retries and version checks; generated from the list the server runs. - [Connect an AI agent over MCP](https://belvador.dev/api/public/docs/en/mcp): Connect Claude Code, Cursor, VS Code, Codex, ChatGPT, Claude.ai, Lovable, Windsurf or any stdio client to Belvador's MCP server with OAuth or a read-only token. ### Node and infrastructure - [Connect Hetzner and set up your node](https://belvador.dev/api/public/docs/en/node/connection): Create a dedicated Hetzner project, issue an API token, choose how the token is held and follow Belvador setting up the node. - [Node health and metrics](https://belvador.dev/api/public/docs/en/node/health): What Healthy, Degraded and Unreachable mean, and how to read CPU, memory, disk and queue metrics. - [Backups and restore](https://belvador.dev/api/public/docs/en/node/backups): Daily encrypted backups, who holds the decryption key, the self-held recovery kit and restoring when a node is rebuilt. - [Update, resize, rebuild and delete a node](https://belvador.dev/api/public/docs/en/node/updates): Signed node software updates, changing the machine size, rebuilding on a new machine and deleting a node safely. ### Help - [Troubleshooting](https://belvador.dev/api/public/docs/en/troubleshooting): No errors showing, CSP blocks, duplicates, 429 limits, an unreachable node and sign-in problems — step-by-step checks. - [Guide for AI agents](https://belvador.dev/api/public/docs/en/ai-agents): Machine-readable index, a Markdown copy of every page and setup prompts for coding agents such as Lovable, Cursor and Claude Code. ## Tiếng Việt ### Bắt đầu - [Belvador là gì](https://belvador.dev/api/public/docs/vi/overview): Theo dõi lỗi, traces, log, cron và uptime cho ứng dụng của bạn; dữ liệu nằm trên máy chủ Hetzner của chính workspace, được Belvador dựng và bảo trì tự động. - [Bắt đầu nhanh](https://belvador.dev/api/public/docs/vi/quickstart): Từ tài khoản mới tới issue đầu tiên: tạo workspace, kết nối Hetzner, tạo project, cài SDK và gửi lỗi thử. - [Project và DSN](https://belvador.dev/api/public/docs/vi/projects-and-dsn): Mỗi ứng dụng là một project có DSN riêng. Cách tạo project, tìm DSN, xoay hoặc thu hồi khoá và đặt giới hạn nhận. ### SDK theo nền tảng - [Chọn SDK phù hợp](https://belvador.dev/api/public/docs/vi/sdk/overview): Bảng nền tảng được hỗ trợ, phiên bản, yêu cầu đi kèm và những gì SDK Belvador gửi hoặc không gửi. - [JavaScript trên trình duyệt](https://belvador.dev/api/public/docs/vi/sdk/browser): Cài @belvador/browser cho website hoặc ứng dụng chạy trên trình duyệt không dùng React. - [React 18 và React 19](https://belvador.dev/api/public/docs/vi/sdk/react): Cài @belvador/react cho ứng dụng React chạy trên trình duyệt (Vite, SPA), với cách nối riêng cho React 18 và React 19. - [TanStack Start và Lovable](https://belvador.dev/api/public/docs/vi/sdk/tanstack-start): Nối @belvador/tanstack-start cho cả trình duyệt và máy chủ Cloudflare Workers: router, server entry và middleware. - [Cloudflare Workers](https://belvador.dev/api/public/docs/vi/sdk/cloudflare): Bọc Worker bằng withBelvador để mỗi lần chạy có phạm vi riêng và lỗi được gửi mà phản hồi không đổi. - [Node.js (SDK tương thích Sentry)](https://belvador.dev/api/public/docs/vi/sdk/node): Dùng SDK Sentry chính thức cho Node.js với DSN Belvador và hàm lọc dữ liệu nhạy cảm do Belvador cung cấp. - [Bun (SDK tương thích Sentry)](https://belvador.dev/api/public/docs/vi/sdk/bun): Dùng SDK Sentry chính thức cho Bun với DSN Belvador, bộ lọc dữ liệu của Belvador và hàng đợi trên đĩa khi node không liên lạc được. - [Supabase Edge Functions](https://belvador.dev/api/public/docs/vi/sdk/supabase-edge): Một tệp dùng chung với SDK Sentry cho Deno: lỗi của mỗi function được gửi trước khi function trả lời, kèm lỗi { data, error } của truy vấn. - [Python (SDK tương thích Sentry)](https://belvador.dev/api/public/docs/vi/sdk/python): Dùng sentry-sdk chính thức cho Python với DSN Belvador và hàm lọc dữ liệu nhạy cảm do Belvador cung cấp. - [Kiểm tra kết nối](https://belvador.dev/api/public/docs/vi/sdk/verify): Chứng minh từng môi trường chạy của app gửi lỗi tới đúng project: verifyIntegration(), lỗi gắn thẻ cho mọi SDK, mã chẩn đoán và mã sự cố kết nối. ### Cấu hình SDK - [Tham chiếu API của SDK](https://belvador.dev/api/public/docs/vi/sdk/reference): Mọi hàm, component và kiểu công khai của các gói @belvador/*, theo từng đường import. - [Tuỳ chọn cấu hình SDK](https://belvador.dev/api/public/docs/vi/sdk/configuration): release, environment, lấy mẫu, bỏ qua lỗi, breadcrumb và tệp đính kèm tuỳ chọn, cách gửi và giới hạn hàng đợi. - [Offline và gửi bền](https://belvador.dev/api/public/docs/vi/sdk/offline): Lỗi được giữ lại khi chưa gửi được: thử lại có độ trễ ngẫu nhiên, hàng đợi IndexedDB với offline: true trên trình duyệt, và @belvador/spool ghi xuống đĩa cho Node.js, Bun và Deno. - [Báo lỗi từ client { data, error }](https://belvador.dev/api/public/docs/vi/sdk/database-errors): captureResult() báo lỗi mà Supabase, PostgREST và các client khác trả về thay vì ném ra: một event có kiểu theo mã Postgres, gom theo kiểu và thao tác, không gửi SQL. - [Liên kết lỗi qua nhiều tầng bằng trace](https://belvador.dev/api/public/docs/vi/sdk/tracing): Bật tracePropagation để lỗi trình duyệt, lỗi máy chủ và lượt chạy của job cùng một request hiện chung trong “Cùng trace”. - [Chuyển từ Sentry sang Belvador](https://belvador.dev/api/public/docs/vi/sdk/migration): Thay SDK Sentry đang có bằng gói Belvador tương ứng mà không gửi lỗi trùng hai lần. - [Source map](https://belvador.dev/api/public/docs/vi/source-maps): Tải source map lên node để stack trace hiện đúng file, dòng và hàm gốc — kèm phần đã và chưa được kiểm chứng. - [Bảo vệ dữ liệu và lọc thông tin nhạy cảm](https://belvador.dev/api/public/docs/vi/privacy): Những gì SDK và node tự xoá hoặc che, những gì không thể đảm bảo, và cách kiểm tra an toàn. - [Bảng năng lực theo runtime](https://belvador.dev/api/public/docs/vi/reference/capabilities): Từng runtime gửi được gì tới Belvador: tự động, bạn phải gọi, hay không thể — và cái nào đã có test chứng minh. ### Traces, logs và metrics (OpenTelemetry) - [Traces và logs bằng OpenTelemetry](https://belvador.dev/api/public/docs/vi/otel/overview): Belvador nhận traces và logs OTLP từ SDK OpenTelemetry chuẩn, lưu trên node của bạn và nối chúng với lỗi; metrics khi bạn bật; runtime nào đã kiểm, cái gì không thu. - [Gửi traces và logs đầu tiên](https://belvador.dev/api/public/docs/vi/otel/quickstart): Tạo khoá ingest, đặt biến môi trường OTEL_* chuẩn, chạy app với instrumentation của runtime và kiểm kết nối OTLP từ trong Belvador. - [Kiểm kết nối OTLP: chứng minh traces và logs tới đúng project](https://belvador.dev/api/public/docs/vi/otel/verify): Tab Kết nối cho biết gì, cách chạy phép kiểm bằng curl hoặc từ SDK của bạn, kiểm đạt chứng minh điều gì và làm gì khi một bước đứng lại. - [OpenTelemetry cho Node.js (CommonJS và ES modules)](https://belvador.dev/api/public/docs/vi/otel/node): Instrumentation không cần sửa code bằng auto-instrumentations-node, hook cho ES modules, log Pino/Winston gắn trace và cách chạy trong Docker hoặc PaaS. - [OpenTelemetry cho Python](https://belvador.dev/api/public/docs/vi/otel/python): opentelemetry-instrument cho Flask, Django, FastAPI và requests; bật logging handler để log có trace; chạy với Gunicorn hoặc uWSGI. - [OpenTelemetry cho Go](https://belvador.dev/api/public/docs/vi/otel/go): Một hàm setup đọc biến OTEL_* chuẩn, otelhttp cho server và client, otelslog cho log có trace, và flush khi tắt tiến trình. - [OpenTelemetry cho Java (Java agent)](https://belvador.dev/api/public/docs/vi/otel/java): Gắn OpenTelemetry Java agent bằng -javaagent, không sửa code: HTTP server/client, JDBC, log java.util.logging/Logback/Log4j; Spring Boot và container. - [OpenTelemetry tích hợp sẵn của Deno](https://belvador.dev/api/public/docs/vi/otel/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. - [Gửi qua OpenTelemetry Collector](https://belvador.dev/api/public/docs/vi/otel/collector): Cấu hình Collector chuẩn nhận OTLP gRPC/HTTP từ app và chuyển tới Belvador qua otlphttp, có giới hạn bộ nhớ, batch, hàng đợi và gửi lại. - [Metrics bằng OpenTelemetry](https://belvador.dev/api/public/docs/vi/otel/metrics): Bật metrics OTLP, những loại được lưu, xem theo phép tổng hợp, bộ lọc và nhóm, giới hạn chuỗi giữ chi phí dễ đoán, quyền riêng tư và cảnh báo theo metric. - [Công thức metrics: máy chủ, hàng đợi, nghiệp vụ, Supabase](https://belvador.dev/api/public/docs/vi/otel/metrics-recipes): Cấu hình Collector cho metrics máy chủ Linux và Windows, gauge độ sâu và tuổi hàng đợi, metrics nghiệp vụ, và metrics Postgres từ Supabase Metrics API. - [Traces và logs cho app TanStack Start](https://belvador.dev/api/public/docs/vi/otel/tanstack-start): Theo nơi app chạy: máy chủ Node.js của bạn, tài khoản Cloudflare của bạn, hoặc hosting của Lovable. - [Xuất traces và logs có sẵn của Cloudflare Workers tới Belvador](https://belvador.dev/api/public/docs/vi/otel/cloudflare-workers): Hai đích OTLP trong dashboard Cloudflare, khối observability trong wrangler.jsonc, những gì bạn nhận được và giới hạn hiện tại. - [Traces từ Vercel và Next.js: từ app hoặc bằng Trace Drain](https://belvador.dev/api/public/docs/vi/otel/nextjs-vercel): SDK Node của OpenTelemetry trong instrumentation.ts, Trace Drains cho gói Pro và Enterprise, và vì sao Log Drains cần Collector. - [Log drain của Supabase tới Belvador qua OTLP](https://belvador.dev/api/public/docs/vi/otel/supabase-log-drains): Đưa log Postgres, Auth, Storage, Edge Functions, Realtime và API gateway vào Belvador bằng drain OpenTelemetry, cùng lưu ý về quyền riêng tư và dung lượng. - [Cầu nối logging: đưa log của logger bạn đang dùng vào OpenTelemetry](https://belvador.dev/api/public/docs/vi/otel/logging-bridges): Pino, Bunyan, Winston, logging của Python, slog, Logback và console của Deno thành bản ghi log có mức độ, thuộc tính và trace ID. - [Dùng SDK Sentry cho lỗi khi OpenTelemetry làm chủ tracing](https://belvador.dev/api/public/docs/vi/otel/sentry-coexistence): Một bên làm chủ tracing và cầu nối để lỗi mang trace ID: Sentry 10 và 11 cho Node.js, OTLPIntegration cho Python, sentry-go, sentry-java. - [Traces, logs và dữ liệu nhạy cảm](https://belvador.dev/api/public/docs/vi/otel/privacy): Node lọc khoá bí mật, header, query, IP, SQL và mã hoá id người dùng trước khi lưu; những gì bạn không nên bật trong instrumentation. - [Lấy mẫu traces, hạn mức và dung lượng node](https://belvador.dev/api/public/docs/vi/otel/sampling-and-cost): Hạn mức tháng, tốc độ, thời gian giữ dữ liệu và ngân sách đĩa trên node; cách lấy mẫu theo trace mà không làm gãy trace giữa các dịch vụ. - [Không thấy traces hoặc logs: cách tìm nguyên nhân](https://belvador.dev/api/public/docs/vi/otel/troubleshooting): Theo từng triệu chứng: không có dữ liệu, 401/403, 413, 429, có root mà thiếu span con, log không gắn trace, dev chạy mà production trống. - [Tham chiếu endpoint OTLP](https://belvador.dev/api/public/docs/vi/reference/otlp): Đường dẫn, xác thực, Content-Type, nén, mã phản hồi, Retry-After và giới hạn của mỗi request OTLP/HTTP gửi tới Belvador. - [Tham chiếu biến môi trường OpenTelemetry cho Belvador](https://belvador.dev/api/public/docs/vi/reference/otel-env): Biến xuất dữ liệu, danh tính, lấy mẫu, gom lô và tắt SDK, cùng các biến riêng từng runtime mà công thức của Belvador dùng. ### Monitor việc chạy ngầm - [Monitor: biết khi việc chạy ngầm hỏng hoặc không chạy](https://belvador.dev/api/public/docs/vi/monitors/overview): Monitor theo dõi cron job, hàng đợi và worker: lượt chạy lỗi, quá giờ, chưa rõ kết quả hoặc không chạy đúng hạn đều mở sự cố. - [Ping URL: báo động khi việc định kỳ im lặng](https://belvador.dev/api/public/docs/vi/monitors/heartbeat): Mỗi monitor có một URL bí mật; job gọi nó khi chạy xong, thêm /fail khi lỗi. Belvador báo khi hết tín hiệu — kể cả khi app, database hay node của bạn đã sập. - [Gắn monitor bằng SDK Belvador](https://belvador.dev/api/public/docs/vi/monitors/setup): withMonitor, captureCheckIn và heartbeat cho TanStack Start và Cloudflare Workers; tạo monitor trong Belvador hoặc từ code. - [Check-in qua HTTP (curl)](https://belvador.dev/api/public/docs/vi/monitors/http): Báo lượt chạy từ cron shell, CI hoặc ngôn ngữ không có SDK bằng một lệnh curl: bắt đầu, kết thúc, heartbeat. - [Monitor bằng SDK Sentry chính thức](https://belvador.dev/api/public/docs/vi/monitors/sentry-sdks): 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. - [Monitor theo tín hiệu: đếm, kiểm điều kiện và lượt chạy bị treo](https://belvador.dev/api/public/docs/vi/monitors/signals): Bắt lỗi im lặng từ error, check-in, span và log đã có: việc xảy ra quá ít hoặc quá nhiều, kết quả sai, lượt chạy đứng yên — xét trên node của anh. - [Monitor hạn chót: việc hẹn giờ phải xong trước hạn](https://belvador.dev/api/public/docs/vi/monitors/deadlines): Đăng ký từng lượt bằng khoá ingest hoặc API, kết thúc bằng span, log hoặc check-in; lượt không thành công trước hạn chót sẽ cảnh báo. - [Khung bảo trì: tắt tiếng cảnh báo trong lúc deploy](https://belvador.dev/api/public/docs/vi/monitors/maintenance): Khung một lần hoặc hằng tuần cho workspace, project hay monitor, theo múi giờ và giờ mùa hè; vẫn xét và ghi lại, chỉ không gửi thông báo. ### Uptime: kiểm từ bên ngoài - [Uptime: biết khi trang hoặc dịch vụ ngừng phản hồi](https://belvador.dev/api/public/docs/vi/uptime/quickstart): Tạo check HTTP hoặc TCP, kiểm từ ba vùng, quyết định theo đa số; trạng thái, sự cố, cảnh báo, chứng chỉ và dữ liệu nằm ở đâu. - [Điều kiện đạt của check uptime](https://belvador.dev/api/public/docs/vi/uptime/assertions): Mã trạng thái, nội dung chứa, giá trị JSON, header, thời gian phản hồi và chứng chỉ TLS: cách viết, thứ tự đánh giá và lý do báo lỗi. - [Máy kiểm uptime của Belvador: vùng, IP, User-Agent và cách chặn](https://belvador.dev/api/public/docs/vi/uptime/probes): Máy kiểm chạy ở đâu, gửi yêu cầu thế nào, địa chỉ nào bị từ chối, giới hạn tần suất mỗi đích và cách chủ website yêu cầu ngừng kiểm. ### SLO và ngân sách lỗi - [SLO: mục tiêu, ngân sách lỗi và thời gian không đo được](https://belvador.dev/api/public/docs/vi/slos): Đặt mục tiêu trên check uptime, monitor, heartbeat hoặc span; cách Belvador đếm tốt/xấu, độ phủ, trạng thái và dữ liệu nằm ở đâu. - [Cảnh báo SLO theo tốc độ đốt nhiều cửa sổ](https://belvador.dev/api/public/docs/vi/slos/alerts): Ba mức đốt mặc định, chính sách gọi khẩn/ticket, quy tắc cảnh báo, nội dung tin, sự kiện webhook, tạm dừng và tắt tiếng. - [Quản lý SLO bằng tệp OpenSLO](https://belvador.dev/api/public/docs/vi/slos/openslo): Xuất SLO ra YAML OpenSLO v1, giữ trong Git và nhập lại: các trường được hỗ trợ, annotation của Belvador, kiểm tra trước và lưu cả tệp một lần. ### Hướng dẫn - [Theo dõi việc chạy ngầm theo từng loại](https://belvador.dev/api/public/docs/vi/guides/background-work): Việc định kỳ, consumer hàng đợi, webhook xử lý nền, worker chạy lâu và CLI: bắt lỗi ở đâu, khi nào ghi chưa rõ, ai lo thử lại. - [Warning, breadcrumb và các tín hiệu dễ nhầm](https://belvador.dev/api/public/docs/vi/guides/warnings): Warning event, console.warn, breadcrumb, chẩn đoán SDK, sự cố kết nối và “Cần xem lại” của monitor khác nhau thế nào, và cái nào gửi cảnh báo. ### Sử dụng Belvador - [Issue, monitor, cảnh báo và sự cố](https://belvador.dev/api/public/docs/vi/concepts/terminology): Mỗi từ một nghĩa: event, issue, monitor, sự cố monitor, tin cảnh báo, incident, release và môi trường; Belvador đã có gì và vì sao chưa biết không phải là khoẻ. - [Event, issue và cách xử lý](https://belvador.dev/api/public/docs/vi/issues): Lỗi được gom thành issue thế nào, các trạng thái, tìm kiếm, lọc, gán người và lưu trữ. - [Fleet: mọi project trên một màn hình](https://belvador.dev/api/public/docs/vi/fleet): Đọc trang Fleet: sức khoẻ từng project, lỗi mới, xu hướng 24 giờ và khi số liệu chưa cập nhật. - [Cảnh báo qua Telegram, Slack, email và webhook](https://belvador.dev/api/public/docs/vi/alerts): Mỗi workspace tự kết nối bot Telegram, Slack webhook, email (SMTP/Resend) hoặc webhook HTTPS của mình, rồi đặt quy tắc gửi. - [Chính sách thông báo: giờ yên tĩnh, tóm tắt, dự phòng và leo thang](https://belvador.dev/api/public/docs/vi/alerts/policies): Giữ tin mức thấp ban đêm, gom thành bản tóm tắt, chuyển sang đích dự phòng khi gửi thất bại và leo thang sự cố chưa ai nhận — theo múi giờ của bạn. - [Nhận cảnh báo bằng webhook của bạn](https://belvador.dev/api/public/docs/vi/alerts/webhooks): Belvador gửi JSON có chữ ký chuẩn Standard Webhooks tới địa chỉ HTTPS của bạn: cách kiểm chữ ký, loại sự kiện, thử lại, gửi lại và xoay mã ký. - [Sự cố: gom cảnh báo liên quan thành một việc có người phụ trách](https://belvador.dev/api/public/docs/vi/incidents): Luật sự cố gom cảnh báo monitor, uptime, SLO và lỗi; nhận xử lý, ghi chú, chờ hồi phục rồi tự đóng, mở lại khi tái phát; PagerDuty và incident.io nhận một trang cho mỗi sự cố. - [Độ phủ: từng phần của app có đang được theo dõi thật không](https://belvador.dev/api/public/docs/vi/coverage): Khai báo mỗi phần của app phải gửi gì, Belvador đối chiếu với thứ thật sự nhận được: đã xác minh, cũ, có vấn đề hay chưa biết; quản lý bằng code từ CI. - [Tài khoản, xác thực 2 lớp và vai trò](https://belvador.dev/api/public/docs/vi/account-security): Bật xác thực 2 lớp, mã khôi phục, xác nhận lại cho thao tác nhạy cảm, vai trò trong workspace và lời mời. - [DSN, khoá ingest, ping URL, token và vé node](https://belvador.dev/api/public/docs/vi/security/credentials): Mỗi loại khoá của Belvador làm được gì, có bí mật không, lấy ở đâu, hạn bao lâu và thu hồi thế nào; không khoá nào là khoá quản trị toàn quyền. - [Tham chiếu API REST](https://belvador.dev/api/public/docs/vi/reference/api): Mọi thao tác của API Belvador: đường gọi, quyền cần có, thao tác nào cần người duyệt, cách chống gửi lặp và khoá phiên bản; sinh từ cùng danh sách máy chủ dùng. - [Kết nối AI agent qua MCP](https://belvador.dev/api/public/docs/vi/mcp): Kết nối Claude Code, Cursor, VS Code, Codex, ChatGPT, Claude.ai, Lovable, Windsurf hoặc client stdio với máy chủ MCP của Belvador bằng OAuth hoặc token chỉ đọc. ### Node và hạ tầng - [Kết nối Hetzner và dựng node](https://belvador.dev/api/public/docs/vi/node/connection): Tạo project Hetzner riêng, cấp API token, chọn cách giữ token và theo dõi Belvador tự dựng node. - [Sức khoẻ và chỉ số node](https://belvador.dev/api/public/docs/vi/node/health): Ý nghĩa các trạng thái Khoẻ, Suy giảm, Mất kết nối và các chỉ số CPU, RAM, ổ đĩa, hàng đợi. - [Backup và khôi phục](https://belvador.dev/api/public/docs/vi/node/backups): Backup mã hoá hằng ngày, ai giữ khoá giải mã, bộ khôi phục tự giữ và khôi phục khi dựng lại node. - [Nâng cấp, đổi cỡ, dựng lại và xoá node](https://belvador.dev/api/public/docs/vi/node/updates): Cập nhật phần mềm node có chữ ký, đổi cỡ máy, dựng lại máy mới và xoá node an toàn. ### Trợ giúp - [Khắc phục sự cố](https://belvador.dev/api/public/docs/vi/troubleshooting): Chưa thấy lỗi, lỗi bị chặn bởi CSP, lỗi trùng, giới hạn 429, node mất kết nối và vấn đề đăng nhập — kiểm tra từng bước. - [Hướng dẫn cho AI agent](https://belvador.dev/api/public/docs/vi/ai-agents): Chỉ mục máy đọc, bản Markdown của từng bài và lời nhắc cài đặt cho AI agent lập trình như Lovable, Cursor, Claude Code. ## Optional - [Full docs, both languages, one file](https://belvador.dev/llms-full.txt): every page above as Markdown - [Full docs (en)](https://belvador.dev/api/public/docs/en/full): every en page as Markdown - [Full docs (vi)](https://belvador.dev/api/public/docs/vi/full): every vi page as Markdown