usage.limits() function
usage.limits()
is experimental and subject to change at any time.
usage.limits()
returns a record containing usage limits for an InfluxDB Cloud organization.
Example output record
{
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"},
}
Function type signature
(?host: string, ?orgID: string, ?token: string) => A
Parameters
host
InfluxDB Cloud region URL.
Default is ""
.
(Required if executed outside of your InfluxDB Cloud organization or region).
orgID
InfluxDB Cloud organization ID. Default is ""
.
(Required if executed outside of your InfluxDB Cloud organization or region).
token
InfluxDB Cloud API token.
Default is ""
.
(Required if executed outside of your InfluxDB Cloud organization or region).
Examples
- Get rate limits for your InfluxDB Cloud organization
- Get rate limits for a different InfluxDB Cloud organization
- Output organization limits in a table
- Output current cardinality with your cardinality limit
Get rate limits for your InfluxDB Cloud organization
import "experimental/usage"
usage.limits()
Get rate limits for a different InfluxDB Cloud organization
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,
)
Output organization limits in a table
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,
},
],
)
Output current cardinality with your cardinality limit
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}))
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.