成功/ Payit

随着在Kubernetes上运行的微服务越来越多,PayIt转向了Grafana和Prometheus,以获得云原生规模的可观测性

乘法问题

PayIt使用基于微服务的架构,是Kubernetes的早期采用者,从2015年开始运行它用于容器编排。

在启动阶段的开始——在他们开始使用Grafana之前——PayIt有一个Kubernetes集群,这使得基础设施团队很容易手动监控一切。

对于应用程序开发人员来说,事情同样并不复杂。当应用程序在一个好的日子里获得5个交易时,日志中的混乱最小化,使得服务日志和文件很容易找到。

但随着PayIt业务的扩大,公司推出了更多的服务,通常的做事方式变得不那么有效。当一个集群中的100个服务变成两个集群中的100个服务时,简单的查询就成为过去式了。“我们遇到了一个乘法问题,”PayIt基础设施平台工程团队的工程师马特·比尔斯(Matt Beers)解释说。因此,PayIt团队没有简单的方法来知道下游的服务是否会影响上游的不同服务,或者如何查询来找出答案。

随着服务的增多,解决面向用户的问题也变得更具挑战性,特别是因为每天的数据流量都在变化。当时,他们建立了一个临时建立的系统来监控发布到Slack上的警报,但这个系统往往更令人困惑,而不是有用。Slack的警报只表明有文件处于不健康状态,但如果错误已被纠正,则不会发出警报,因为在恢复到健康状态后没有“绿色”警报。PayIt维护团队的软件工程经理马特·门岑斯基(Matt Menzenski)说:“我们会收到两个文件的警报,然后看到一个文件的警报,我们必须由此推断第二个文件已经恢复到‘健康状态’。”“有了Grafana仪表板,我们不需要推断任何事情,它都被明确地布局了。”

大问题是:他们如何将噪声转化为信号,并获得可观测性,以了解他们的复杂系统中实际发生了什么?

丰富的福利

从一开始,PayIt就一直在寻找云原生解决方案。bob彩票中奖计划考虑到这一点,团队寻找了一种工具,它可以在基础设施级别提供一些可见性,而且因为PayIt是一家初创公司,所以也可以节省成本。他们想要一种解决方案,可以让他们的开发人员在诊断问题时进行更多的自助服务,而且它必须是可配置的,可以轻松地部署到现有的基础设施中。

他们的解决方案是:Grafana和普罗米修斯

比尔斯解释说,他们喜欢这个组合的一个关键原因是:“这是一个由社区支持的大型Kubernetes模式。”

当我们构建云原生时,我们期望服务器是不可变的,如果它们处于糟糕的状态,它们就会消失并被替换。像Grafana和Kubernetes这样的原生云解决了这个问题。

Matt Beers, Payit基础设施平台工程团队工程师

这意味着能够支持云原生规模。截至2021年初,该公司的足迹已经扩展到现在有9个Kubernetes集群(每个集群有6到21个节点),每个集群都有自己的Prometheus-Grafana集群。他们每天生产大约4500万根原木,换算成每天消耗大约40到50GB的木材。

利用社区仪表板生态系统

PayIt目前有36个Grafana仪表盘,由数百个面板组成。其中大约一半是基于kubernetes的(集群监控、pod监控、工作流、工作负载、控制平面监控)。其他包括Java服务、节点服务和度量。团队通过利用现有的Grafana快速开始使用社区仪表板.比尔斯说:“他们已经提供了所有的数据,并从API服务器和我们已经需要的一切中收集了所有的指标。”

例如,使用社区模板,Menzenski发现使用Node Prometheus客户端库创建一个仪表板来公开Prometheus度量端点“非常容易”。它只花了大约半个小时就运行起来了,一旦数据可用,他就能从使用它的团队那里得到立即的反馈。响应:“这太棒了。这正是我们在生产环境中运行这项服务所需要的。”

PayIt’s生产节点服务仪表板

Menzenski非常欣赏它的快速组合,并指出,作为一个非node .js开发人员,他自己会花大半天时间来构建它。因为创建Grafana仪表板不需要特殊的专业知识,在开发环境中,PayIt的任何人都可以作为管理员登录用JSON制作仪表板

因此,PayIt已经能够构建一些定制的仪表板,以适应业务的特定需求。它的一个关键仪表板有助于对来自客户的每日数据文件交付(例如市政账单余额的每日报告)发出警报。Menzenski说:“如果文件没有送达,那就是坏消息。”“这意味着我们的余额可能会过期,或者付款不会反映在客户系统中,这意味着糟糕的公民体验。”

支付队列大小仪表板

Menzenski表示,意识到他们可以将现有数据可视化,并使非工程师更容易理解,“这是一个真正的‘顿悟’时刻。”过去,他们不得不依赖白手起家拼凑起来的不可靠、嘈杂的Slack警报系统,现在他们有了清晰、标准化、系统化的方式来可视化处于健康状态的东西,看到它就在他们面前,并采取主动行动来解决它。

PayIt’s Java服务仪表板

Grafana还帮助PayIt改善客户体验。其中一个仪表板包括PayIt消息服务的队列,该服务向用户发送电子邮件,提醒他们即将到来的账单或确认相关支付。多亏了提醒,PayIt团队能够在服务开始发送重复的电子邮件之前发现问题,这些电子邮件可能会让客户感到困惑(和烦恼)。在政府服务的业务中,确保与公众的这种清晰和一致的沟通,可以增强急需的公众信心。

“我很高兴我们现在有了这些数据,”Menzenski说。

现在有了一个集中的可观察性解决方案,当Payit在一个服务中发现问题时,他们可以使用该信息对其他服务进行更改,以避免将来遇到类似的问题。

丰富的奖励

有了Grafana, PayIt不仅可以捕捉和预防这些面向客户的问题,还可以转移这些问题。

在该公司,任何收到PayIt电子邮件的人都经过认证,可以查看仪表板。因此,非工程师(包括支持团队)可以访问数据,因此在出现支持问题时,不再需要等待维护团队——这是潜在的客户体验瓶颈。

当客户付款但没有立即收到收据时,这种方法就会派上用场,所以他们会打电话给客户支持。代表可以查看仪表板,查看待办事项,并让他们知道他们很快就会收到收据。对于他们之前的人工可观测性解决方案,支持团队是不可能处理的。维护团队将被这些请求淹没,并远离为公司创新新的工具和系统。

管理谁获得数据以及何时获得数据的能力也为基础设施团队带来了回报。Beers说,如果有人报告了环境中的一个问题,基础设施团队的第一步是将他们重定向到Grafana或日志提供商之一,以便在与更大的团队合作之前尽可能多地收集数据。

能够使用Grafana跨多个环境收集和可视化数据的另一个好处是,他们可以在事件发生后返回并查找趋势。比尔斯说:“能够比较和对比这些指标真的很酷。

他指出,Grafana帮助PayIt保持了以客户为中心的工程文化,这是保持业务增长所需的,但它也对工程专业发展产生了影响。“我们可以为工程师提供一个更符合行业标准的框架,帮助他们理解如何调试应用程序和复杂系统,而不是让工程师自己通过日志文件进行日志记录。”

采用Grafana也让他们有机会授权新创建的团队。当PayIt建立了一个名为客户运营的非工程团队(由两名客户成功团队成员组成)时,该团队获得了访问Grafana仪表板的权限,以便与客户就日常运营问题进行交互。这使得工程师能够专注于真正需要他们的专业知识的事情。现在,如果文件传递问题再次出现,例如,客户端成功团队可以直接带着时间戳找到客户端,让他们知道丢失了什么,甚至解释哪里出了问题。

Menzenski补充道:“有了触手可及的数据,我们的对话就完全不同了。

缓存和检查

总的来说,Grafana帮助PayIt的团队更好地定位和理解问题及其范围,因为他们可以在一个地方看到所有东西。

这也让他们通过看到自己对其他人的影响,认识到某些服务的重要性。他们遇到挑战的一个特殊领域是缓存。比尔斯说:“我们可以查看响应时间的百分位数,以了解系统中的涟漪效应。”“这种可观察性的水平确实突出了这些特定服务的重要性,因为它们的消费者数量非常多。如果他们出现问题,那么整个平台就会出现问题。”

有一次,他们发现来自web应用程序的调用的问题与来自支付服务的调用的问题相似。在几个人深入研究了仪表板之后,他们发现了多个峰值和瓶颈,并意识到问题是相互关联的,并且影响到每个人。多亏了他们集中观测平台在没有Grafana的情况下,如果他们试图关联不同的数据集,就需要几个小时、多个作战室和太多的人,而在电话中只需要一个小时就能找到问题。

Menzenski说,Grafana仪表板提供的可视化是必不可少的。没有它,他们可能会错过有价值的信息。

这有点像只有信号,没有噪音。你打电话给Grafana,它就会告诉你你想要什么,这真的很好。

Matt Menzenski,软件工程经理

展望未来

现在他们知道了Grafana能为他们做什么,PayIt正在考虑更广泛地使用它。

展望未来,Menzenski希望更多地与非工程涉众合作。他的目标是发现哪些数据点——以及他们还没有收集到的指标——可能对他们有价值,可以放在仪表板上。“潜力很大,”他说。一种想法是创建一个显示支付成功与失败的仪表板。“如果一项特定的服务出现错误激增,这对我们的客户集成团队来说可能真的很有价值。”

PayIt还瞄准了其平台的一个新的无代码版本,在这个平台上,团队可以建立一个新的集成,而无需工程师编写一行代码。“我们能不能做一些仪表盘,这样你就可以在不涉及工程的情况下自助服务?”Menzenski奇迹。“有很多潜力,我们才刚刚开始考虑。我个人觉得我只是触及了这个工具的表面。”

行业
政府

bob手机app官网产品/项目使用

79bob官方下载

普罗米修斯

Grafana开源