Skip to main content
Time Range Blueprint gửi một usage event đến Dodo Payments với thời gian một resource chạy cho khách hàng, tính bằng milliseconds, seconds hoặc minutes. Một meter Sum trên khoảng thời gian đó sẽ cộng tổng runtime của từng khách hàng, giúp bạn tính phí theo compute time. Blueprint này có trong npm package @dodopayments/ingestion-blueprints dưới dạng trackTimeRange().

Trường hợp sử dụng

Time Range Blueprint phù hợp với các trường hợp sau:

Serverless Functions

Tính phí dựa trên thời gian thực thi function và mức sử dụng memory.

Container Runtime

Theo dõi thời gian container chạy để tính phí dựa trên usage.

Compute Instances

Theo dõi runtime của VM và tính phí theo phút hoặc giờ.

Background Jobs

Theo dõi thời gian xử lý cho data exports, reports và batch jobs.
Sử dụng blueprint này để tính phí cho compute time, thời lượng thực thi function, runtime của container hoặc bất kỳ usage nào khác dựa trên thời gian.

Bắt đầu nhanh

Để theo dõi runtime, hãy cài đặt package, tạo meter và gửi thời lượng mỗi khi một resource chạy xong.
1

Install the SDK

Cài đặt package Dodo Payments Ingestion Blueprints:
2

Get Your API Keys

Tạo Dodo Payments API key trong Developer → API Keys trên Dodo Payments dashboard, rồi lưu key này vào environment variable DODO_PAYMENTS_API_KEY. Sử dụng test mode key trong quá trình xây dựng. Test mode key chỉ hoạt động với test_mode.
3

Create a Meter

Trong Dodo Payments dashboard, đi đến Products → Meters và nhấp vào Create Meter. Thiết lập các field sau:
  • Meter Name: tên mô tả, chẳng hạn như Compute Time.
  • Event Name: time_range_usage hoặc tên do bạn chọn. Tên này phải khớp chính xác với eventName trong code (phân biệt chữ hoa chữ thường). Các ví dụ ở bước tiếp theo sử dụng một event name riêng cho từng loại resource, chẳng hạn như function_execution, vì vậy mỗi loại cần có meter riêng.
  • Aggregation Type: Sum, để cộng tổng thời lượng.
  • Over Property: key thời lượng bạn gửi: durationSeconds, durationMinutes hoặc durationMs.
  • Measurement Unit: đơn vị hiển thị trên invoices, chẳng hạn như seconds.
4

Track Time Usage

Đo thời gian tác vụ chạy, sau đó gọi trackTimeRange() với thời lượng theo đơn vị mà meter của bạn sử dụng:

Cấu hình

Cấu hình Ingestion

Truyền các tùy chọn sau vào new Ingestion():
string
bắt buộc
Dodo Payments API key của bạn từ dashboard.
string
Environment mode: test_mode hoặc live_mode. Mặc định là test_mode. Tuy nhiên, Dodo Payments SDKs mặc định sử dụng live_mode, vì vậy hãy đặt live_mode một cách rõ ràng trong production.
string
bắt buộc
Event name khớp với Event Name của meter (phân biệt chữ hoa chữ thường).

Tùy chọn Track Time Range

Truyền các tùy chọn sau vào trackTimeRange(). Mỗi duration bạn truyền sẽ được gửi dưới dạng metadata key có cùng tên.
string
bắt buộc
Dodo Payments customer ID dùng để tính phí runtime, chẳng hạn như cus_123.
number
Thời lượng tính bằng milliseconds. Sử dụng để đạt độ chính xác dưới một giây.
number
Thời lượng tính bằng seconds. Thường dùng nhất cho function execution và các tác vụ ngắn.
number
Thời lượng tính bằng minutes. Hữu ích cho các resource chạy lâu như VM.
object
Metadata tùy chọn về resource, chẳng hạn như CPU, memory hoặc region. Mỗi giá trị phải là string, number hoặc boolean.

Best Practices

Chọn đúng đơn vị: Sử dụng milliseconds cho các thao tác ngắn, seconds cho functions và minutes cho các resource chạy lâu hơn.
Meter chỉ cộng key được chỉ định trong Over Property, vì vậy hãy gửi duration theo cùng một đơn vị trong mọi lần.
Đo thời gian chính xác: Sử dụng Date.now() hoặc performance.now() để theo dõi thời gian chính xác, đặc biệt đối với serverless functions.
Lần sửa đổi cuối 26 tháng 9, 2026