docs-v2/content/flux/v0.x/stdlib/influxdata/influxdb/cardinality.md

4.1 KiB

title description menu aliases weight flux/v0.x/tags related introduced
influxdb.cardinality() function The `influxdb.cardinality()` function returns the series cardinality of data stored in InfluxDB.
flux_0_x_ref
name parent
influxdb.cardinality influxdb-pkg
/influxdb/v2.0/reference/flux/stdlib/influxdb/cardinality/
/influxdb/cloud/reference/flux/stdlib/influxdb/cardinality/
/flux/v0.x/stdlib/influxdb/cardinality/
302
metadata
/{{< latest "influxdb" "v1" >}}/query_language/spec/#show-cardinality, SHOW CARDINALITY in InfluxQL
/flux/v0.x/stdlib/experimental/usage/limits/
0.92.0

The influxdb.cardinality() function returns the [series cardinality](/{{< latest "influxdb" "v2" >}}/reference/glossary#series-cardinality) of a specified dataset in InfluxDB.

import "influxdata/influxdb"

influxdb.cardinality(
    bucket: "example-bucket",
    org: "example-org",
    host: "https://cloud2.influxdata.com",
    token: "MySuP3rSecr3Tt0k3n",
    start: -30d,
    stop: now(),
    predicate: (r) => true,
)

// OR

influxdb.cardinality(
    bucketID: "00xXx0x00xXX0000",
    orgID: "00xXx0x00xXX0000",
    host: "https://cloud2.influxdata.com",
    token: "MySuP3rSecr3Tt0k3n",
    start: -30d,
    stop: now(),
    predicate: (r) => true,
)

Parameters

bucket

Bucket to query cardinality from.

bucketID

String-encoded bucket ID to query cardinality from.

org

Organization name.

orgID

String-encoded organization ID to query cardinality from.

host

URL of the InfluxDB instance to query. See InfluxDB Cloud regions or [InfluxDB OSS URLs](/{{< latest "influxdb" "v2" >}}/reference/urls/).

token

InfluxDB [API token](/{{< latest "influxdb" "v2" >}}/security/tokens/).

start

The earliest time to include when calculating cardinality. The cardinality calculation includes points that match the specified start time. Use a relative duration or absolute time. For example, -1h or 2019-08-28T22:00:00Z. Durations are relative to now().

stop

The latest time to include when calculating cardinality. The cardinality calculation excludes points that match the specified start time. Use a relative duration or absolute time. For example, -1h or 2019-08-28T22:00:00Z. Durations are relative to now(). Default is now().

predicate

Predicate function that filters records. Default is (r) => true.

Examples

Query series cardinality in a bucket
import "influxdata/influxdb"

influxdb.cardinality(bucket: "example-bucket", start: -1y)
Query series cardinality in a measurement
import "influxdata/influxdb"

influxdb.cardinality(
    bucket: "example-bucket",
    start: -1y,
    predicate: (r) => r._measurement == "example-measurement",
)
Query series cardinality for a specific tag
import "influxdata/influxdb"

influxdb.cardinality(
    bucket: "example-bucket",
    start: -1y,
    predicate: (r) => r.exampleTag == "foo",
)
Query total cardinality across all buckets
import "influxdata/influxdb"

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, "Total Cardinality": bucketCardinality(bucket: r.name)}))
    |> sum(column: "Total Cardinality")