usage.limits() function
The usage.limits()
function is experimental and subject to change at any time.
By using this function, you accept the risks of experimental functions.
The usage.limits()
function returns a record containing usage limits for an
InfluxDB Cloud organization.
import "experimental/usage"
usage.limits(
host: "",
orgID: "",
token: "",
)
Parameters
host
InfluxDB Cloud region URL (Required if executed outside of your InfluxDB Cloud organization or region).
Default is ""
.
orgID
InfluxDB Cloud organization ID (Required if executed outside of your InfluxDB Cloud organization or region).
Default is ""
.
token
InfluxDB Cloud API token (Required if executed outside of your InfluxDB Cloud organization or region).
Default is ""
.
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://cloud2.influxdata.com", orgID: "x000X0x0xx0X00x0", token: token)
Output organization limits in a table
import "array"
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
limits = usage.limits(host: "https://cloud2.influxdata.com", orgID: "x000X0x0xx0X00x0", token: token)
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}))
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, the following resources are available:
InfluxDB Cloud customers can contact InfluxData Support.