如何使用Prometheus在Kubernetes中监控应用程序

62次阅读
没有评论

共计 2131 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要讲解了“如何使用 Prometheus 在 Kubernetes 中监控应用程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“如何使用 Prometheus 在 Kubernetes 中监控应用程序”吧!

什么是 Prometheus 监控?

最近有很多关于 Prometheus 的消息,尤其是在 Kubernetes 中监控应用程序这方面。深入 RED 方法之前,我们先了解一些背景内容。应用程序运行在容器上并由 Kubernetes 负责调度,在此环境中它们是高度自动化并且动态的。传统的监控工具一般是基于服务器,只监控静态的服务,所以当要在这种动态环境监控应用程序时,传统的监控工具往往很难满足这一需求。

这时就需要 Prometheus 出马了。

Prometheus 是一个开源项目,最初由 SoundCloud 的工程师开发。它专门用于监控那些运行在容器中的微服务。每经过一个时间间隔,数据都会从运行的服务中流出,存储到一个时间序列数据库中,这个数据库之后可以通过 PromQL 语言查询。另外,因为数据是以时间序列存储的,当出现问题时,可以根据这些时间间隔进行诊断,另外还可以预测基础设施的长期监控趋势 —- 这是 Prometheus 的两大功能。

在 Weaveworks,我们把服务搭建在 Prometheus 的开源分布上,并且创建了一个可扩展、多租户的版本,这是我们软件即服务概念的一部分,称为 Weave Cloud。

现在,该服务已经运行了几个月,同时也使用 Weave Cloud 监控自己本身,在这个过程中我们积累到了一些有关监控云本机应用程序的经验,并根据这些经验设计了一个系统来确定在检测代码前需要测量什么。

该检测什么?

在搭建 Prometheus 监控时,确定需要收集的指标类型十分重要,这些指标和应用程序相关。选择的指标可以简化故障发生时排除故障的流程,并且还可以在服务和基础设施上保持很高的稳定性。为帮助理解 instrument 的重要性,我们定义了一个称之为 RED 方法的系统。

RED 方法遵循 Four Golden Signals 中提及的原则,聚焦于检测最终用户在使用 web 服务时关心的东西。

在 RED 方法中,我们通过监控三项关键指标来管理架构中的每个微服务:

(Request)Rate – 你的服务所服务的每秒的请求数

(Request)Errors – 每秒失败的请求数

(Request)Duration – 每个请求所花费的时间,用时间间隔表示

RED 方法希望由 Rate、Errors、Duration 三项指标涵盖最典型的 Web 服务问题。同时这些指标还能够反映出请求的错误率。通过这三项指标,我们就能监测到通常情况下会影响客户体验的问题。

如果想要获得更细节的信息,还需要用到 Saturation 指标。Saturation 指标用在 USE(Utilization Saturation and Errors)方法中,它指的是一种带有额外作业的资源,而该资源不能够提供服务,因此必须添加到队列中以备后续处理。

USE vs. RED 方法

对比两种方法,USE 方法更侧重于监控的性能,并以此为出发点寻找影响性能问题的根本原因以及其他系统的瓶颈。

在理想状态下,我们可以在监控应用程序时同时使用 USE 和 RED 方法。

为什么要对每个服务衡量相同的指标

从监控的角度来看,如果能处理好每项服务,你的运营团队就可以在此基础上继续扩展服务。

扩展性对运营团队意味着什么?我们从这个角度看待问题,一个团队可以支持多少个服务。在理想状态下,一个团队可以支持的服务数量和团队规模无关,而取决于其他因素,比如 SLA 协议的响应类型以及是否需要全天候覆盖等等。

如何将可支持的服务数量与团队规模去藕化?办法是让每一个服务都变得一样。这既减少了团队针对特定的服务进行培训的数量,还减少了在高压事件响应场景或者所谓“认知负载”这些针对特定服务的特殊情况发生时,呼叫者需要记录的内容。

容量规划:考虑 QPS(每秒查询次数)和延迟

自动化任务以及发出警报:RED 方法的优点在于它可以帮助你考虑如何在仪表板中显示信息。通过这三个指标,你可以对仪表板的布局进行调整,让它更易于阅读,并在问题发生时发出警报。例如,一个布局可能意味着 — 每个服务都有一个不同的 Weave Cloud 记事本,包含了 PromQL 查询的请求 错误,以及每个服务的延迟。

毫无疑问,如果把所有的服务都视为一样的,那么将会更加易于自动化执行重复任务。

PromQL 查询

在 Weave Cloud 上监控 RED 方法中的指标

局限性

事实上,这种方法(RED)仅适用于请求驱动的服务——比如,它在处理面向批处理的服务或者流服务时会发生错误。对于请求驱动它也不是完全适用,当需要监控其他东西——比如主机 CPU 内存或者缓存资源时,USE 方法表现的更好。

感谢各位的阅读,以上就是“如何使用 Prometheus 在 Kubernetes 中监控应用程序”的内容了,经过本文的学习后,相信大家对如何使用 Prometheus 在 Kubernetes 中监控应用程序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2131字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)