统计接口
更新时间:2026-06-05
统计接口
查询用户站点维度或域名维度的统计指标信息,支持总带宽 / 上下行带宽、总流量 / 上下行流量、PV 等指标。 按接口规范,请求被划分为 5 种类型,分别对应不同的
(group, showType)组合,SDK 提供 5 个独立方法,每个方法对应一种类型,调用方无需关心showType:
| 类型 | 方法 | 是否带 group | 内置 showType | 说明 |
|---|---|---|---|---|
| 1 | GetStatTime |
否 | time |
时间打点 |
| 2 | GetStatPeak |
否 | peak |
峰值 |
| 3 | GetStatTimeByGroup |
是 | time |
时间打点带分组 |
| 4 | GetStatSumByGroup |
是 | sum |
聚合带分组 |
| 5 | GetStatTopByGroup |
是 | top |
TOP 带分组 |
类型 1:GetStatTime — 时间打点(无 group)
Go
1cli := GetDefaultClient()
2result, err := cli.GetStatTime(&api.StatTimeQueryData{
3 Metric: []string{"sum_bps"},
4 StartTime: "2026-05-10T16:00:00Z",
5 EndTime: "2026-05-11T09:06:29Z",
6 Filter: []api.StatFilterItem{
7 {
8 Key: "site",
9 Operation: "equal",
10 Value: []string{"your_site.com"},
11 },
12 },
13})
14b, _ := json.Marshal(result)
15fmt.Printf("result:%s\n", b)
16fmt.Printf("err:%+v\n", err)
类型 2:GetStatPeak — 峰值(无 group)
Go
1cli := GetDefaultClient()
2result, err := cli.GetStatPeak(&api.StatPeakQueryData{
3 Metric: []string{"sum_bps", "upstream_bps", "download_bps"},
4 StartTime: "2026-05-10T16:00:00Z",
5 EndTime: "2026-05-11T09:06:29Z",
6 Filter: []api.StatFilterItem{
7 {
8 Key: "site",
9 Operation: "equal",
10 Value: []string{"your_site.com"},
11 },
12 },
13})
14fmt.Printf("result:%+v\n", result)
15fmt.Printf("err:%+v\n", err)
类型 3:GetStatTimeByGroup — 时间打点带 group
Go
1cli := GetDefaultClient()
2result, err := cli.GetStatTimeByGroup(&api.StatTimeByGroupQueryData{
3 Metric: []string{"pv"},
4 StartTime: "2026-05-10T16:00:00Z",
5 EndTime: "2026-05-11T11:05:47Z",
6 Group: []string{"code"},
7 Filter: []api.StatFilterItem{
8 {
9 Key: "site",
10 Operation: "equal",
11 Value: []string{"your_site.com"},
12 },
13 },
14})
15b, _ := json.Marshal(result)
16fmt.Printf("result:%s\n", b)
17fmt.Printf("err:%+v\n", err)
类型 4:GetStatSumByGroup — 聚合带 group
Go
1cli := GetDefaultClient()
2result, err := cli.GetStatSumByGroup(&api.StatSumByGroupQueryData{
3 Metric: []string{"pv"},
4 StartTime: "2026-05-10T16:00:00Z",
5 EndTime: "2026-05-11T11:05:47Z",
6 Group: []string{"code"},
7 Filter: []api.StatFilterItem{
8 {
9 Key: "site",
10 Operation: "equal",
11 Value: []string{"your_site.com"},
12 },
13 },
14})
15
16b, _ := json.Marshal(result)
17fmt.Printf("stat sum by group: %s\n", b)
18fmt.Printf("err:%+v\n", err)
类型 5:GetStatTopByGroup — TOP 带 group
Go
1cli := GetDefaultClient()
2result, err := cli.GetStatTopByGroup(&api.StatTopByGroupQueryData{
3 Metric: []string{"pv"},
4 StartTime: "2026-05-10T16:00:00Z",
5 EndTime: "2026-05-11T11:05:47Z",
6 Group: []string{"host"},
7 Filter: []api.StatFilterItem{
8 {
9 Key: "site",
10 Operation: "equal",
11 Value: []string{"your_site.com"},
12 },
13 },
14 Limit: &api.StatLimit{PageSize: 100}, // 可选,限制 TOP 返回条数
15})
16b, _ := json.Marshal(result)
17fmt.Printf("result: %s\n", b)
18fmt.Printf("err:%+v\n", err)
请求字段说明
5 种请求类型共享如下基础字段:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Metric | []String | 是 | 指标类型,可选值:sum_bps / upstream_bps / download_bps / sum_flow / upstream_flow / download_flow / pv。 |
| StartTime | String | 否 | 查询时间范围起始值,UTC ISO8601。默认 EndTime 前推 24 小时。最长可查近 31 天。 |
| EndTime | String | 否 | 查询时间范围结束值,UTC ISO8601。默认当前时间。 |
| Filter | []StatFilterItem | 否 | 过滤条件列表。 |
类型 3、4、5 在以上字段基础上额外要求 Group 字段:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Group | []String | 是 | 聚合字段,例如 code、host。 |
类型 5(TOP 查询)在以上字段基础上还可选 Limit 字段:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Limit | *StatLimit | 否 | TOP 返回条数限制,例如 {PageSize:100}。 |
api.StatFilterItem 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Key | String | 是 | 过滤的 key,支持 site、host。 |
| Value | []String | 是 | key 对应的值,支持多个。 |
| Operation | String | 是 | 操作类型,支持 equal、notequal。 |
返回值说明
result是api.StatResult类型(即 map[string][]api.StatDataPoint),key 为请求中的 metric 名称(例如 sum_bps、pv),value 是该指标的数据点列表。
api.StatDataPoint 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| Timestamp | *int64 | 时间戳。类型 1 / 3(time)时为有效值;类型 2 / 4 / 5(peak / sum / top)时为 nil。 |
| Value | json.Number | 指标值。服务端可能返回数字或字符串,统一用 json.Number 承载,可通过 Value.Int64() / Value.Float64() / Value.String() 取值。 |
| GroupParams | json.RawMessage | 聚合参数原始 JSON。无 group(类型 1 / 2)时为空数组 [];带 group(类型 3 / 4 / 5)时为对象(如 {"code":"2xx"})。 |
更多详细说明可以参考API文档:统计接口
评价此篇文章
