函数堆栈链分析
本书之前已经介绍过 logstash 如何利用 multiline 或者 log4j 插件解析函数堆栈。那么,对函数堆栈,我们除了对底层函数做基础的 topN 排序,还能深入发掘出来什么信息呢?
下图是一个 PHP 慢函数堆栈的可视化统计:

该图利用了 Kibana4 的 sub aggs 特性。按照分层次的函数堆栈,逐层做 terms agg。得到一个类似火焰图效果的千层饼效果。
和火焰图不同的是,千层饼并不能自动深入到函数堆栈的全部层次,需要自己手动指定聚合到第几层。考虑到重复操作在页面上不是很方便。可以利用 Kibana4 的 url 特性,直接修改地址生成效果。上图的 url 如下:
可以看到,如果打算增减堆栈的聚合层次,对应增减一段 (id:'5',params:(field:slow.4,order:desc,orderBy:'1',size:10), 就可以了。
作为固定可视化分析模式的另一种分享办法,还可以导出该 visualize object 在 .kibana 索引中的 JSON 记录。这样其他人只需要原样再导入到自己的 .kibana 索引即可:
上面记录中可以看到,这个 visualize 还关联了一个 savedSearch,那么同样,再从 .kibana 索引里把这个内容也导出:
这个内容看起来有点怪怪的,其实把 searchSourceJSON 字符串复制出来,在终端下贴到 echo -ne 命令后面,回车即可看到其实是这样:
Last updated
Was this helpful?