调用QueryMetric接口查询前端监控的相关监控指标。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

描述

QueryMetric接口可用于查询应用监控和前端监控的相关监控指标。本文以查询前端监控的相关指标为例。

API名称 Request Response
QueryMetric QueryMetricRequest QueryMetricResponse

请求参数

请求参数包含公共参数和业务参数。

公共参数

公共请求参数请参见公共参数

业务参数

阿里云将用户的所有请求参数封装在一个Request中,返回一个Response。

名称 类型 设置方法 是否必选 示例值 描述
StartTime Long setStartTime 1595319532000 查询数据的起始时间。
EndTime Long setEndTime 1596183532000 查询数据的截止时间。
Metric String setMetric webstat.index 需查询的指标,不可自定义输入,详情请参见可查询的前端监控指标
Measures List[String] setMesures ["pv","uv"] 指标对应的测量数据,详情请参见可查询的前端监控指标。最多可添加5个。
Dimensions List[String] setDimensionss ["detector_browser","detector_device"] 指标对应的维度,详情请参见可查询的前端监控指标。最多可添加5个。
Filters List[Filter] setFilters [{key:pid,value:xxx@74xxx},{key:regionId,value:cn-hangzhou}] 筛选条件组合,必须添加pidregionId条件,pid获取方式请参见如何获取应用pid
IntervalInSec Integer setIntervalInSec 100,000 数据片的时间间隔,单位为毫秒,最小值为60,000。
说明 如需不限制时间范围,则将该参数设为2147483647。
OrderBy String setOrderBy count 排序依据,可设为任一测量数据。
Limit Integer setLimit 100 自定义的返回结果数量限制。
说明 因为POP网关的限制,超出10,000条的数据将被去除。
Order String setOrder ASC 排序标准:
  • ASC:升序
  • DESC:降序
SecurityToken String setSecurityToken atc19s******* STS SecurityToken,采用RAM用户角色模式时需要设置该字段。详情请参见借助RAM角色实现跨云账号访问资源

Filters复合字段说明

字段名称 字段类型 设置方法 字段含义 取值
Key String setKey 维度名称
  • pid(必选)
  • regionId(必选)
  • environment(可选)
Value String setValue 维度值
  • pid的示例值:xxx@74xxx
  • regionId的示例值:cn-hangzhou
  • environment的取值:
    • prod:表示线上环境
    • gray:表示灰度环境
    • pre:表示预发环境
    • daily:表示日常环境
    • local:表示本地环境
注意 前端监控所有的指标查询中必须在Filters中添加pidregionId条件。

如何获取前端应用pid

登录ARMS控制台,在控制台左侧导航栏单击前端监控,然后在前端监控页面单击目标前端应用名称,以进入该前端应用的总览页面。

此时浏览器地址栏中的URL即包含前端应用的pid,格式为pid=xxx。由于浏览器进行了编码,前端应用需要对pid稍作修改。例如,如果URL中包含的pid为xxx%4074xxx,则需要将%40替换为@,即:xxx@74xxx

返回参数

返回值为JSON串形式,可通过QueryMetricResponse.getdata()获取。

字段名称 字段含义
data 数据点

可查询的前端监控指标

您可以使用QueryMetric接口查询前端监控的以下指标。

说明 已知具体的查询条件时,应将值传入Filters参数中,用于限定查询结果的范围。如果不知道具体的查询条件,可以将下表中的维度传入dimensions参数,从而获得该维度所有可能值的列表。
指标(Metric) 描述 维度(Dimensions) 测量数据(Measures)
webstat.api API成功率
  • api(API请求地址,不带参数)
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • release(版本号)
  • sr(屏幕分辨率)
  • count(请求次数)
  • rate(API成功率)
  • time(平均耗时)
webstat.api.detail API详情
  • api(API请求地址,不带参数)
  • ct(网络制式)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • domain(域名)
  • ip_country_id(中国省市ID)
  • ip_isp(运营商)
  • ip_region_id(国家ID或区域ID)
  • msg(返回信息)
  • page(页面地址)
  • sr(屏幕分辨率)
  • count(请求次数)
  • fail_count(失败次数)
  • fail_time(失败耗时)
  • fail_uv(失败影响用户数)
  • success_count(成功次数)
  • success_rate(成功率)
  • success_time(成功耗时)
webstat.apicost API成功耗时
  • api(API请求地址,不带参数)
  • code(返回状态码)
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • release(版本号)
  • sr(屏幕分辨率)
  • count(成功次数)
  • time(成功耗时均值)
webstat.apifailtime API失败耗时
  • api(API请求地址,不带参数)
  • code(返回状态码)
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • release(版本号)
  • sr(屏幕分辨率)
  • count(错误次数)
  • time(失败耗时均值)
webstat.apimsg API消息聚类
  • code(返回状态码)
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • msg(错误信息)
  • release(版本号)
  • sr(屏幕分辨率)
  • success(1表示请求成功,0表示请求失败)

count(请求次数)

webstat.avg 自定义统计:均值统计
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • key(自定义Key)
  • sr(屏幕分辨率)
  • count(总次数)
  • pv(页面浏览量)
  • uv
  • val(平均值)
webstat.errcate 错误聚类排行
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • msg(错误信息)
  • page(页面地址)
  • release(版本号)
  • sr(屏幕分辨率)

count(错误次数)

webstat.index 总览(访问量)
  • ct(网络制式)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_isp(运营商)
  • ip_region_id(国家ID或区域ID)
  • page(页面地址)
  • sr(屏幕分辨率)
  • pv(页面浏览量)
  • uv(独立访客)
webstat.msg.top 页面高频错误
  • msg(错误信息)
  • page(页面地址)
  • count(错误次数)
  • error_uv(影响用户数)
  • 影响用户率(影响用户数÷总UV)
webstat.perf.bucket 对应ARMS前端监控控制台的访问速度页面上的性能样本分层图。
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • page(页面地址)
  • sr(屏幕分辨率)
  • cfpt(自定义首屏)
  • ctti(自定义首次可交互)
  • dns(DNS查询耗时)
  • dom(DOM解析耗时)
  • fmp(首屏时间)
  • fpt(首次渲染时间)
  • load(页面完全加载时间)
  • ready(DOM Ready时间)
  • res(资源加载耗时)
  • ssl(SSL安全连接耗时)
  • t1~t10(自定义性能指标)
  • tcp(TCP连接耗时)
  • trans(内容传输耗时)
  • ttfb(请求响应耗时)
  • tti(首次可交互时间)
webstat.perf.distribution 对应ARMS前端监控控制台的访问速度页面上的性能分层图。
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • page(页面地址)
  • sr(屏幕分辨率)
  • cfpt(自定义首屏)
  • ctti(自定义首次可交互)
  • dns(DNS查询耗时)
  • dom(DOM解析耗时)
  • fmp(首屏时间)
  • fpt(首次渲染时间)
  • load(页面完全加载时间)
  • ready(DOM Ready时间)
  • res(资源加载耗时)
  • ssl(SSL安全连接耗时)
  • t1~t10(自定义性能指标)
  • tcp(TCP连接耗时)
  • trans(内容传输耗时)
  • ttfb(请求响应耗时)
  • tti(首次可交互时间)
webstat.resource 资源错误排行
  • ct(网络制式)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_isp(运营商)
  • ip_region_id(国家ID或区域ID)
  • node_name(错误类型)
  • page(页面地址)
  • sr(屏幕分辨率)
  • src(资源信息)
count(资源错误数)
webstat.resource 对应ARMS前端监控控制台的总览页面的资源弹层。
  • ct(网络制式)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_isp(运营商)
  • ip_region_id(国家ID或区域ID)
  • node_name(错误类型)
  • page(页面地址)
  • sr(屏幕分辨率)
  • src(资源信息)
count(错误次数)
webstat.satisfy 满意度
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • page(页面地址)
  • sr(屏幕分辨率)
  • bad(不满意:fpt>8000)
  • good(满意:fpt<2000)
  • neutral(可容忍:fpt>2000且fpt<8000)
  • satisfy(满意指数)
webstat.session 慢加载追踪
  • browser_version(浏览器版本)
  • browser(浏览器)
  • date(开始时间)
  • dom(DOM解析耗时)
  • ip_country_id(中国省市ID)
  • ip_country(中国省市)
  • ip_region_id(国家ID或区域ID)
  • ip_region(国家或区域)
  • load(页面完全加载)
  • page(页面地址)
  • sid(会话ID)
webstat.speed 访问速度
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • release(版本号)
  • sr(屏幕分辨率)
  • cfpt(自定义首屏)
  • count(样本量)
  • ctti(自定义首次可交互)
  • dns(DNS查询耗时)
  • dom(DOM解析耗时)
  • fmp(首屏时间)
  • fpt(首次渲染时间)
  • load(页面完全加载时间)
  • ready(DOM Ready时间)
  • res(资源加载耗时)
  • ssl(SSL安全连接耗时)
  • t1~t10(自定义性能指标)
  • tcp(TCP连接耗时)
  • trans(内容传输耗时)
  • ttfb(请求响应耗时)
  • tti(首次可交互时间)
webstat.stable 错误率排行
  • detector_app_version(客户端版本)
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • release(版本号)
  • sr(屏幕分辨率)
  • count(样本量)
  • error_pv(错误样本量)
  • rate(JS错误率)
webstat.sum 自定义统计:求和统计
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • key(自定义key)
  • sr(屏幕分辨率)
  • count(总次数)
  • pv(页面浏览量)
  • sum_val(总和)
  • uv(独立访客)
webstat.url 访问的URL
  • detector_browser(浏览器)
  • detector_device(设备)
  • detector_os(操作系统)
  • ip_country_id(中国省市ID)
  • ip_region_id(国家ID或区域ID)
  • sr(屏幕分辨率)
  • uid
  • username(用户名)
  • pv(页面浏览量)
  • uv(独立访客)

示例代码

使用QueryMetric接口查询前端监控总览页面的PV与UV的示例代码如下:

  1. import com.aliyuncs.DefaultAcsClient;
  2. import com.aliyuncs.IAcsClient;
  3. import com.aliyuncs.exceptions.ClientException;
  4. import com.aliyuncs.exceptions.ServerException;
  5. import com.aliyuncs.profile.DefaultProfile;
  6. import com.google.gson.Gson;
  7. import java.util.*;
  8. import com.aliyuncs.arms.model.v20190808.*;
  9. public class ARMSDemo {
  10. public static void main(String[] args) {
  11. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessKeySecret>");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. QueryMetricRequest request = new QueryMetricRequest();
  14. request.setEndTime(1555488869888);
  15. request.setStartTime(1555482869888);
  16. request.setMetric("webstat.index");
  17. List<String> measuresList = new ArrayList<String>();
  18. measuresList.add("pv");
  19. measuresList.add("uv");
  20. request.setMeasuress(measuresList);
  21. List<QueryMetricRequest.Filters> filtersList = new ArrayList<QueryMetricRequest.Filters>();
  22. QueryMetricRequest.Filters filters1 = new QueryMetricRequest.Filters();
  23. filters1.setKey("pid");
  24. filters1.setValue("xxx");
  25. filtersList.add(filters1);
  26. QueryMetricRequest.Filters filters2 = new QueryMetricRequest.Filters();
  27. filters2.setKey("regionId");
  28. filters2.setValue("cn-hangzhou");
  29. filtersList.add(filters2);
  30. request.setFilterss(filtersList);
  31. try {
  32. QueryMetricResponse response = client.getAcsResponse(request);
  33. System.out.println(new Gson().toJson(response));
  34. } catch (ServerException e) {
  35. e.printStackTrace();
  36. } catch (ClientException e) {
  37. System.out.println("ErrCode:" + e.getErrCode());
  38. System.out.println("ErrMsg:" + e.getErrMsg());
  39. System.out.println("RequestId:" + e.getRequestId());
  40. }
  41. }
  42. }
  1. const Core = require('@alicloud/pop-core');
  2. var client = new Core({
  3. accessKeyId: '<accessKeyId>',
  4. accessKeySecret: '<accessKeySecret>',
  5. endpoint: 'http://arms.cn-hangzhou.aliyuncs.com',
  6. apiVersion: '2019-08-08'
  7. });
  8. var params = {
  9. "Measures.1": "pv",
  10. "Measures.2": "uv",
  11. "Filters.1.Key": "pid",
  12. "Filters.1.Value": "xxx",
  13. "Filters.2.Key": "regionId",
  14. "Filters.2.Value": "cn-hangzhou",
  15. "Metric": "webstat.index",
  16. "StartTime": 1555482869888,
  17. "EndTime": 1555488869888
  18. }
  19. var requestOption = {
  20. method: 'POST'
  21. };
  22. client.request('QueryMetric', params, requestOption).then((result) => {
  23. console.log(result);
  24. }, (ex) => {
  25. console.log(ex);
  26. })
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/arms"
  5. )
  6. func main() {
  7. client, err := arms.NewClientWithAccessKey("cn-hangzhou", "<accessKeyId>", "<accessKeySecret>")
  8. request := arms.CreateQueryMetricRequest()
  9. request.EndTime = "1555488869888"
  10. request.StartTime = "1555482869888"
  11. request.Metric = "webstat.index"
  12. request.Measures = &[]string{"pv", "uv"}
  13. request.Filters = &[]arms.QueryMetricFilters{
  14. {
  15. Key: "pid",
  16. Value: "xxx",
  17. },
  18. {
  19. Key: "regionId",
  20. Value: "cn-hangzhou",
  21. },
  22. }
  23. response, err := client.QueryMetric(request)
  24. if err != nil {
  25. fmt.Print(err.Error())
  26. }
  27. fmt.Printf("response is %#v\n", response)
  28. }
  1. <?php
  2. use AlibabaCloud\Client\AlibabaCloud;
  3. use AlibabaCloud\Client\Exception\ClientException;
  4. use AlibabaCloud\Client\Exception\ServerException;
  5. // Download:https://github.com/aliyun/openapi-sdk-php-client
  6. // Usage:https://github.com/aliyun/openapi-sdk-php-client/blob/master/README-CN.md
  7. AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessKeySecret>')
  8. ->regionId('cn-hangzhou') // replace regionId as you need
  9. ->asGlobalClient();
  10. try {
  11. $result = AlibabaCloud::rpcRequest()
  12. ->product('ARMS')
  13. // ->scheme('https') // https | http
  14. ->version('2019-08-08')
  15. ->action('QueryMetric')
  16. ->method('POST')
  17. ->options([
  18. 'query' => [
  19. 'Measures.1' => 'pv',
  20. 'Measures.2' => 'uv',
  21. 'Filters.1.Key' => 'pid',
  22. 'Filters.1.Value' => 'xxx',
  23. 'Filters.2.Key' => 'regionId',
  24. 'Filters.2.Value' => 'cn-hangzhou',
  25. 'Metric' => 'webstat.index',
  26. 'StartTime' => '1555482869888',
  27. 'EndTime' => '1555488869888',
  28. ],
  29. ])
  30. ->request();
  31. print_r($result->toArray());
  32. } catch (ClientException $e) {
  33. echo $e->getErrorMessage() . PHP_EOL;
  34. } catch (ServerException $e) {
  35. echo $e->getErrorMessage() . PHP_EOL;
  36. }
  1. #!/usr/bin/env python
  2. #coding=utf-8
  3. from aliyunsdkcore.client import AcsClient
  4. from aliyunsdkcore.acs_exception.exceptions import ClientException
  5. from aliyunsdkcore.acs_exception.exceptions import ServerException
  6. from aliyunsdkarms.request.v20190808.QueryMetricRequest import QueryMetricRequest
  7. client = AcsClient('<accessKeyId>', '<accessKeySecret>', 'cn-hangzhou')
  8. request = QueryMetricRequest()
  9. request.set_accept_format('json')
  10. request.set_EndTime(1555488869888)
  11. request.set_StartTime(1555482869888)
  12. request.set_Metric("webstat.index")
  13. request.set_Measuress(["pv","uv"])
  14. request.set_Filterss([
  15. {
  16. "Key": "pid",
  17. "Value": "xxx"
  18. },
  19. {
  20. "Key": "regionId",
  21. "Value": "cn-hangzhou"
  22. }
  23. ])
  24. response = client.do_action_with_exception(request)
  25. # python2: print(response)
  26. print(str(response, encoding='utf-8'))
  1. using System;
  2. using System.Collections.Generic;
  3. using Aliyun.Acs.Core;
  4. using Aliyun.Acs.Core.Exceptions;
  5. using Aliyun.Acs.Core.Profile;
  6. using Aliyun.Acs.ARMS.Model.V20190808;
  7. namespace ARMSDemo
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<accessKeySecret>");
  14. DefaultAcsClient client = new DefaultAcsClient(profile);
  15. var request = new QueryMetricRequest();
  16. request.EndTime = 1555488869888;
  17. request.StartTime = 1555482869888;
  18. request.Metric = "webstat.index";
  19. var measuresList = new List<String>();
  20. measuresList.Add("pv");
  21. measuresList.Add("uv");
  22. request.Measuress = measuresList;
  23. var filtersList = new List<QueryMetricRequest.Filters>();
  24. var filters1 = new QueryMetricRequest.Filters();
  25. filters1.Key = "pid";
  26. filters1.Value = "xxx";
  27. filtersList.Add(filters1);
  28. var filters2 = new QueryMetricRequest.Filters();
  29. filters2.Key = "regionId";
  30. filters2.Value = "cn-hangzhou";
  31. filtersList.Add(filters2);
  32. request.Filterss = filtersList;
  33. try {
  34. var response = client.GetAcsResponse(request);
  35. Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
  36. }
  37. catch (ServerException e)
  38. {
  39. Console.WriteLine(e);
  40. }
  41. catch (ClientException e)
  42. {
  43. Console.WriteLine(e);
  44. }
  45. }
  46. }
  47. }
  1. # gem install aliyunsdkcore
  2. require 'aliyunsdkcore'
  3. client = RPCClient.new(
  4. access_key_id: '<accessKeyId>',
  5. access_key_secret: '<accessKeySecret>',
  6. endpoint: 'https://arms.aliyuncs.com',
  7. api_version: '2019-08-08'
  8. )
  9. response = client.request(
  10. action: 'QueryMetric',
  11. params: {
  12. "Measures.1": "pv",
  13. "Measures.2": "uv",
  14. "Filters.1.Key": "pid",
  15. "Filters.1.Value": "xxx",
  16. "Filters.2.Key": "regionId",
  17. "Filters.2.Value": "cn-hangzhou",
  18. "Metric": "webstat.index",
  19. "StartTime": 1555482869888,
  20. "EndTime": 1555488869888
  21. },
  22. opts: {
  23. method: 'POST'
  24. }
  25. )
  26. print JSON.parse(response.body)

常见问题

  • 调用时为什么会出现RAM的权限问题?

    这可能是由于该RAM角色没有权限,您可以为用户添加权限,详情请参见借助RAM角色实现跨云账号访问资源

  • 怎么拉取列表数据(不考虑时间粒度)?

    intervalInSec设置为2147483647。

  • 为什么返回的数据值都为0?

    • 请检查时间间隔是否设置过小,intervalInSec需要大于或等于60,000。
    • 请检查regionId是否设置正确,该regionId是根据日志接收的服务端划分的地域,而不是用户所在的地域,您可以根据项目的上报日志地址来区分regionId
      • 华东1(杭州)地域前端监控上报日志地址:https://arms-retcode.aliyuncs.com/r.png?
      • 新加坡(新加坡)地域前端监控上报日志地址:https://arms-ap-southeast-1.console.aliyun.com/r.png?
      • 美国(硅谷)地域前端监控上报日志地址: http://arms-us-west-1.console.aliyun.com/r.png?
  • 在调用模拟器或代码接口时为什么会报错?

    • 请检查regionId是否已填写,filters中是否已添加pid
    • 查看对应指标的measuresdimensions是否正确,详情请参见可查询的前端监控指标
  • 报错信息以及对应解决方案

    • Metric查询错误,请联系管理员。
      • 请检查Metric字段是否正确。
      • 请检查measuresdimensions是否正确。
      • 请检查filters中是否已添加pid
    • InvalidIntervalInSec

      请检查intervalInSec是否超过最大值(2147483647)。

    • MissingMeasures

      请检查measures是否已填写。

    • NonsequenceParameter.Dimensions
      • 请检查dimensions是否已填写正确。
      • 请检查模拟器dimensions是否有多余的空格。
    • ServiceUnavailable

      请检查regionId是否正确。

    • 前端监控地域不合法

      请检查regionId是否设置正确,该regionId是根据日志接收的服务端划分的地域,而不是用户所在的地域,您可以根据项目的上报日志地址来区分regionId

      • 华东1(杭州)地域前端监控上报日志地址:https://arms-retcode.aliyuncs.com/r.png?
      • 新加坡(新加坡)地域前端监控上报日志地址:https://arms-ap-southeast-1.console.aliyun.com/r.png?
      • 美国(硅谷)地域前端监控上报日志地址: http://arms-us-west-1.console.aliyun.com/r.png?
  • 为什么数据集中会缺失一些 measuresdimensions参数?

    因为最多可设置5个measuresdimensions,如果超过5个,将导致参数无法返回。

  • 为什么一些指标的总数在聚合后明显少于未聚合时?例如:webstat.index聚合后求和的pv总数比未聚合时得到的pv总数少。

    因为POP网关的限制,超出10,000条的数据将被去除,所以当聚合造成数据量超过限制时,返回的数据量比实际的量小,因此指标求和的总数会明显减少。您需要将每次请求后返回的数据量控制在10,000条以内,以获得准确的数据。