博客/社区

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

2019年4月8日5分钟

一开始,eBay的日志和监控团队的任务很简单:“提供api,公司的开发人员可以使用它来检测他们的应用程序(以便)发送日志,”Vijay Samuel在他的会议上说在GrafanaCon演讲eBay使用Grafana插件的历程。“我们有自己的开发人员,他们构建了能够搜索视图和调试他们的问题的ui。度量和日志没有什么不同。我们提供了一堆api来测试代码。”

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

“第一次尝试是真正的黑客攻击,”监控团队成员塞缪尔说。“我使用了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演讲吗?点击这里查看