usage.from() 函数
usage.from()
是实验性的,并且随时可能更改。
usage.from()
从 InfluxDB Cloud 组织返回使用情况数据。
输出数据模式
- http_request 测量
- req_bytes 字段
- resp_bytes 字段
- org_id 标签
- endpoint 标签
- status 标签
- query_count 测量
- req_bytes 字段
- endpoint 标签
- orgID 标签
- status 标签
- storage_usage_bucket_bytes 测量
- gauge 字段
- bucket_id 标签
- org_id 标签
函数类型签名
(
start: A,
stop: B,
?host: string,
?orgID: string,
?raw: C,
?token: string,
) => stream[D] where D: Record
有关更多信息,请参阅函数类型签名。
参数
start
(必需) 结果中包含的最早时间。
stop
(必需) 结果中包含的最晚时间。
host
InfluxDB Cloud 区域 URL。 默认为 ""
。
(如果在您的 InfluxDB Cloud 组织或区域之外执行,则为必需).
orgID
InfluxDB Cloud 组织 ID。 默认为 ""
。
(如果在您的 InfluxDB Cloud 组织或区域之外执行,则为必需).
token
InfluxDB Cloud API 令牌。 默认为 ""
。
(如果在您的 InfluxDB Cloud 组织或区域之外执行,则为必需).
raw
返回原始的、高分辨率的使用情况数据,而不是降采样的使用情况数据。 默认为 false
。
usage.from()
可以查询以下时间范围
数据分辨率 | 最大时间范围 |
---|---|
raw | 1 小时 |
降采样 | 30 天 |
示例
- 查询您的 InfluxDB Cloud 组织的降采样使用情况数据
- 查询您的 InfluxDB Cloud 组织的原始使用情况数据
- 查询不同的 InfluxDB Cloud 组织的降采样使用情况数据
- 查询到 /api/v2/write 端点的请求中的字节数
- 查询从 /api/v2/query 端点返回的字节数
- 查询 InfluxDB Cloud 查询端点的查询计数
- 将使用情况指标与组织使用限制进行比较
查询您的 InfluxDB Cloud 组织的降采样使用情况数据
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.from(start: -30d, stop: now())
查询您的 InfluxDB Cloud 组织的原始使用情况数据
import "experimental/usage"
import "influxdata/influxdb/secrets"
token = secrets.get(key: "INFLUX_TOKEN")
usage.from(start: -1h, stop: now(), raw: true)
查询不同的 InfluxDB Cloud 组织的降采样使用情况数据
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,
)
查询到 /api/v2/write 端点的请求中的字节数
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()
查询从 /api/v2/query 端点返回的字节数
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()
查询 InfluxDB Cloud 查询端点的查询计数
以下查询返回以下查询端点的查询计数
- /api/v2/query:Flux 查询
- /query:InfluxQL 查询
import "experimental/usage"
usage.from(start: -30d, stop: now())
|> filter(fn: (r) => r._measurement == "query_count")
|> sort(columns: ["_time"])
将使用情况指标与组织使用限制进行比较
以下查询将写入和查询 InfluxDB Cloud 组织的数据量与组织的速率限制进行比较。 它将一个 limitReached
列附加到每一行,以指示是否超过了速率限制。
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])
此页面是否有帮助?
感谢您的反馈!