全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息队列 MQ

查询历史在线统计

更新时间:2017-12-15 20:40:56

OnsMqttQueryHistoryOnline 接口根据 GroupId 分组和给定的时间段查询历史在线设备的数量曲线。

使用场景

查询历史在线设备数曲线的功能一般用于生成业务报表。

请求参数列表

名称 类型 是否必须 描述
OnsRegionId String 当前操作的 MQ 所在区域,详情参见公共术语
OnsPlatform String 请求来源,默认是从 POP 平台。
PreventCache Long 用于 CSRF 校验,设置为系统当前时间即可。
GroupId String 需要查询的目标分组 GroupId。
BeginTime Long 查询的起始时间
EndTime Long 查询的终止时间,起止时间范围建议尽可能在当天,否则后端会自动截断。

返回参数列表

名称 类型 描述
RequestId String 为公共参数,每个请求独一无二。
HelpUrl String 帮助链接
data Data 数据集合

Data 数据集定义

名称 类型 描述
Title String table 的名称
Records List(StatsDataDo) 采集点信息

StatsDataDo 数据集定义

名称 类型 描述
X Long 横轴,毫秒时间戳。
Y Float 纵轴,数量。

错误码列表

相关 API

OnsMqttQueryClientByGroupId:根据 GroupId 查询当前在线客户端数量。

使用示例

本示例仅仅提供一个参考,从杭州接入点接入,查询指定 GroupId 过去一小时的在线数量信息。


    public static void main(String[] args) {
        String regionId = "cn-hangzhou";
        String accessKey = "XXXXXXXXXXXXXXXXX";
        String secretKey = "XXXXXXXXXXXXXXXXX";
        String endPointName ="cn-hangzhou";
        String productName ="Ons";
        String domain ="ons.cn-hangzhou.aliyuncs.com";

        /**
        *根据自己所在的区域选择 Region 后,设置对应的接入点。
        */
        try {
            DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
        IAcsClient iAcsClient= new DefaultAcsClient(profile);
        OnsMqttQueryHistoryOnlineRequest request = new OnsMqttQueryHistoryOnlineRequest();
        /**
        *ONSRegionId 是指你需要 API 访问 MQ 哪个区域的资源。
        *该值必须要根据 OnsRegionList 方法获取的列表来选择和配置,因为 OnsRegionId 是变动的,不能够写固定值。
        */
        request.setOnsRegionId("XXXX");
        request.setPreventCache(System.currentTimeMillis());
        request.setAcceptFormat(FormatType.JSON);
        request.setGroupId("XXX");
        request.setBeginTime(System.currentTimeMillis()-1000*3600);
        request.setEndTime(System.currentTimeMillis());
        try {
                 OnsMqttQueryHistoryOnlineResponse response = iAcsClient.getAcsResponse(request);
                   OnsMqttQueryHistoryOnlineResponse.Data data =response.getData();
                System.out.println(data.getTitle()+"\n"+
                data.getRecords());
        } catch (ServerException e) {
          e.printStackTrace();
        } catch (ClientException e) {
          e.printStackTrace();
        }
    }
本文导读目录