使用 OnsConsumerStatus 查询指定 Group ID 的详细状态数据,包含订阅关系检查、消费 TPS 统计、负载均衡状态、消费端连接等。

使用本接口时,请注意以下几点:

  • 本接口一般用于在粗略判断消费堆积以及客户端在线情况后,需要排查消费异常的原因时调用,可以判断出指定 Group ID 的订阅关系是否一致、负载均衡是否正常以及获取在线客户端的 Jstack 信息等。
  • 本接口需要调用后端大量接口完成数据聚合,因此查询速度慢,不建议频繁调用。

调试

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

请求参数

名称 类型 是否必选 示例值 描述
Action String OnsConsumerStatus

系统规定参数。取值:OnsConsumerStatus。

GroupId String GID_test_group_id

需要查询的消费端 Group ID

Detail Boolean true

是否查询详细信息。取值说明如下:

  • true:要查询详细信息
  • false:不查询详细信息
InstanceId String MQ_INST_111111111111_DOxxxxxx

需查询的 Group ID 所对应的实例 ID。针对有独立命名空间的实例,该参数为必填。

NeedJstack Boolean false

是否打印 Jstack 信息

返回数据

名称 类型 示例值 描述
Data

查询结果

ConnectionSet

该集群当前在线客户端信息

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

消费模型,取值说明如下:

  • CLUSTERING:集群消费模式
  • BROADCASTING:广播消费模式
ConsumeTps Float 0

总消费 TPS

ConsumerConnectionInfoList

该集群在线客户端详细信息,包含 Jstack、消费 RT 时间等信息

ConsumerConnectionInfoDo

该集群在线客户端详细信息,包含 Jstack、消费 RT 时间等信息

ClientId String 30.5.**.**@25560#-1999745829#-1737591554#458773089270275

消费实例的 ID

Connection String **

连接信息

ConsumeModel String CLUSTERING

消费模型,取值说明如下:

  • CLUSTERING:集群消费模式
  • BROADCASTING:广播消费模式
Jstack

Jstack 堆栈信息

ThreadTrackDo

Jstack 堆栈信息

Thread String ConsumeMessageThread_0

线程名称

TrackList TID: 52 STATE: WAITING

Jstack 堆栈信息字符串

Track

Jstack 堆栈信息字符串

Language String JAVA

客户端语言

LastTimeStamp Long 1570701368114

最后更新时间

RunningDataList

实时状态统计

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

订阅关系集合

SubscriptionData

订阅关系集合

SubString String *

订阅该 Topic 的子类别 Tag 表达式

SubVersion Long 1570701364301

订阅关系版本号,为自增 Long 型

TagsSet ff

订阅的 Tag 集合

Tag

订阅的 Tag 集合

Topic String test-mq_topic

订阅的 Topic 名称

ThreadCount Integer 20

消费线程数

Version String V4_3_6

客户端版本号

DelayTime Long 100857

延迟时间

DetailInTopicList

各个 Topic 的消费情况

DetailInTopicDo

各个 Topic 的消费情况

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 是否正常。取值说明如下:

  • true:正常
  • false:不正常
SubscriptionSame Boolean true

订阅关系是否一致

TotalDiff Long 197

集群总的消费堆积

RequestId String MQ_INST_111111111111_DOxxxxxx

为公共参数,每个请求的 ID 都是唯一的

示例

请求示例


http(s)://[Endpoint]/?Action=OnsConsumerStatus
&GroupId=GID_test_group_id
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&NeedJstack=true
&Detail=true
&<公共请求参数>

正常返回示例

XML 格式

<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>

JSON 格式

{
	"requestId":"10EDC518-10E7-4B34-92FB-171235FA6E38",
	"data":{
		"totalDiff":0,
		"delayTime":0,
		"consumeTps":0,
		"subscriptionSame":true,
		"consumerConnectionInfoList":[
			{
				"startTimeStamp":1570701361528,
				"consumeType":"PUSH",
				"threadCount":20,
				"lastTimeStamp":1570701368114,
				"bizVersion":"V4_3_6",
				"subscriptionSet":[
					{
						"topic":"test-mq_topic",
						"subVersion":1570701364301,
						"tagsSet":[],
						"subString":"*"
					}
				],
				"language":"JAVA",
				"runningDataList":[
					{
						"topic":"test-mq_topic",
						"failedTps":0,
						"failedCountPerHour":0,
						"rt":0,
						"okTps":0
					}
				],
				"clientId":"30.5.***.*@97730#-1999745829#-1737591554#729272961762836",
				"version":"V4_3_6",
				"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)"
						]
					}
				]
			}
		],
		"instanceId":"MQ_INST_111111111111_DOxxxxxx",
		"detailInTopicList":[
			{
				"topic":"test-mq_topic",
				"totalDiff":0,
				"delayTime":0,
				"lastTimestamp":1570701259403
			}
		],
		"rebalanceOK":true,
		"consumeModel":"CLUSTERING",
		"lastTimestamp":1570701368114,
		"connectionSet":[
			{
				"bizVersion":"V4_3_6",
				"language":"JAVA",
				"clientAddr":"30.5.***.*",
				"clientId":"30.5.***.*@97730#-1999745829#-1737591554#729272961762836",
				"version":"V4_3_6"
			}
		],
		"online":true
	}
}

错误码

访问错误中心查看更多错误码。