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])
此页面是否有帮助?
感谢您的反馈!