2015 年 10 月 25 日,ESCC 2015 上海站召开,感谢携程的大力支持,让我得以参与,参会笔记如下:

上海站的分享,和北京站集中在 ELK 经验分享不太一样,各个方面、层面都有涉及。

上午,分别是 ES 2.0 介绍和 Logstash 2.0 介绍。都是 ES 原厂工程师的英文演讲,以个人的感觉,口音听起来还是蛮舒服能听懂的。

ES 2.0 的主要特性和更新其实在官方博客上陆陆续续大多是提过了的。不过在 mapping 冲突的示例上,我觉得这次演讲选择的更好:举例的是相同 type,不同 analyzer 的冲突,比官博上不同 type 的来说,更明确,不会让人误以为只要 type 一致就算 mapping 一致了。

演讲后尝试问了两个问题,一个是想到曾经看到一个issue,里面提到可以对不再写入数据的索引关掉 IndexWriter 节省资源,所以询问这个事情有没有进展,imotov 回答说他不记得具体有这个 issue,但是在较高的 Lucene 版本中这个 IndexWriter 占用的资源是跟实际有没有写入操作相关的,所以从 ES 1.5 版以后,应该这个 IndexWriter 开着不会是什么问题。我回来翻了一下 issue,原来这个已经 close 了,官方是有选择的解决这个问题,对应的是 synced flush,在这里解释了不搞一个 read only mode 的理由:更灵活并且方便轻量级的自动化操作。synced flush 大家都知道了,在 ES 1.6 的时候已经有了。

另一个问题是 ES 的 dynamic script 支持。我们知道 ES 从 1.4.3 开始关掉了 groovy sandbox 的 dynamic script 支持,改用了只支持数值操作的 lucene expression。当时的公告中,说的是 ES 开发组会跟 Lucene 开发组一起努力加强 expression 的功能。对这个问题,imotov 的回答是:很遗憾,目前没有,因为这不是单方面能决定的。然后在下午我看 github 的时候,发现 elastic 组织下最近这周刚多了一个项目,叫:plan A。它的描述是:”New Scripting Language for ElasticSearch”!不过目前没啥内容,感觉可以期待~

Logstash 2.0 的演讲,或许因为早先设想的高级特性太多太好,然而基本都延期了,2.0 里不会有,所以没太多可期待的……只能说继续等待 2.1 或者 2.2 。

接着是小排虞冰的分享。用 ES 做核心业务的数据支持,真的是一直比较少的外部经验分享。虽然和 ELK 的日志场景不太一致,导致优化手段和方向甚至就几乎相反,但是作为一个比较通用的后端服务架构设计,依然是一个有价值的分享。演讲也对 ES 的维护和推广提了一点看法——比如:用 QueryBuilder 给 ES 实现 ORM;以及需要至少一个以上的 ES 熟练工才能上业务线。

下午是自己的第一个分享,稍微有点小尴尬的是 ppt 不太新,好在显示屏给力,还是正常完成的。收到三个问题,前两个其实类似(单 panel 时间段,同比环比 panel),都是在 Vis 里不能单独地固定 time filter,从目前 Kibana4 的设计逻辑上,确实是没办法了。最后一个是 index pattern 的通配符问题,后来经过查阅 kibana4 代码实现,这块应该是支持的。

然后是 wood 大叔的演讲,虽然大多数优化手段之前在 QQ 群里都说过了,但是 wood 把一些原理性的东西说的很清楚,整个演讲听下来还是对一些细节有了更新的认识。

茶歇中,做了一下抽奖活动,把出版社给我准备的十本书都发出去了,这次采用了一个比较新奇的方法:给主持人手机打电话,谁能抢先拨进去,谁就算中奖!事后收到有微信说:好可惜没抽上的,已经下单购买了。哈哈~

最后 medcl 演讲,里面提到的有一点是第一手新闻:packetbeat 不单单可以作为像 tcpdump 这样的方式运行,还可以以 app 的方式运行。在列举 beats 家族成员的时候,更是列出了一个目前在 github 的 elastic 用户下面还没立项的秘密项目。可谓是个惊喜。

本来在下午休息的时候,我还临时写了 11 页的小 ppt,打算闪电演讲的时候起个头。不过看大家都没有参与的意思,也就没说出来。或许上海的 conference 还是不太多,大家显得都不是那么活跃。这次聚会最终到场 100 人左右,毕竟是第一次在上海举办,可能也相互比较默认和拘谨吧。QQ 群聊天跟实际还是有差距的,相信明年,肯定会更好!