Lấy mẫu traces, hạn mức và dung lượng node
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ụ.
Trong bài này
Traces và logs tăng theo lưu lượng, không theo số sự cố. Trang này ghi các giới hạn ở gói mặc định, điều gì xảy ra khi chạm tới, và cách gửi ít hơn mà không mất những trace bạn cần.
Giới hạn ở gói mặc định#
| Giới hạn | Mặc định | Khi chạm giới hạn |
|---|---|---|
| Traces mỗi tháng, cho cả workspace | 5 GB | Request traces tiếp theo nhận 429 tới khi sang tháng |
| Logs mỗi tháng, cho cả workspace | 5 GB | Request logs tiếp theo nhận 429 tới khi sang tháng |
| Tốc độ gửi, theo project và loại dữ liệu | 1 MiB/s, dồn tối đa 8 MiB | 429 kèm Retry-After; exporter chờ rồi gửi lại |
| Thời gian lưu | 7 ngày (chỉnh được tới 90) | Dữ liệu cũ hơn bị xoá trên node |
| Thời gian traces và logs được chờ ở edge khi node tắt | 15 phút | Dữ liệu chờ lâu hơn bị bỏ và tính là Hết hạn trong bộ đệm; bộ đệm đầy thì trả 503 |
Gói của bạn có thể khác; Cài đặt project → Traces, logs và metrics đã nhận cho biết hạn mức đã dùng, thời gian lưu, phần đã nhận và phần bị bỏ theo lý do. Lỗi không nằm trong các con số này và được chờ ở edge lâu hơn nhiều khi node tắt.
Ổ đĩa của node#
Traces và logs dùng chung tối đa 30 % ổ đĩa của node, chia cho hai bên (mặc định mỗi bên một nửa; owner và admin đổi được cách chia ở cùng thẻ đó). Khi một loại vượt phần của nó, những ngày cũ nhất bị xoá sớm và thẻ cho biết thực tế giữ được bao nhiêu ngày. Khi node quá tải — 85 % bộ nhớ hoặc ổ đĩa — nó ngừng nhận traces và logs trước; lỗi vẫn tiếp tục.
Lấy mẫu theo trace, không theo từng request ngẫu nhiên#
Lấy mẫu đầu (head sampling) quyết định ngay đầu trace có giữ hay không. Hãy dùng bộ lấy mẫu theo tỉ lệ dựa trên bên gọi, để mỗi dịch vụ theo quyết định của dịch vụ đã gọi nó và trace không bao giờ đến nửa vời:
export OTEL_TRACES_SAMPLER=parentbased_traceidratioexport OTEL_TRACES_SAMPLER_ARG=0.10.1 giữ một trace trong mười. Đặt cùng bộ lấy mẫu ở mọi dịch vụ; chỉ tỉ lệ của dịch vụ đầu tiên quyết định, các dịch vụ khác làm theo. Lỗi không bị ảnh hưởng — chúng do SDK lỗi gửi, không bị OpenTelemetry lấy mẫu.
Logs không bị bộ lấy mẫu trace lọc: dòng log ghi trong request không được lấy mẫu vẫn được gửi, kèm trace ID, nhưng trace đó không có span. Muốn gửi ít log hơn, hãy nâng mức của logger (ví dụ warn ở production).
Gửi ít thứ bạn không đọc#
Tắt instrumentation gây nhiễu (hệ thống file, DNS, mọi lệnh Redis) — mỗi trang cài đặt ghi biến tương ứng.
Bỏ health check và readiness probe; trong Collector, processor
filterlàm được việc này cho mọi dịch vụ cùng lúc.Nén:
OTEL_EXPORTER_OTLP_COMPRESSION=gzip. Hạn mức và giới hạn tốc độ tính theo số byte nhận được, nên cùng một lượng dữ liệu tốn ít hơn.Chỉ gửi metrics ở dịch vụ bạn thật sự xem (
OTEL_METRICS_EXPORTER=otlpcho từng dịch vụ), mỗi phút một lần. Chi phí của metrics là số chuỗi chứ không phải số request — đừng đưa giá trị không giới hạn như user id vào thuộc tính metric (giới hạn).
Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev