content/flux/v0/stdlib/experimental/usage/from.md
usage.from() returns usage data from an InfluxDB Cloud organization.
(
start: A,
stop: B,
?host: string,
?orgID: string,
?raw: C,
?token: string,
) => stream[D] where D: Record
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
({{< req >}}) Earliest time to include in results.
({{< req >}}) Latest time to include in results.
InfluxDB Cloud region URL.
Default is "".
(Required if executed outside of your InfluxDB Cloud organization or region).
InfluxDB Cloud organization ID. Default is "".
(Required if executed outside of your InfluxDB Cloud organization or region).
InfluxDB Cloud API token.
Default is "".
(Required if executed outside of your InfluxDB Cloud organization or region).
Return raw, high resolution usage data instead of downsampled usage data.
Default is false.
usage.from() can query the following time ranges:
| Data resolution | Maximum time range |
|---|---|
| raw | 1 hour |
| downsampled | 30 days |
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.from(start: -30d, stop: now())
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.from(start: -1h, stop: now(), raw: true)
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.from(
start: -30d,
stop: now(),
host: "https://us-west-2-1.aws.cloud2.influxdata.com",
orgID: "x000X0x0xx0X00x0",
token: token,
)
import "experimental/usage"
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "http_request")
|> filter(fn: (r) => r._field == "req_bytes")
|> filter(fn: (r) => r.endpoint == "/api/v2/write")
|> group(columns: ["_time"])
|> sum()
|> group()
import "experimental/usage"
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "http_request")
|> filter(fn: (r) => r._field == "resp_bytes")
|> filter(fn: (r) => r.endpoint == "/api/v2/query")
|> group(columns: ["_time"])
|> sum()
|> group()
The following query returns query counts for the following query endpoints:
import "experimental/usage"
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "query_count")
|> sort(columns: ["_time"])
The following query compares the amount of data written to and queried from your
InfluxDB Cloud organization to your organization's rate limits.
It appends a limitReached column to each row that indicates if your rate
limit was exceeded.
import "experimental/usage"
limits = usage.limits()
checkLimit = (tables=<-, limit) =>
tables
|> map(fn: (r) => ({r with _value: r._value / 1000, limit: int(v: limit) * 60 * 5}))
|> map(fn: (r) => ({r with limitReached: r._value > r.limit}))
read =
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "http_request")
|> filter(fn: (r) => r._field == "resp_bytes")
|> filter(fn: (r) => r.endpoint == "/api/v2/query")
|> group(columns: ["_time"])
|> sum()
|> group()
|> checkLimit(limit: limits.rate.readKBs)
write =
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "http_request")
|> filter(fn: (r) => r._field == "req_bytes")
|> filter(fn: (r) => r.endpoint == "/api/v2/write")
|> group(columns: ["_time"])
|> sum()
|> group()
|> checkLimit(limit: limits.rate.writeKBs)
union(tables: [read, write])