博客/社区

Kambi如何从内部的Graphite解决方案迁移到Grafana Cloud

2021年11月26日4分钟

如果您是一家体育博彩技术公司,并且您意识到用于监控指标的内部、预置石墨解决方案不再是可靠的事情,您会怎么做?这就是困境Kambi这是一项快速发展的业务,热衷于使用开源技术,目前大约有500个不同的微服务正在生产中,每秒大约有20万条传入的度量信息。

在一次演讲中ObservabilityCON 2021, Kambi网站可靠性工程师Frank Stengård讲述了他的公司如何超越Graphite的故事,创建了一个小型开源石墨防火墙工具Hadrianus(以著名的皇帝命名)来处理一些棘手的问题,并成功地将“大量数据”迁移到Grafana云

过去和问题

Stengård首先概述了Kambi历史上使用过的“相当标准”的Graphite设置。它基于Python,大约有500个服务馈送到一个HAProxy中,该HAProxy将负载分配给六个carbon-relay实例(选择这个数量是为了提高CPU可伸缩性)。然后碳中继节点将其转发到碳缓存节点,碳缓存节点将实际数据存储为耳语文件。

过了一段时间,问题开始出现。Kambi不仅降低了指标,而且他们的磁盘空间、CPU,甚至还有一点RAM都快用完了。他说:“我有时根本无法登录到碳缓存节点,因为它们的响应不够快。”

即使在用go-carbon取代了carbon-cash之后,大多数问题仍然存在,并且还加入了一些新的问题,包括磁盘I/O耗尽。保持一切正常运行所花费的时间和精力基本上相当于一个中场位置。

Stengård的团队发现,在Graphite中,许多指标以比实际存储更频繁的间隔发送,并且指标的值为零或大部分为零。

寻找解决方案

向外扩展石墨并不是一个选择,因为Kambi在一个预置的数据中心中运行它,并且没有资源。Stengård说:“此外,在没有长时间停机的情况下扩展一个经典的石墨集群是很难的——特别是如果您的集群确实负担过重的话。”“我们找不到一个简单的方法来做到这一点,同时又不会影响我们的50多个开发团队。”

但他们也不能放弃,因为这个问题影响了Kambi如何看待它的系统,以及它的环境如何运行。”正如Stengård所说,“房子现在着火了。我们需要解决这个问题。”

Kambi创建了自己的软件解决方案:Hadrianus,一种开源的“应用程序感知防火墙负载平衡器”。其中一个关键特性是它能够将流量镜像到多个Graphite集群,并且有一个允许列表,允许关键指标通过,即使它们违反了Kambi的逻辑。

然而,Hadrianus最重要的功能是,它可以丢弃不符合Graphite线协议的传入度量,并处理传入太快或在某种程度上毫无意义的Graphite端点。

Stengård表示,有了新软件,Kambi的负载减少了80%。磁盘I/O仍然很高,但更易于管理。内存利用率仍然很高,但重要的是,他指出,“东西不会因为内存不足而随机死亡。”

尽管如此,随着Kambi的不断增长——这意味着一直在生成更多的指标——现有的on-prem解决方案(虽然是一个不错的创可贴解决方案)在未来是不够的。

由于该公司无法扩展Graphite, Stengård和他的团队决定修改Hadrianus,以便能够将数据以镜像副本的形式发送给第三方提供商Grafana云.他说,该公司还想开始使用Prometheus而不是Graphite,因为它更受欢迎,在Kubernetes上运行得更好。

Kambi测试了Grafana Cloud的度量能力,基本上是直接将其整个生产数据负载发送到Grafana Cloud,以确保他们能够处理这些数据——结果确实如此!

《Grafana Cloud》获得成功

Stengård解释说,Grafana Cloud最终很适合Kambi,因为它支持Graphite,并且它有一个很好的迁移路径到Prometheus,这可以逐步完成。该公司已经在使用Grafana他指出:“因此,对于我们的开发团队来说,把它放到云端几乎可以获得相同的用户体验。”他补充说,在未来,Kambi的站点可靠性工程团队希望用AWS取代现有的Elasticsearch解决方案Grafana洛基

要了解更多关于Kambi使用Hadrianus和Grafana Cloud的信息,请查看全文ObservabilityCON会话.我们所有的课程ObservabilityCON 2021现在可按需提供。

有兴趣了解更多Grafana云?现在免费注册并检查我们慷慨的永远免费层和计划为每个用例。