博客/社区

eBay如何从自定义ui转移到Grafana插件

2019年4月8日5分钟

一开始,eBay日志和监控团队的任务很简单:“提供api,让公司的开发人员可以用来检测他们的应用程序(以便)发送日志,”维贾伊·塞缪尔(Vijay Samuel)在他的演讲中说在GrafanaCon上演讲关于eBay使用Grafana插件的历程。“我们有自己的开发人员,他们构建了能够搜索、查看和调试问题的ui。指标与日志没有什么不同。我们提供了一堆api来测试代码。”

Samuel表示,问题在于“UI的质量完全取决于创建UI的人。”构建其中一些ui的工作落在了Samuel的肩上,大约四年前,他发现添加新的图形非常痛苦,所以他决定基于Grafana做一个概念证明。

监控小组成员塞缪尔(Samuel)说:“第一次尝试是不折不扣的黑客攻击。”“我使用了Grafana的主分支,并修改了开放的TSDB数据源,以便能够理解我们的内部api。我们构建了一些仪表板,主要是脚本化的仪表板,但它们没有模板或注释等所有复杂的功能。”

Grafana当时还在v3。塞缪尔说:“这是一次非常卑鄙的黑客攻击。”PoC被一些随叫随到的团队所使用,但直到一些来自数据库运维团队的人来要求为eBay的内部TSDB提供Grafana支持。

构建数据源插件

Samuel的旧PoC被复活了,数据库运维团队成员Steven West和Auston McReynolds“采取了肮脏的黑客攻击,并将其转换为专用的数据源插件,但它仍然是牢骚生成的代码,”Samuel说。“他们还在插件中添加了Docker支持。”

Samuel使用了这个插件,并添加了一些Kubernetes部署脚本。他回忆道:“每次有人要求对Grafana提供支持时,我都会给他们指这些Kube规格,并告诉他们,‘去运行吧。’”“每次他们要求提供新功能时,我都会利用业余时间为他们开发一些新功能。”

当由Satish Sambasivan领导的一些eBay SREs决定放弃构建自己的定制ui,转而使用Grafana时,这一重大突破出现了。塞缪尔说:“他们把它提升到了一个新的水平。”“他们开始在图表上覆盖大量数据。例如,任何正在发生的影响网站的变化,他们都将它们作为注释删除在图表上。所以他们能够捕捉到有趣的问题,比如当DNS翻转导致错误激增时,这就在仪表板上。他们开始提供托管解决方案。”bob彩票中奖计划

后来,SRE团队求助于监控团队为他们提供所有这些支持。塞缪尔说:“他们有四个黄金信号,基本上用来对网站上发生的所有问题进行分类,他们还建造了许多仪表板。”“监管团队决定将Grafana列为我们产品中的一等公民。这带来了一个全新的面貌。”

随着经验丰富的UI开发人员参与到项目中,我们做出了许多改变:首先,咕哝生成的文件将成为过去式。添加了小部件来查看日志和事件。它将成为一个更健壮的托管解决方案。Grafana添加了更多的特性,比如能够使用内部api进行身份验证,以及对数据源插件的注释支持。

云原生方法

在后端,将日志、指标和事件发送到平台的自定义api被“更多的云原生机制”所取代,以简化日志记录和指标。为了将日志记录到日志文件,用户可以让监控团队知道日志文件是什么,并且他们将发送日志。对于度量标准,Samuel说,“用Prometheus来测试代码,如果你在Kubernetes上运行,提供一些注释,说明这是我们公开度量标准的端口。我们将能够收集并运送到平台上。”

在此过程中,eBay监控团队开始在开源领域投入更多资金。塞缪尔说:“如果你发现了一个值得投资的产品,如果你发现了差距,我们就会开始弥补。”(其中一个项目他们贡献很大:弹性的节奏。

塞缪尔说,在这一点上,“我们可以说,我们正在慢慢改变eBay内部的监控动态,而Grafana在这一切中发挥着重要作用。”

他们学到的最重要的一课是:“成为社区的一部分总是好的,”他说。“每当我们发现某个功能缺失时,我们都会非常努力地以一种通用的方式来构建它,并试图将其回馈给社区。”

他说,与他第一次构建图表的痛苦经历相比,“现在创建仪表板很容易。”事实上,eBay的自定义数据源插件在一天之内就建成了。“这是对格拉夫纳的一大证明,”他补充道。“如果像我这样一个没有经验的UI人员可以在一天内完成它,那么想象一下这个产品给每个开发人员带来了多少力量....从自定义api转向更多的云原生结构,帮助我们搭载了比我们想象中更多的用例。”

想看更多的GrafanaCon演讲吗?点击这里查看