MULE MMC Flow Analyzer使用记录

MMC是Mule企业版独有的强大功能,如果单单只是为了监控一些flow的使用,调用次数,开启关闭等简单操作,那么实际并不需要MMC也能实现相应的功能,就像这篇博客 Jolokia + Hawtio 监控Mule Esb 里面,通过jolokia的语法一样可以获取到相关flow信息。
今天要学习MMC管理平台的Flow Analyzer,这里做一个学习记录。既然是Flow Analyzer,肯定要有Flow,因此我通过MMC上Deploy了一个简单的Demo程序,作用是读取数据库一个表并将数据转为json结构输出到页面上。从这个表里面一次性查出107条记录,数据量并不多。


The Flow Analyzer allows you to view and analyze real-time information about messages that a specific flow is processing. It displays message payloads before and after processing, information about the flow message processors and message metadata. The Flow Analyzer does not modify message contents and does not create additional system load; it is safe to use in a production environment

Flow Analyzer允许你查看和分析实时信息(关于你所指定的具体Flow正在处理的message),它会显示处理前和处理后的信息(关于Flow message处理器和message元数据)。Flow Analyzer不会改变message内容,也不会创建额外的系统负载,因此可以很安全地在生产环境上使用。

需要注意:

Flow analysis is primarily a development tool and is not available for clusters.

Flow Analyzer是一种主要的开发工具,不适用于集群下。

Flow Analyzer标签页一览
MULE MMC Flow Analyzer使用记录

使用Flow Analyzer基本步骤
(1)MMC进入Flow Analyzer标签页
(2)从左侧面板下拉框选择Mule Server,MMC程序会显示可选择的server供你挑选。
(3)选择Server下相应的application
MULE MMC Flow Analyzer使用记录
(4)点击Start按钮即可

点击Start后效果
MULE MMC Flow Analyzer使用记录
实际除了左侧并没有其他什么其他的变化,因此我尝试访问这个flow来观察是否带来改变。
输入访问地址http://localhost:8081/ee_db_test来访问demo,稍等几秒随后可以看见标签页Message List面板多出了一行记录,其中Message Id可点击,点击后,可以看见左下方面板Message Detail的一个子面板Message Flow出现相应内容,里面的内容记录着相应的Message Processor,列出的处理器都可以点击,同时其旁边的面板出现相应内容。
MULE MMC Flow Analyzer使用记录
以上基本就是Flow Analyzer基本使用时候的效果,不得不说功能十分强大,虽然analyzer里面绝大多数内容可以通过在开发程序时合理地在某个处理器后添加Logger来观察流经处理器的数据情况,但是这样子处理器前后增加Logger,Flow结构看上去十分臃肿(尽管只是一个拖动Logger的操作~),且观看日志文件还要找一番。同时Processing Time提供了flow的处理耗时信息,这是一个重要的数据。别忘记Flow Analyzer是监听运行时的程序,和开发时AnypointStudio看控制台是不一样的(部署生产后还有控制台看?)。因此这也是MMC为什么这么强大的一个侧面写照。

监听时长可选
MULE MMC Flow Analyzer使用记录

Freeze Msg List按钮和UnFreeze Msg List按钮

Use it to disable automatic population of the message list as new messages come in. Click again to update the list with all new messages received.

冻结Msg List按钮在点击Start后才会出现,当点击后,进入该Flow的message都将暂时不会填充到Message List面板之中,只有当终止冻结后,Message List才会重新填充消息到message list之中。

关于Flow Analyze还没有到预定时间结束时登出了MMC

官方对此作了说明

You can log out of MMC while Flow Analyzer is running. Flow Analyzer continues to store message data for the selected applications and flows.When you log in again, you can see if Flow Analyzer is running by going to the Administration tab, then selecting Stop Flow Analysis from the left-hand menu.

在Flow Analyze还没有结束时,登出MMC也是允许的。分析器会继续记录消息信息。如果你是以管理员身份登入,可以到Administrator标签页下,如果存在还在运行的分析器,该标签页可以看到如下内容:
MULE MMC Flow Analyzer使用记录
如果你不是管理员,但是你知道那个分析器启动,则按照Flow Analyze开始的操作选择server->application后,留意粗体名称,粗体的Flow名代表它正在开启着分析器。
MULE MMC Flow Analyzer使用记录
此时可以重新勾选改粗体Flow,点击start,则可以看到你登出时进入到该Flow并被分析器记录的message消息。

个人总结:正如文档里面说的,Flow Analyzer更多地作为一个development tool来使用,而不是实时监控,开发完成后的程序可以丢到MMC通过分析器来查看处理一次执行的耗时,甚至拿来调试也是方便的,但是EE版在AnypointStudio已经提供断点调试,因此个人感觉分析器更多偏向于在运行时里面观察在开发时候未能预料到的一些不足点,通过分析器功能加以分析。

参考资料
Flow Analyzer
如果对Flow Analyzer权限开启感兴趣的,参考文档里面有描述。