usage.limits() 函数
usage.limits() 是实验性的,可能随时更改。
usage.limits() 返回一个包含 InfluxDB Cloud 组织使用限制的记录。
示例输出记录
{
orgID: "123",
rate: {
readKBs: 1000,
concurrentReadRequests: 0,
writeKBs: 17,
concurrentWriteRequests: 0,
cardinality: 10000,
},
bucket: {maxBuckets: 2, maxRetentionDuration: 2592000000000000},
task: {maxTasks: 5},
dashboard: {maxDashboards: 5},
check: {maxChecks: 2},
notificationRule: {maxNotifications: 2, blockedNotificationRules: "comma, delimited, list"},
notificationEndpoint: {blockedNotificationEndpoints: "comma, delimited, list"},
}
函数类型签名
(?host: string, ?orgID: string, ?token: string) => A
有关更多信息,请参见 Function type signatures。
参数
主机
InfluxDB Cloud 区域 URL.
默认值是 "".
(如果在您的 InfluxDB Cloud 组织或区域外执行,则必需).
组织ID
InfluxDB Cloud 组织 ID。默认值为 ""。
(如果在您的 InfluxDB Cloud 组织或区域外执行,则必需).
令牌
InfluxDB Cloud API token。 默认值是 ""。
(如果在您的 InfluxDB Cloud 组织或区域外执行,则必需).
示例
获取您的 InfluxDB Cloud 组织的速率限制
import "experimental/usage"
usage.limits()
获取其他 InfluxDB Cloud 组织的速率限制
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.limits(
host: "https://us-west-2-1.aws.cloud2.influxdata.com",
orgID: "x000X0x0xx0X00x0",
token: token,
)
以表格形式输出组织限制
import "array"
import "experimental/usage"
limits = usage.limits()
array.from(
rows: [
{
orgID: limits.orgID,
limitGroup: "rate",
limitName: "Read (kb/s)",
limit: limits.rate.readKBs,
},
{
orgID: limits.orgID,
limitGroup: "rate",
limitName: "Concurrent Read Requests",
limit: limits.rate.concurrentReadRequests,
},
{
orgID: limits.orgID,
limitGroup: "rate",
limitName: "Write (kb/s)",
limit: limits.rate.writeKBs,
},
{
orgID: limits.orgID,
limitGroup: "rate",
limitName: "Concurrent Write Requests",
limit: limits.rate.concurrentWriteRequests,
},
{
orgID: limits.orgID,
limitGroup: "rate",
limitName: "Cardinality",
limit: limits.rate.cardinality,
},
{
orgID: limits.orgID,
limitGroup: "bucket",
limitName: "Max Buckets",
limit: limits.bucket.maxBuckets,
},
{
orgID: limits.orgID,
limitGroup: "bucket",
limitName: "Max Retention Period (ns)",
limit: limits.bucket.maxRetentionDuration,
},
{
orgID: limits.orgID,
limitGroup: "task",
limitName: "Max Tasks",
limit: limits.task.maxTasks,
},
{
orgID: limits.orgID,
limitGroup: "dashboard",
limitName: "Max Dashboards",
limit: limits.dashboard.maxDashboards,
},
{
orgID: limits.orgID,
limitGroup: "check",
limitName: "Max Checks",
limit: limits.check.maxChecks,
},
{
orgID: limits.orgID,
limitGroup: "notificationRule",
limitName: "Max Notification Rules",
limit: limits.notificationRule.maxNotifications,
},
],
)
输出当前基数及您的基数限制
import "experimental/usage"
import "influxdata/influxdb"
limits = usage.limits()
bucketCardinality = (bucket) =>
(influxdb.cardinality(bucket: bucket, start: time(v: 0))
|> findColumn(fn: (key) => true, column: "_value"))[0]
buckets()
|> filter(fn: (r) => not r.name =~ /^_/)
|> map(fn: (r) => ({bucket: r.name, Cardinality: bucketCardinality(bucket: r.name)}))
|> sum(column: "Cardinality")
|> map(fn: (r) => ({r with "Cardinality Limit": limits.rate.cardinality}))