查询轻量消息队列(原MNS)日志

更新时间:
复制为 MD 格式

轻量消息队列(原 MNS)日志推送到日志服务后,可进行实时查询,本文介绍实时查询的常用场景及操作步骤,您也可以通过多个关键字组合方式实现更加复杂的查询。

前提条件

背景信息

轻量消息队列(原 MNS)日志包括队列消息操作日志和主题消息操作日志,日志内容包含消息生命周期的所有信息,例如时间、客户端、操作等。您可以通过实时查询、实时计算和离线计算三种方式对日志进行分析计算。

  • 实时查询:在日志服务控制台上进行实时查询,例如:查询消息轨迹、写入量、删除量等。

  • 实时计算:使用Spark、Storm、StreamCompute、Consumer Library等方式对轻量消息队列(原 MNS)日志进行实时计算。例如:计算某个队列中,Top 10消息的产生者和消费者;计算生产和消费的速度,确认是否均衡;计算某些消费者的处理延时,确认是否存在瓶颈等。

  • 离线计算:使用MaxCompute、E-MapReduce、Hive进行长时间跨度的计算,例如:计算最近一周内消息从发布到被消费的平均延迟。

查询队列消息的消息轨迹

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询队列消息的消息轨迹,即输入队列名称和消息ID,格式为$QueueName and $MessageId,例如log and EED287A265726135146E6A9CADC880FA

    查询结果记录了某条消息从发送到接收的过程。查询结果显示两条 MNSLogging 日志记录,MessageId 均为 EED287A265726135146E6A9CADC880FA。其中一条记录的 Action 为 SendMessage(时间 2020-10-21 16:50:53),另一条的 Action 为 ReceiveMessage(时间 2020-10-21 16:50:57),表明该消息在队列 sgw-express-sync-queue-gw-0008q1m4pv7qjse4na31-5796 中完成了发送和接收的完整轨迹。

查询队列消息发送量

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询队列消息发送量,即输入队列名称和发送操作,查询语句格式为$QueueName and (SendMessage or BatchSendMessage),例如log and (SendMessage or BatchSendMessage)

    查询结果显示,当前查询时段内,生产者向log队列发送了3条队列消息。执行该查询语句后,查询结果显示 结果精确,日志条数为 3。每条日志记录包含 Action(如 SendMessage,红色高亮)、QueueNameTimeMessageIdRequestIdRemoteAddress 等字段信息。

查询队列消息消费量

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询队列消息消费量,即输入队列名称和消费操作,查询语句格式为$QueueName and (ReceiveMessage or BatchReceiveMessage),例如log and (ReceiveMessage or BatchReceiveMessage)

    查询结果显示,当前查询时段内,log队列中有12条消息被消费。执行查询后,查询结果显示共 12 条日志记录。每条原始日志包含 Action(如 ReceiveMessage)、QueueName(如 log)、MessageIdRequestIdNextVisibleTimeProcessTimeRemoteAddress 等字段信息。

查询队列消息删除量

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询队列消息删除量,即输入队列名称和删除操作,查询语句格式为$QueueName and (DeleteMessage or BatchDeleteMessage),例如log and (DeleteMessage or BatchDeleteMessage)

    当前查询时段内,61log队列消息被删除。执行查询后,在查询结果区域查看日志条数,该数值即为队列消息删除量。

查询主题消息的消息轨迹

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询主题消息的消息轨迹,即输入主题名称和MessageId,查询语句格式为$TopicName and $MessageId,例如logtest and 8798453B65727FC6433E6AB4F746D4CE

    查询结果如下所示,记录了某条消息从发送到通知的过程。查询结果返回两条日志记录,其中 Action 字段分别为 PublishMessage 和 Notify,表示同一消息先被发布再被推送通知。

    1  10-21 17:17:24    ...  MNSLogging  1603271947
            ProcessTime :1
            TopicName :logtest
            Time :2020-10-21 17:17:24.679000
            AccountId :xxx
            Action :PublishMessage
            MessageId :8798453B65727FC6433E6AB4F746D4CE
            RequestId :5F8FFCA4453241C3099B4BC9
            RemoteAddress :xxx
            MessageTag :
    1  10-21 17:17:24    ...  MNSLogging  1603271947
            ProcessTime :1
            TopicName :logtest
            Time :2020-10-21 17:17:24.679000
            AccountId :xxx
            Action : Notify
            MessageId :8798453B65727FC6433E6AB4F746D4CE
            RequestId :5F8FFCA4453241C3099B4BC9
            RemoteAddress :xxx
            MessageTag :

查询主题消息发布量

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询主题消息发布量,即输入主题名称和发布操作,查询语句格式为$TopicName and PublishMessage,例如logtest and PublishMessage

    查询结果显示,当前查询时段内,生产者向logtest主题发布了3条消息。执行查询后,返回3条精确匹配的日志记录,日志详情中包含 TopicName(值为 logtest)、Action(值为 PublishMessage)、MessageIdRequestIdRemoteAddress 等字段信息。

查询某个客户端消息处理量

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. 日志存储 > 日志库页签中,单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。

    本案例要查询某个客户端消息处理量,即输入客户端IP地址,查询语句格式为$ClientIP,例如10.10.10.0

    如果您要查询某个客户端的某类操作日志,可使用多个关键字组合方式,例如$ClientIP and (SendMessage or BatchSendMessage)

    查询结果如下图所示,当前查询时段内,该客户端处理了66条消息。查看某个客户端消息处理量