使用 OnsConsumerStatus 接口查询指定 Group ID 的详细状态数据,包含订阅关系检查、消费 TPS 统计、负载均衡状态、消费端连接等。
使用 OnsConsumerStatus 接口时,请注意以下几点:
- OnsConsumerStatus 接口一般用于在粗略判断消费堆积以及客户端在线状态后,需要排查消费异常原因的场景,可以根据返回结果判断出指定 Group ID 的订阅关系是否一致、负载均衡是否正常以及获取在线客户端的 Jstack 信息等。
- OnsConsumerStatus 接口需要调用大量后端接口以完成数据聚合,因此查询速度慢,不建议频繁调用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | OnsConsumerStatus |
系统规定参数。取值:OnsConsumerStatus。 |
GroupId | String | 是 | GID_test_group_id |
需要查询的消费端 Group ID。 |
InstanceId | String | 是 | MQ_INST_111111111111_DOxxxxxx |
需查询的 Group ID 所对应的实例 ID。 |
Detail | Boolean | 否 | true |
是否查询详细信息。取值说明如下:
|
NeedJstack | Boolean | 否 | true |
是否打印 Jstack 信息。取值说明如下:
|
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Data | Struct |
查询结果。 |
|
ConnectionSet | Array |
该集群当前在线客户端信息。 |
|
ConnectionDo | |||
ClientAddr | String | 30.5.121.** |
该消费实例的地址和端口。 |
ClientId | String | 30.5.121.**@25560#-1999745829#-1737591554#458773089270275 |
消费实例的 ID。 |
Language | String | JAVA |
消费端语言。 |
RemoteIP | String | 42.120.74.** |
宿主机 IP 地址或公网 IP 地址。 |
Version | String | V4_3_6_SNAPSHOT |
消费端版本。 |
ConsumeModel | String | CLUSTERING |
消费模型。取值说明如下:
两种订阅模式的详情请参见集群消费和广播消费。 |
ConsumeTps | Float | 0 |
总消费 TPS。 |
ConsumerConnectionInfoList | Array |
该集群在线客户端详细信息,包含 Jstack、消费 RT 时间等信息。如需获取详细信息,请确保将 Detail 请求参数设置为 true。否则返回值为空。 |
|
ConsumerConnectionInfoDo | |||
ClientId | String | 30.5.**.**@25560#-1999745829#-1737591554#458773089270275 |
消费实例的 ID。 |
Connection | String | ** |
连接信息。 |
ConsumeModel | String | CLUSTERING |
消费模型。取值说明如下:
两种订阅模式的详情请参见集群消费和广播消费。 |
ConsumeType | String | PUSH |
消费者消费消息的模式。取值说明如下:
|
Jstack | Array |
Jstack 堆栈信息。如需获取 Jstack 信息,请确保将 NeedJstack 入参设置为 true。否则返回值为空。 |
|
ThreadTrackDo | |||
Thread | String | ConsumeMessageThread_0 |
线程名称。 |
TrackList | List | TID: 52 STATE: WAITING |
Jstack 堆栈信息字符串。 |
Language | String | JAVA |
客户端语言。 |
LastTimeStamp | Long | 1570701368114 |
最后消费时间。 |
RunningDataList | Array |
实时状态统计。 |
|
ConsumerRunningDataDo | |||
FailedCountPerHour | Long | 0 |
每小时内消费失败的消息数统计。 |
FailedTps | Float | 0 |
消费消息失败的 TPS 统计。 |
GroupId | String | 0 |
订阅方的 Group ID。 |
OkTps | Float | 0 |
消费消息成功的 TPS 统计。 |
Rt | Float | 0 |
消费 RT 时间,单位 ms。 |
Topic | String | test-mq_topic |
订阅的 Topic 名称。 |
StartTimeStamp | Long | 1570701361528 |
消费开始时间。 |
SubscriptionSet | Array |
订阅关系集合。 |
|
SubscriptionData | |||
SubString | String | * |
订阅该 Topic 的子类别 Tag 表达式。 |
SubVersion | Long | 1570701364301 |
订阅关系版本号,为自增 Long 型。 |
TagsSet | List | ff |
订阅的 Tag 集合。 |
Topic | String | test-mq_topic |
订阅的 Topic 名称。 |
ThreadCount | Integer | 20 |
消费线程数。 |
Version | String | V4_3_6 |
客户端版本号。 |
DelayTime | Long | 100857 |
延迟时间。 |
DetailInTopicList | Array |
各个 Topic 的消费情况。如需获取详细信息,请确保将 Detail 请求参数设置为 true。否则返回值为空。 |
|
DetailInTopicDo | |||
DelayTime | Long | 0 |
延迟时间。 |
LastTimestamp | Long | 1570701259403 |
最后消费时间。 |
Topic | String | test-mq_topic |
Topic 名称。 |
TotalDiff | Long | 0 |
该 Topic 消费总堆积数。 |
InstanceId | String | MQ_INST_111111111111_DOxxxxxx |
实例 ID。 |
LastTimestamp | Long | 1566883844954 |
最后消费时间。 |
Online | Boolean | true |
是否在线。 |
RebalanceOK | Boolean | true |
客户端 Rebalance 是否正常。取值说明如下:
|
SubscriptionSame | Boolean | true |
订阅关系是否一致。 |
TotalDiff | Long | 197 |
集群总的消费堆积。 |
RequestId | String | 10EDC518-10E7-4B34-92FB-171235FA6E38 |
为公共参数,每个请求的 ID 都是唯一的。 |
示例
请求示例
http(s)://[Endpoint]/?Action=OnsConsumerStatus
&GroupId=GID_test_group_id
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&NeedJstack=true
&Detail=true
&<公共请求参数>
正常返回示例
XML
格式
<OnsConsumerStatusResponse>
<data>
<connectionSet>
<bizVersion>V4_3_6</bizVersion>
<clientAddr>30.5.***.*</clientAddr>
<clientId>30.5.***.*@97730#-1999745829#-1737591554#729272961762836</clientId>
<language>JAVA</language>
<version>V4_3_6</version>
</connectionSet>
<consumeModel>CLUSTERING</consumeModel>
<consumeTps>0</consumeTps>
<consumerConnectionInfoList>
<bizVersion>V4_3_6</bizVersion>
<clientId>30.5.***.*@97730#-1999745829#-1737591554#729272961762836</clientId>
<consumeType>PUSH</consumeType>
<jstack>
<thread>ConsumeMessageThread_4</thread>
<trackList>TID: 44 STATE: WAITING</trackList>
<trackList>sun.misc.Unsafe.park(Native Method)</trackList>
<trackList>java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)</trackList>
<trackList>java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)</trackList>
<trackList>java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)</trackList>
<trackList>java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)</trackList>
<trackList>java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)</trackList>
<trackList>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)</trackList>
<trackList>java.lang.Thread.run(Thread.java:748)</trackList>
</jstack>
<language>JAVA</language>
<lastTimeStamp>1570701368114</lastTimeStamp>
<runningDataList>
<failedCountPerHour>0</failedCountPerHour>
<failedTps>0</failedTps>
<okTps>0</okTps>
<rt>0</rt>
<topic>test-mq_topic</topic>
</runningDataList>
<startTimeStamp>1570701361528</startTimeStamp>
<subscriptionSet>
<subString>*</subString>
<subVersion>1570701364301</subVersion>
<topic>test-mq_topic</topic>
</subscriptionSet>
<threadCount>20</threadCount>
<version>V4_3_6</version>
</consumerConnectionInfoList>
<delayTime>0</delayTime>
<detailInTopicList>
<delayTime>0</delayTime>
<lastTimestamp>1570701259403</lastTimestamp>
<topic>test-mq_topic</topic>
<totalDiff>0</totalDiff>
</detailInTopicList>
<instanceId>MQ_INST_111111111111_DOxxxxxx</instanceId>
<lastTimestamp>1570701368114</lastTimestamp>
<online>true</online>
<rebalanceOK>true</rebalanceOK>
<subscriptionSame>true</subscriptionSame>
<totalDiff>0</totalDiff>
</data>
<requestId>10EDC518-10E7-4B34-92FB-171235FA6E38</requestId>
</OnsConsumerStatusResponse>
JSON
格式
{
"data": {
"connectionSet": [
{
"bizVersion": "V4_3_6",
"clientAddr": "30.5.***.*",
"clientId": "30.5.***.*@97730#-1999745829#-1737591554#729272961762836",
"language": "JAVA",
"version": "V4_3_6"
}
],
"consumeModel": "CLUSTERING",
"consumeTps": 0,
"consumerConnectionInfoList": [
{
"bizVersion": "V4_3_6",
"clientId": "30.5.***.*@97730#-1999745829#-1737591554#729272961762836",
"consumeType": "PUSH",
"jstack": [
{
"thread": "ConsumeMessageThread_1",
"trackList": [
"TID: 44 STATE: WAITING",
"sun.misc.Unsafe.park(Native Method)",
"java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)",
"java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)",
"java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)",
"java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)",
"java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)",
"java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)",
"java.lang.Thread.run(Thread.java:748)"
]
}
],
"language": "JAVA",
"lastTimeStamp": 1570701368114,
"runningDataList": [
{
"failedCountPerHour": 0,
"failedTps": 0,
"okTps": 0,
"rt": 0,
"topic": "test-mq_topic"
}
],
"startTimeStamp": 1570701361528,
"subscriptionSet": [
{
"subString": "*",
"subVersion": 1570701364301,
"tagsSet": [],
"topic": "test-mq_topic"
}
],
"threadCount": 20,
"version": "V4_3_6"
}
],
"delayTime": 0,
"detailInTopicList": [
{
"delayTime": 0,
"lastTimestamp": 1570701259403,
"topic": "test-mq_topic",
"totalDiff": 0
}
],
"instanceId": "MQ_INST_111111111111_DOxxxxxx",
"lastTimestamp": 1570701368114,
"online": true,
"rebalanceOK": true,
"subscriptionSame": true,
"totalDiff": 0
},
"requestId": "10EDC518-10E7-4B34-92FB-171235FA6E38"
}
错误码
访问错误中心查看更多错误码。
在文档使用中是否遇到以下问题
更多建议
匿名提交