当前位置: 首页 > 知识库问答 >
问题:

普罗米修斯-为平均订单规模、订单处理时间和订单之间的时间设计定制指标

堵茂勋
2023-03-14

使用普罗米修斯度量标准需要不同的思维方式。设计指标通常并不太困难。你能帮我设计订单处理系统的指标吗?

系统处理请求(如订单)。每个请求都包含许多要处理的项目。请求的处理时间可能在几秒钟到几小时之间。一个请求中的项目数在100万到100万之间变化。请求之间可能有一段时间。

我如何设计指标(计数器,量表,直方图,摘要?)普罗米修斯在白天(比如每10分钟)提供以下信息:

  • 每个时间单位处理的平均项目数(请求中)

在每个请求的应用程序中,以下信息可用:开始时间、结束时间、处理的项目数。

共有1个答案

潘银龙
2023-03-14

最有用的普罗米修斯度量是计数器。它基本上是进程生命周期中的一个不断增加的值(每当被监视的进程重新启动时,它从零开始)。在此基础上,您只需将范围开始时的值减去范围结束时的值,即可计算在任何时间范围内(前5分钟,昨天,今年至今)监控指标的增加量。(并将任何重置调整为零。)普罗米修斯通过它提供的increase()rate()函数自动为您完成这项工作。

对于您的特定用例,每个时间单位处理的项目的平均数量将是例如率(items_processed_total[5m]),其中率()由Prometheus提供;items_processed_total是您必须定义和每次处理一个项目(或一批项目)时都会递增;5m是您希望计算平均值的时间范围(您显然可以使用任意值,只要它比刮擦时间长几倍间隔)。这将得到QPS平均值,即每秒处理的项目数,平均超过5分钟。

对于第二个要点(请求的平均处理时间),您需要两个计数器,假设请求\u已处理\u总计(每次处理完请求时递增1)和请求\u处理\u时间\u秒总计(每次处理完请求时递增请求\u结束\u时间-请求\u开始\u时间)。然后,您所寻找的价值将由

rate(request_processing_time_seconds_total[5m]) / rate(requests_processed_total[5m])

即请求流转时长比前5分钟增加多少除以前5分钟处理的请求数。(或您选择的任意时间范围。)

最后一点(请求之间的平均等待时间)是

1 / rate(requests_processed_total[5m])

如果您想要请求之间的平均时间(即“每秒请求”的倒数,即“每秒请求”)。

或者,如果您对请求之间的空闲时间感兴趣:

(1 - rate(request_processing_time_seconds_total[5m]))
  /
rate(requests_processed_total[5m])

如果你只对请求之间的空闲时间感兴趣。为了解释这一点,1-速率(请求处理时间秒总数[5m])是作业空闲时间的百分比(100%处理时间);除以QPS等于乘以请求之间的平均间隔(见上文)。

后一个表达式假定这是一个单线程进程,它要么处理请求,要么空闲。如果您实际上是并行处理请求,“空闲时间”作为一个度量标准没有多大意义。

最后,如果你对平均值(比如中位数或其他百分位数)感兴趣,柱状图是很好的。如果他们不使用一个数量级以上的指标(以及存储和CPU等),我会将它们用于一切。例如,请求处理时间的柱状图将为您提供平均处理时间、估计中值处理时间以及您想要的任何其他百分比(估计)。当然,还要加上请求数量和总处理时间(内置)。它们允许您跨多个实例进行聚合度量,而不是汇总度量。

 类似资料:
  • https://www.hackerrank.com/challenges/minimum-average-waiting-time/problem这是一个hackerrank问题的链接。我正在努力。它通过了一些测试用例,失败了一些。我在STL中使用了内置的优先级队列模板。代码如下, 我针对这个问题查找了一个叫做非抢占式优先调度的算法并实现了它。我的疑问:这个调度算法是解决问题的正确算法吗?我想知

  • 我试图找到Grafana中所有URL的平均响应时间, 下面的查询没有返回任何数据,我在这里做错了什么? 数据通过千分尺收集。

  • mysql会员订阅数据表的设计应该如何设计?产品有订阅商品和非订阅的,每次都只能购买一个。 订阅有1个月 3个月的 每次到期自动扣费。如果在一个月类购买了几个订阅商品 则扣费按照最新的一个 然后延长到期时间。其实是不是每次订阅都不需要生成新订单的 翻阅了其他资料都找不到很好的设计

  • 目录表 时间表 术语表 时间表 本文档在2005年1月13日4点02分生成。 修订记录 1.20版 2005年1月13日 使用FC3上的Quanta+的完全重写。做了许多修正和更新。添加了许多新的例子。重写了我的DocBook设置。 1.15版 2004年3月28日 少量修订。 1.12版 2004年3月16日 添加修正了一些内容。 1.10版 2004年3月9日 感谢我的热情读者的帮助,我对更多

  • “处理您的订单时出错” 我设置付款方式没有问题,但当我尝试使用authorize.net选项时,我得到一条弹出消息,上面写着“处理您的订单时出错”。订单不显示在后端,但付款被处理,我会收到一封确认电子邮件,上面有我的订单号。 我用Authorize.net检查了付款是否通过,信用卡是否有效,并且似乎没有问题,它去掉了问题可能是由于配置不良造成的选项。 下一个异常“zend_db_statement

  • 主要内容:1.订单系统在企业中的角色,2.订单系统与各业务系统的关系,3.订单系统上下游关系,4.订单系统的业务架构1.订单系统在企业中的角色 在搭建企业订单系统之前,需要先梳理企业整体业务系统之间的关系和订单系统上下游关系,只有划分清业务系统边界,才能确定订单系统的职责与功能,进而保证各系统之间高效简洁的工作。 2.订单系统与各业务系统的关系 2.1 对外系统 所有给企业外部用户使用的系统都在这一层,包括官网、普通用户使用的C端,还包括给商户使用的商家后台和在各个销售渠道进行分销的系统,比如与