EdgeOne 数据查询接口支持传入
DimensionName参数用于指定返回数据中的分组维度,以实现一次查询获取多个分组数据的效果,可以极大程度上减少 API 调用频次,简化您获取统计数据的操作。例如:在某次调用中入参 DimensionName = domain,则返回数据将按照每个域名单独返回一组数据。适用范围
分组查询功能适用于以下 API:
使用场景
以下场景展示了如何通过组合
DimensionName 与 Filters 参数,实现高效、灵活的数据获取。在涉及大量域名或精细状态码的查询时,建议优先使用 Filters进行预筛选,并选择合适的查询粒度(Interval)。场景1:批量获取多域名数据
在单一请求中同时查询多个域名的指标数据,避免为每个域名发起单独调用。
入参示例
{"ZoneIds": ["*"],"MetricNames": ["l7Flow_inFlux_hy"],"StartTime": "2025-12-01T00:00:00Z","EndTime": "2025-12-02T00:00:00Z","Interval": "hour","Filters": [{"Key": "domain","Operator": "equals","Value": ["example.com", "api.example.com"]}],"DimensionName": "domain"}
场景2:按状态码类别进行聚合分析
获取按回源状态码大类(如2xx, 4xx, 5xx)分组的聚合数据。
入参示例
{"ZoneIds": ["*"],"MetricNames": ["l7Flow_request_hy"],"StartTime": "2025-12-01T00:00:00Z","EndTime": "2025-12-01T12:00:00Z","Interval": "hour","Filters": [{"Key": "originStatusCode","Operator": "equals","Value": ["2xx", "4xx", "5xx"]}],"DimensionName": "origin-status-code-category"}
使用限制
单次请求最多返回 50,000 个数据项
TimingDataItem。数据项总数的计算规则如下:指标个数 * 时间点个数 * 维度值个数 = 数据项总数
指标个数:
MetricNames的列表长度。时间点个数:
(EndTime - StartTime) / Interval。维度值个数:
当未指定
DimensionName 时,默认按账号维度汇总数据,维度值个数为 1。当
DimensionName = domain 时,维度值个数为 Filters 中 domain 过滤条件指定的域名列表长度。当
DimensionName = origin-status-code-category 时,维度值个数默认为 6。当
DimensionName = origin-status-code 时,维度值个数默认为 600。DimensionName 可以与 Filters 组合使用,通过在 Filters 中指定 DimensionName 对应的过滤条件以限制维度值个数。示例
以查询某一小时的具体状态码维度的时序数据为例,假设查询条件如下:
MetricNames = ["l7Flow_request_hy"](指标个数 = 1)StartTime = 2025-10-01T06:00:00+08:00,EndTime = 2025-10-01T06:59:59+08:00,Interval = "min"(时间点个数 = 60)DimensionName = origin-status-code,Filters = [{"originStatusCode": ["0", "4xx", "5xx"]}](维度值个数 = 201)则数据项总数为:
1 × 60 × 201 = 12060
未超过限制。
注意:
若查询的数据项总数超过 50,000,系统会返回错误
LimitExceeded.TimingDataItemLimitExceeded。此时,请通过调整入参减少单次查询的数据项至 50,000 以内,可采取的做法有:
1. 减少时间点个数:
缩短查询时间范围(
StartTime 到 EndTime 之间的时间跨度)。选择更大的时间间隔(
Interval)。2. 减少维度值个数:
调整
Filters,指定更少的 domain 或 originStatusCode 列表。3. 减少指标值个数:
调整
MetricNames,指定更少的查询指标。