开发者社区> 问答> 正文

消息收发统计怎么制作

OnsMqttQueryMsgTransTrend 接口根据 Topic 等信息查询历史消息收发量。

使用场景

查询历史消息收发曲线功能一般用于生成数据报表,统计业务规模等场景。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    当前操作的MQ所在区域,详情参见公共术语。
OnsPlatform    String    否    请求来源,默认是从 POP 平台。
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可。
ParentTopic    String    是    需要查询的一级父 Topic。
SubTopic    String    否    查询的子 Topic,如果没有或者查询所有的 Topic 信息,可以不填。
MsgType    String    否    消息类别,p2p 或者是 sub,如果不填则默认查所有消息,填其他值无效。
TpsType    String    是    查询类别,TPS 或者 SUM,分别代表是查询总量还是 TPS 信息,其他值无效。
TransType    String    是    收发类别,PUB 或者是 SUB,代表查询发送还是接收,其他值无效。
Qos    Integer    是    查询的 QoS 级别,0,1,2,填其他值或者不填都默认查所有消息。
BeginTime    Long    是    查询的起始时间
EndTime    Long    是    查询的终止时间,起止时间范围建议尽可能在当天,否则后端会自动截断。
返回参数列表

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

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

名称    类型    描述
X    Long    横轴,毫秒时间戳。
Y    Float    纵轴,数据(TPS 或者总量)。
错误码列表



相关 API



使用示例

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

    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);
        OnsMqttQueryMsgTransTrendRequest request = new OnsMqttQueryMsgTransTrendRequest();
        /**
        *ONSRegionId 是指你需要 API 访问 MQ 哪个区域的资源。
        *该值必须要根据 OnsRegionList 方法获取的列表来选择和配置,因为 OnsRegionId 是变动的,不能够写固定值。
        */
        request.setOnsRegionId("XXXX");
        request.setPreventCache(System.currentTimeMillis());
        request.setAcceptFormat(FormatType.JSON);
        request.setParentTopic("MQTT_TOPIC_ONSMONITOR_BJ");
        //request.setMsgType("sub");
        request.setTpsType("SUM");
        request.setTransType("PUB");
        //request.setQos(1);
        request.setBeginTime(System.currentTimeMillis()-1000*3600);
        request.setEndTime(System.currentTimeMillis());
        try {
                 OnsMqttQueryMsgTransTrendResponse response = iAcsClient.getAcsResponse(request);
                   OnsMqttQueryMsgTransTrendResponse.Data data =response.getData();
                System.out.println(data.getTitle()+"\n"+
                data.getRecords());
        } catch (ServerException e) {
          e.printStackTrace();
        } catch (ClientException e) {
          e.printStackTrace();
        }
    }

展开
收起
猫饭先生 2017-10-27 14:11:16 1657 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
内容驱动游戏分发 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载