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();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。