kubernetes - 使用 Prometheus 在 K8s 服务端点上测量 40 倍和 50 倍的错误?
问题描述
任何想法如何去做,在谷歌上找不到太多明确的信息,以测量我的服务端点上的错误(40x 和 50x)。我的服务已启动,当我删除 pod 只是为了进行测试时,我可以在黑盒指标中看到 prometheus 获取和错误,但未指定为 40x 类型或 50x。
编辑1:
- 是的,我已经设置了我的集群,在这个阶段是实验性的,我已经在 VirtualBox+Vagrant+K3s 上设置了它。我创建了两个简单的服务,一个前端一个后端,并配置 prometheus Jobs 来发现服务并通过 Blackbox 监视器探测它们的正常运行时间。我的目标是以某种方式在 grafana 仪表板上获得一些指标,以衡量一段时间内对这些服务的所有请求的 40 倍或 50 倍错误的数量。目前我的想法是测量 2xx 的数量并仅报告非 2xx 状态代码,但这将包括比 40x 和 50x 更多的错误/状态。
Prometheus 部署为 helm 堆栈,与 Blackbox 监视器相同。一切都部署在默认命名空间上,因为在这个阶段只是为了测试如何实现这个目标。
解决方案
基于此主题:
Kubernetes 中的服务有点像负载均衡器——它们只是将请求路由到底层 pod。pod 本身实际上包含执行工作并返回状态代码的应用程序。您不需要监控 kubernetes 服务 本身的 4xx 或 5xx 错误,您需要监控底层应用程序本身。
因此,您需要创建一个架构来监控您的应用程序。Prometheus 只收集指标并从中制作图表,它本身并不处理任何事情。指标必须由应用程序公开。在这里您可以找到主题 - 使用 Prometheus 进行 Kubernetes 监控,终极指南。非常全面,完美地解释了如何监控应用程序。对你来说,最有趣的部分应该是如何使用 Prometheus 监控 Kubernetes 服务。您还可以在那里找到Prometheus Operator Tutorial。它可以帮助您对 Prometheus、Alertmanager 和 Grafana 进行自动化部署。
安装完所有内容后,您将能够收集指标。使用标签是个好习惯。这使您可以轻松地区分来自应用程序的不同响应代码。
例如,创建一个使用HTTP 响应代码标签调用的单一指标,而不是
http_responses_500_total
and 。然后,您可以将整个指标作为规则和图表中的一个来处理。http_responses_403_total
http_responses_total
code
推荐阅读
- jhipster - 更新实体时防止 JHipster import-jdl 覆盖更改
- javascript - scrollTop 的问题 - 30 秒应该持续,29 秒停留在一个地方
- javascript - 模型与列表
使用 Ajax 向控制器发送 post 请求时 - javascript - 具有同一对象的方法的新属性?
- c++ - constexpr 函数采用 const char*
- virtual-machine - 控制台已断开连接。关闭此窗口并重新启动控制台以重新连接
- sharepoint-online - Office 365 管理 API:使用 StartTime 和 EndTime 进行筛选不起作用
- java - SpringLayout 是固定大小的布局管理器吗?
- r - R:如何编织 pdf 并且只打印输出但在没有 `suppressMessages` 的情况下抑制消息?
- r - 根据特定模式对数据框进行子集化