计量器
计量器用于定义和跟踪基于信用点的计费使用情况。它们代表您计费的特定功能或资源,例如 API 调用、数据存储或计算时间。每个计量器都会聚合发送给它的使用事件。
创建计量器后,您可以使用计量器事件来报告其使用情况。这是实现基于信用点的计费模型的核心组件。
计量器对象#
计量器对象包含有关特定使用情况跟踪器的所有信息。
Attribute | Type | Description |
|---|---|---|
| string | 计量器的唯一标识符。 |
| string | 计量器的显示名称。 |
| string | 此计量器跟踪的事件的唯一名称。在报告使用情况时使用。 |
| string | 用于聚合使用情况的方法。目前仅支持 |
| string | 使用情况的计量单位(例如,“requests”、“gb”、“credits”)。 |
| string | 计量器的当前状态。可以是 |
| boolean | 如果计量器是在生产模式下创建的,则为 |
| string | 与此计量器关联的支付货币的 ID。 |
| string | 计量器的可选描述。 |
| object | 可以附加到对象的一组键值对。用于存储附加信息。 |
| object | 与计量器关联的展开的支付货币对象。 |
paymentCurrency 对象属性
Attribute | Type | Description |
|---|---|---|
| string | 货币的唯一标识符。 |
| string | 货币的名称(例如,“API Credits”)。 |
| string | 货币的符号(例如,“AC”)。 |
| number | 货币的小数位数。 |
| string | 货币的类型。 |
创建计量器#
创建一个新的计量器来跟踪特定功能的使用情况。
参数
Attribute | Type | Description |
|---|---|---|
| string | 必需。 计量器的显示名称。最多 64 个字符。 |
| string | 必需。 此计量器跟踪的事件的唯一名称。在报告使用情况时使用。最多 64 个字符。 |
| string | 必需。 使用情况的计量单位(例如,“requests”、“gb”、“credits”)。最多 32 个字符。 |
| string | 可选。聚合使用情况的方法。默认为 |
| string | 可选。要与此计量器关联的支付货币的 ID。如果未提供,将自动创建一个新的信用点货币。 |
| string | 可选。关于此计量器跟踪内容的描述。最多 255 个字符。 |
| object | 可选。用于存储有关计量器的附加信息的一组键值对。 |
返回
返回新创建的 Meter 对象。
创建一个计量器
import payment from '@blocklet/payment-js';
async function createMeter() {
try {
const meter = await payment.meters.create({
name: 'API Calls',
event_name: 'api.calls.v1',
unit: 'requests',
description: 'Tracks the number of API calls made.',
});
console.log('计量器已创建:', meter);
} catch (error) {
console.error('创建计量器时出错:', error.message);
}
}
createMeter();响应示例
{
"id": "mtr_1J7kL2jQ6F9o3vXbY9t8rGcE",
"name": "API Calls",
"event_name": "api.calls.v1",
"aggregation_method": "sum",
"unit": "requests",
"status": "active",
"livemode": false,
"currency_id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"description": "Tracks the number of API calls made.",
"metadata": {},
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"paymentCurrency": {
"id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"name": "API Calls Credit",
"symbol": "ACC",
"decimal": 0,
"type": "credit"
}
}检索计量器#
检索现有计量器的详细信息。您可以通过其唯一 ID 或 event_name 检索计量器。
参数
Attribute | Type | Description |
|---|---|---|
| string | 必需。 要检索的计量器的 ID 或 |
返回
如果找到,则返回 Meter 对象。
检索一个计量器
import payment from '@blocklet/payment-js';
async function retrieveMeter(meterId) {
try {
const meter = await payment.meters.retrieve(meterId);
console.log('已检索计量器:', meter);
} catch (error) {
console.error('检索计量器时出错:', error.message);
}
}
retrieveMeter('mtr_1J7kL2jQ6F9o3vXbY9t8rGcE');响应示例
{
"id": "mtr_1J7kL2jQ6F9o3vXbY9t8rGcE",
"name": "API Calls",
"event_name": "api.calls.v1",
"aggregation_method": "sum",
"unit": "requests",
"status": "active",
"livemode": false,
"currency_id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"description": "Tracks the number of API calls made.",
"metadata": {},
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"paymentCurrency": {
"id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"name": "API Calls Credit",
"symbol": "ACC",
"decimal": 0,
"type": "credit"
}
}更新计量器#
通过设置传入参数的值来更新现有计量器。
参数
Attribute | Type | Description |
|---|---|---|
| string | 必需。 要更新的计量器的 ID。 |
| string | 可选。计量器的新显示名称。 |
| string | 可选。计量器的更新描述。 |
| string | 可选。新状态。可以是 |
| string | 可选。使用情况的新计量单位。 |
| object | 可选。要在计量器上更新的一组键值对。 |
返回
返回更新后的 Meter 对象。
更新一个计量器
import payment from '@blocklet/payment-js';
async function updateMeter(meterId) {
try {
const meter = await payment.meters.update(meterId, {
name: 'API Calls (V2)',
description: 'Tracks V2 API calls.',
});
console.log('计量器已更新:', meter);
} catch (error) {
console.error('更新计量器时出错:', error.message);
}
}
updateMeter('mtr_1J7kL2jQ6F9o3vXbY9t8rGcE');响应示例
{
"id": "mtr_1J7kL2jQ6F9o3vXbY9t8rGcE",
"name": "API Calls (V2)",
"event_name": "api.calls.v1",
"aggregation_method": "sum",
"unit": "requests",
"status": "active",
"livemode": false,
"currency_id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"description": "Tracks V2 API calls.",
"metadata": {},
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:01:00.000Z",
"paymentCurrency": {
"id": "pc_1J7kL2jQ6F9o3vXbY9t8rGcF",
"name": "API Calls Credit",
"symbol": "ACC",
"decimal": 0,
"type": "credit"
}
}列出所有计量器#
返回计量器的分页列表。您可以根据各种条件筛选列表。
参数
Attribute | Type | Description |
|---|---|---|
| number | 可选。用于分页的页码,从 1 开始。默认为 1。 |
| number | 可选。每页返回的项目数。默认为 20。 |
| string | 可选。按特定事件名称筛选计量器。 |
| boolean | 可选。按生产模式状态筛选计量器。 |
| string | 可选。一个搜索查询字符串,根据匹配的 |
返回
返回一个包含 Meter 对象列表的分页对象。
Attribute | Type | Description |
|---|---|---|
| number | 与查询匹配的计量器总数。 |
| array | 当前页的 |
| object | 包含分页信息的对象( |
列出所有计量器
import payment from '@blocklet/payment-js';
async function listMeters() {
try {
const result = await payment.meters.list({
pageSize: 5,
livemode: false,
});
console.log(`找到 ${result.count} 个计量器。`);
console.log('此页上的计量器:', result.list);
} catch (error) {
console.error('列出计量器时出错:', error.message);
}
}
listMeters();响应示例
{
"count": 20,
"list": [
{
"id": "mtr_1J7kL2jQ6F9o3vXbY9t8rGcE",
"name": "API Calls",
"event_name": "api.calls.v1",
"status": "active",
"livemode": false
},
{
"id": "mtr_2K8mN3kR7G0p4wYcZ0u9sHdF",
"name": "Data Storage",
"event_name": "data.storage.gb",
"status": "active",
"livemode": false
}
],
"paging": {
"page": 1,
"pageSize": 5
}
}激活计量器#
激活一个非活动状态的计量器。激活后,该计量器将开始接受使用情况事件。
参数
Attribute | Type | Description |
|---|---|---|
| string | 必需。 要激活的计量器的 ID。 |
返回
返回已激活的 Meter 对象。
激活一个计量器
import payment from '@blocklet/payment-js';
async function activateMeter(meterId) {
try {
const meter = await payment.meters.activate(meterId);
console.log(`计量器 ${meter.id} 现在是 ${meter.status}。`);
} catch (error) {
console.error('激活计量器时出错:', error.message);
}
}
activateMeter('mtr_some_inactive_meter_id');停用计量器#
停用一个计量器。该计量器将停止接受新的使用情况事件,直到被重新激活。
参数
Attribute | Type | Description |
|---|---|---|
| string | 必需。 要停用的计量器的 ID。 |
返回
返回已停用的 Meter 对象。
停用一个计量器
import payment from '@blocklet/payment-js';
async function deactivateMeter(meterId) {
try {
const meter = await payment.meters.deactivate(meterId);
console.log(`计量器 ${meter.id} 现在是 ${meter.status}。`);
} catch (error) {
console.error('停用计量器时出错:', error.message);
}
}
deactivateMeter('mtr_1J7kL2jQ6F9o3vXbY9t8rGcE');创建和配置计量器后,下一步是报告使用情况。要了解如何操作,请参阅计量器事件文档。