一段时间内 K8s 服务的正常运行时间 - Prometheus?
Posted
技术标签:
【中文标题】一段时间内 K8s 服务的正常运行时间 - Prometheus?【英文标题】:Uptime of K8s Service over a period of time - Prometheus? 【发布时间】:2021-09-07 01:27:50 【问题描述】:在一段时间内找出 K8s 服务可用性的最简单方法是什么,比如说 24 小时。我应该以 pod 为目标还是找到计算服务可达性的方法
【问题讨论】:
pod 的子集可能会重新生成,这并不意味着服务已关闭。 @P.... 你是对的,你建议如何解决这个问题? 【参考方案1】:我建议不要从二进制文件(是向上还是向下)来处理它,而是从“服务请求需要多长时间”的角度来处理它。换句话说,用 SLO 来表达您的可用性。您可以从PromTools 获得非常好的自动生成的基于 SLO 的更改规则。来自那里的一个具体示例规则,显示了 PromQL 部分:
1 - (
sum(rate(http_request_duration_seconds_bucketjob="prometheus",le="0.10000000000000001",code!~"5.."[30m]))
/
sum(rate(http_request_duration_seconds_countjob="prometheus"[30m]))
)
上面捕获了服务在不到 100 毫秒内提供非 500(非服务器错误,即假定的良好响应)所花费的时间与过去 30 分钟内的总体响应的比率,http_request_duration_seconds
是直方图,捕获服务请求的分布。
【讨论】:
以上是关于一段时间内 K8s 服务的正常运行时间 - Prometheus?的主要内容,如果未能解决你的问题,请参考以下文章
为啥托管在 Windows 服务内的 WCF 服务会在一段时间后死掉