# Tham chiếu biến môi trường OpenTelemetry cho Belvador

> 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.

Mọi SDK OpenTelemetry đều đọc cùng các biến chuẩn. Trang này liệt kê những biến quan trọng với Belvador, giá trị nên đặt, và các biến riêng từng runtime mà công thức dùng. [Bắt đầu nhanh](https://belvador.dev/vi/docs/otel/quickstart#2-dat-cac-bien-chuan) hiện sẵn khối biến với project của bạn.

## Xuất dữ liệu

| Biến | Giá trị cho Belvador | Ghi chú |
|---|---|---|
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://ingest.belvador.dev/otlp/<project-id>` | Exporter tự thêm `/v1/traces` và `/v1/logs` |
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | URL đầy đủ có `/v1/traces` hoặc `/v1/logs` | Chỉ khi bạn gửi từng loại tới nơi khác nhau |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `http/protobuf` | `http/json` cũng được; `grpc` thì không — dùng [Collector](https://belvador.dev/vi/docs/otel/collector) |
| `OTEL_EXPORTER_OTLP_HEADERS` | `Authorization=Bearer%20<khoá ingest>` | Các cặp `key=value` cách nhau bằng dấu phẩy, giá trị mã hoá phần trăm |
| `OTEL_EXPORTER_OTLP_COMPRESSION` | `gzip` (tuỳ chọn) | Hạn mức và giới hạn tốc độ tính theo số byte nhận được, nên nén giúp cả hai dùng được lâu hơn |
| `OTEL_EXPORTER_OTLP_TIMEOUT` | Mặc định (10000 ms) | Chỉ tăng khi mạng chậm |
| `OTEL_TRACES_EXPORTER` | `otlp` | `none` để ngừng traces |
| `OTEL_LOGS_EXPORTER` | `otlp` | `none` để ngừng logs |
| `OTEL_METRICS_EXPORTER` | `none`, hoặc `otlp` để gửi [metrics](https://belvador.dev/vi/docs/otel/metrics) | Cần khoá có **Metrics**; đặt kèm `OTEL_METRIC_EXPORT_INTERVAL=60000` |

## Danh tính

| Biến | Giá trị | Ghi chú |
|---|---|---|
| `OTEL_SERVICE_NAME` | Tên dịch vụ của bạn | Hiện ở Traces, Logs và tab Kết nối |
| `OTEL_RESOURCE_ATTRIBUTES` | `deployment.environment.name=production` | Cách nhau bằng dấu phẩy; thêm `service.version=<release>` để phân biệt các lần deploy |

Bản ghi không có môi trường được lưu với môi trường trống; khoá giới hạn vào một số môi trường sẽ bỏ chúng.

## Lấy mẫu và lan truyền

| Biến | Giá trị | Ghi chú |
|---|---|---|
| `OTEL_TRACES_SAMPLER` | `parentbased_traceidratio` | Theo quyết định của bên gọi; xem [Lấy mẫu và chi phí](https://belvador.dev/vi/docs/otel/sampling-and-cost) |
| `OTEL_TRACES_SAMPLER_ARG` | `0.1` … `1` | Tỉ lệ trace mới được giữ |
| `OTEL_PROPAGATORS` | Mặc định (`tracecontext,baggage`) | W3C Trace Context, cùng header mà SDK Belvador gửi |

## Gom lô

| Biến | Mặc định | Khi nào đổi |
|---|---|---|
| `OTEL_BSP_SCHEDULE_DELAY`, `OTEL_BLRP_SCHEDULE_DELAY` | 5000 ms (traces), 1000 ms (logs) | Giảm cho tiến trình chạy ngắn |
| `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`, `OTEL_BLRP_MAX_EXPORT_BATCH_SIZE` | 512 | Giảm nếu request gặp `413` (quá 4 MiB) |
| `OTEL_BSP_MAX_QUEUE_SIZE`, `OTEL_BLRP_MAX_QUEUE_SIZE` | 2048 | Tăng khi lưu lượng dồn; bản ghi vượt hàng đợi bị bỏ ngay trong tiến trình |

## Tắt đi

`OTEL_SDK_DISABLED=true` tắt SDK ở các runtime hỗ trợ (Node.js, Python, Java; setup theo biến môi trường của Go bỏ qua biến này). Bỏ `OTEL_EXPORTER_OTLP_ENDPOINT` thì exporter gửi tới `localhost:4318`, thường thất bại mà không báo — hãy dùng `OTEL_TRACES_EXPORTER=none` và `OTEL_LOGS_EXPORTER=none`.

## Biến riêng từng runtime trong công thức

| Biến | Runtime | Vì sao công thức đặt |
|---|---|---|
| `OTEL_SEMCONV_STABILITY_OPT_IN=http` | Node.js, Python | Tên thuộc tính HTTP ổn định (`url.path`, `http.request.method`, `http.response.status_code`) |
| `OTEL_NODE_RESOURCE_DETECTORS=env,host,os` | Node.js | Bỏ detector `process`, vốn chép dòng lệnh vào từng span |
| `OTEL_NODE_DISABLED_INSTRUMENTATIONS` | Node.js | Danh sách instrumentation bỏ qua, cách nhau bằng dấu phẩy (`fs,dns,net`) |
| `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true` | Python | Gửi bản ghi của `logging` |
| `OTEL_PYTHON_DISABLED_INSTRUMENTATIONS` | Python | Danh sách instrumentation bỏ qua |
| `OTEL_DENO=true` | Deno | Bật exporter có sẵn |
| `JAVA_TOOL_OPTIONS=-javaagent:…` | Java | Gắn agent khi không đổi được lệnh khởi động |
