Uken Games用ClickHouse替代Datadog,可观测性成本降低87%
DataHot 速览
Uken Games 用基于 ClickHouse 的开源可观测性栈替代 Datadog,在单节点上存储全部 trace,每年成本降低 87%。该工作室监控 300 个容器、50+ EC2 机器和 100+ 服务部署,此前 Datadog 成本即使一再优化仍持续上涨。迁移后他们保留了产品分析层和技术可观测性层,并用于处理排行榜作弊争议等场景。
为什么值得关注:这是开源 OLAP 数据库替代高成本 SaaS 可观测性工具的典型案例,展示 ClickHouse 在日志与追踪场景的实时分析价值,对数据平台选型和成本优化有直接参考意义。
译文
AI 逐段翻译当你为数百万玩家打造游戏并与全球最大的品牌合作时,最重要的问题莫过于:你如何知道玩家是否玩得开心?
Uken Games 是一家总部位于多伦多的独立游戏工作室。它成立于2009年,曾与索尼影视和苹果等公司合作,在Tim Hortons应用中内置了一款手游,并以1亿美元的价格将一款游戏卖给了游戏开发商Jam City。
该游戏工作室的成败不仅取决于其保持玩家参与度的能力,还取决于其观察和理解玩家行为的能力。否则,玩家就会流失,转向竞争对手。在2026年6月多伦多ClickHouse聚会上,时任Uken软件开发人员的Alexei Zenin谈到了他们如何着手回答这个问题并决定捕获哪些数据。
Alexei将可观测性分为两层。表面上是产品分析,揭示游戏是否有趣:日活跃用户、完成关卡数、应用内购买、会话时长和留存率。其下是他所称的技术可观测性的基础:确认机器正常运行的CPU、内存、延迟和错误信号。
在引擎盖下,Uken运行的服务涵盖云存档、背包、推送通知和排行榜等。“人们急切地竞争在排行榜上名列第一,”Alexei说。“他们会一年365天、每天24小时提交‘支持工单’,说‘有人作弊,我应该排第一。’而最重要的是,他们更有可能成为付费用户。”在这些情况下,拥有遥测数据来支持和证明谁是正确的变得至关重要。
但监控如此规模的运营是有代价的。我们与Alexei谈论了为什么他们让Uken离开Datadog,以及在ClickHouse上重建其可观测性技术栈如何帮助公司降低了87%的年度成本。
供应商锁定的挑战
多年来,Uken一直使用Datadog监控其基础设施——300个容器、50多台EC2机器、100多个磁盘、数十个数据库以及100多个服务部署。Alexei说:“它运行良好,但即使我们尽了最大努力降低成本,它们总是不可避免地重新攀升。”
Uken旧的技术栈,日志发送到CloudWatch,跟踪和指标通过Datadog代理路由。
作为复杂定价的一个例子,他引用了Datadog的容器定价,即每个容器每小时额外收取0.002美元,并可以选择以每容器每月1美元的价格购买预付费容器。同时,Alexei说,专有的Datadog代理深深植根于Uken的系统中,以至于供应商掌握了所有主动权。例如,Datadog的定价模式开始影响架构决策,因为监控不同技术(如无服务器与EC2)的价格会有很大差异。
围绕ClickHouse构建的新技术栈
Uken Games团队确定了一个计划:“淘汰Datadog,引入开源。”他们为新系统设定了三个目标:降低成本、采用偏向开源但灵活的架构,以及在可观测性的三大支柱(指标、跟踪和日志)上实现务实的特性对等。
新系统的数据层是OpenTelemetry,Alexei称其为可观测性领域的“新的事实上标准”。他说:“本质上,你能够收集不同的信号,并以一种标准的、与供应商无关的方式定义它们。OpenTelemetry就是标准,我们不需要将其写入特定的数据库。这是稍后在管道中做出的决定,并且由你来控制。供应商锁定不再存在。ClickHouse以其开源根基极大地补充了这种理念。”
采集通过OTel收集器(独立的Go进程,配置为YAML)进行,部署为两层。轻量级代理与微服务一起在每个ECS实例上运行;应用程序通过快速的localhost调用将每个跟踪传递给代理,代理可以在转发到自动缩放、批处理和缓冲写入ClickHouse的网关层之前进行预过滤。这种拆分使得边缘端的仪器开销很低——快速的本地交接几乎不触及运行中的应用程序——同时将缩放和缓冲等较重的任务集中在一个团队可以独立调整的地方。
对于跟踪,它通过SigNoz(一个基于ClickHouse构建的开源APM工具)写入ClickHouse。“我们能够获得与Datadog完全相同的手感和体验,”Alexei说。“你不必进入SigNoz工具并说‘这是支付服务,给我看这些图表。’对于错误率、P90和每秒请求数等常规事项,这些都是自动从遥测数据中推断出来的。”
Uken的跟踪管道,每个ECS实例上的代理收集器将数据馈送到负载均衡的OTel网关层,该网关层写入单个ClickHouse节点,SigNoz位于其上。
真正让Alexei印象深刻的是底层数据库。一个单独的ClickHouse节点吸收了公司产生的每一个跟踪。“我所做的只是打开ClickHouse,它就运行起来了,这让我很喜欢,”Alexei说。“我还有那么多其他事情要重新设计和构建。它如此简单,这证明了它的性能和背后的工程实力。”
指标通过相同的收集器模式进入AWS管理的Prometheus,这是一个深思熟虑的选择,因为Uken将为自己构建的任何东西待命,而开放的Prometheus标准意味着如果AWS价格上涨,团队可以随时离开。日志保留在CloudWatch中;正如Alexei所说,“我们发现它不是最大的成本开销,重新设计它的工程努力不值得。”最后,Grafana充当连接组织,查询指标,并通过向Slack和PagerDuty发送警报来闭合循环。
Uken团队还自动化了告警本身,编写了一个自定义的CloudFormation资源,使告警完全通过代码配置。工程师无需手动点击Grafana,而是用YAML定义告警,打开拉取请求,合并后,Jenkins部署CloudFormation堆栈,通过其API在Grafana中配置告警。Alexei说:“我可以通过点击一个按钮实例化数百个告警。”Grafana现在每分钟对ClickHouse、CloudWatch和Prometheus执行约600次查询,升级到Slack用于警告,PagerDuty用于凌晨3点的紧急情况。
Uken的告警层,Grafana查询ClickHouse、CloudWatch和托管Prometheus,并通过CloudFormation将告警定义为代码,升级到Slack和PagerDuty。
一路走来学到的经验教训
对于Uken团队来说,迁移也成为了削减浪费的强制手段。Alexei说,团队不使用他们收集的95%的指标和属性,并补充道:“如果我要总结我们所有的经验:你不需要它。尽可能丢弃你能丢弃的东西。”
追踪也进行了类似的反思。Alexei问道:“你真的需要捕获每一个成功的追踪吗?还是只需要一个有统计代表性的样本,比如5-10%?”他们采用的方法是保留重要的追踪——例如错误和高延迟请求——对其余部分进行代表性采样,并丢弃噪音。为了避免盲点,他们基于未采样的聚合指标设置告警,这样修剪数据不会削弱信号。
他们还避免了过度设计。Alexei说:“如果你是人类试图调试某些东西,你并不真正需要毫秒级的响应时间来加载仪表板。”而且没有法规要求将数据保留多年,他们将保留期限制在两周。他补充道:“这有助于降低成本。”
结果:单个ClickHouse节点,便宜87%
如今,Uken的所有追踪都在单个ClickHouse节点上运行,使用约170 GB磁盘,由几个OTel收集器提供数据。而且在新系统推出过程中零停机,这对于拥有全球数百万玩家的实时服务来说是一项不小的成就。
Alexei说:“我们实现了实用的功能对等——能够探索、可视化和收集所有这些指标和追踪,并且仍然让电子游戏正常运行。”Alexei说:“我很自豪地说,我们构建的开源解决方案每年仅花费约12,000美元运行。”“所以成本几乎下降了一个数量级。”由于节省巨大——近87%——工程投入在两年内就收回成本。除了以一小部分价格实现与Datadog的对等功能外,Uken现在完全控制基础设施,可以避免供应商锁定,并且可以根据未来需求演进系统。
开源可观测性的理由
Alexei在演讲结束时指出,具体的栈不如前进方向重要。他说,ClickHouse是“任何时候你有大量数据并想快速分析时使用的首选工具”,无论是像Uken这样的混合架构,还是通过一体化开源项目,如ClickStack,Alexei称之为“真的很容易设置和运行”。
他更大的观点是,开源可观测性工具已经成熟到成为严肃的默认选择,而不是妥协。“作为行业,现在是时候开始思考如何从供应商那里夺回杠杆,”他说,“并开始更多地拥抱开源工具,以帮助我们在编写代码时建立信任的信心。”
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏