使用 Prometheus 在 K8s 服务端点上测量 40 倍和 50 倍的错误?

Posted

技术标签:

【中文标题】使用 Prometheus 在 K8s 服务端点上测量 40 倍和 50 倍的错误?【英文标题】:Measuring 40x and 50x errors on a K8s service endpoint with Prometheus? 【发布时间】:2021-09-19 09:49:45 【问题描述】:

知道如何解决这个问题,在谷歌上找不到太多明确的信息,以测量我的服务端点上的错误(40 倍和 50 倍)。我的服务已启动,当我删除 pod 只是为了进行测试时,我可以在黑盒指标中看到 prometheus 获取和错误,但未指定为 40x 类型或 50x。

编辑 1:

是的,我已经设置了我的集群,在这个阶段是实验性的,我已经在 VirtualBox+Vagrant+K3s 上设置了它。我创建了两个简单的服务,一个前端一个后端,并配置 prometheus Jobs 来发现服务并通过 Blackbox 监视器探测它们的正常运行时间。我的目标是以某种方式在 grafana 仪表板上获得一些指标,以衡量一段时间内对这些服务的所有请求的 40 倍或 50 倍错误的数量。目前我的想法是测量 2xx 的数量并仅报告非 2xx 状态代码,但这将包括比 40x 和 50x 更多的错误/状态。

Prometheus 部署为 helm 堆栈,与 Blackbox 监视器相同。一切都部署在默认命名空间上,因为在这个阶段只是为了测试如何实现这个目标。

【问题讨论】:

嗨@NesimPllana,您需要提供更多详细信息。您是如何设置集群的?您使用的是裸机还是某些云提供商?这些错误是什么样的?请附上它们。您在集群上部署了什么以及如何部署。你是如何配置 Prometheus 和集群的? @MikołajGłodziak 感谢您的回复,请阅读上面的编辑。 【参考方案1】:

基于this topic:

Kubernetes 中的服务有点像负载平衡器——它们只是将请求路由到底层 pod。 pod 本身实际上包含执行工作并返回状态代码的应用程序。 您不监控 Kubernetes 服务 per-se 的 4xx 或 5xx 错误,您需要监控底层应用程序本身。

因此,您需要创建一个架构来监控您的应用程序。 Prometheus 只收集指标并从中制作图表,它本身并不处理任何事情。指标必须由应用程序公开。 Here 你可以找到主题——使用 Prometheus 进行 Kubernetes 监控,终极指南。非常全面,完美地解释了如何监控应用程序。对你来说,最有趣的部分应该是How to monitor a Kubernetes service with Prometheus。您还可以找到Prometheus Operator Tutorial。它可以帮助您对 Prometheus、Alertmanager 和 Grafana 进行自动化部署。

安装完所有内容后,您就可以收集指标了。使用lables 是一种很好的做法。这使您可以轻松区分来自应用程序的不同响应代码。

例如,创建一个名为 http_responses_total 的单个指标,而不是 http_responses_500_totalhttp_responses_403_total,并为 HTTP 响应代码添加一个 code 标签。然后,您可以将整个指标作为规则和图表中的一个来处理。

【讨论】:

以上是关于使用 Prometheus 在 K8s 服务端点上测量 40 倍和 50 倍的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何标记 Prometheus blackbox_exporter 端点

指标未显示在 /prometheus 端点上

k8s上搭建loki日志服务并通过prometheus进行错误日志告警

利用prometheus监控K8S

K8S部署Prometheus+Grafana监控集群

搭建Prometheus监控k8s服务