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

普罗米修斯在重负载下监控应用程序时的数据缺口

胡星汉
2023-03-14

spring boot spring integration应用程序由普罗米修斯通过内置测微计进行监控。io。spring boot应用程序将显示locahost:8080/致动器/普罗米修斯。监测数据到达普罗米修斯,并可显示为图形。这很好用。

我的问题是我在普罗米修斯数据中得到了一些间隙。这些间隙发生在应用程序负载较重时。当应用程序非常繁忙时,locahost的响应时间:8080/执行器/prometheus变得更长是正常的。在我的情况下,没有负载不到1秒,但有负载时大约1分钟。目标显示在prometheus状态中-

我的问题是:这种情况有解决方案吗?(将优先级设置为监视url?,将临时信息存储在spring boot应用程序中并稍后发送)

更新:我正在尝试监控Spring集成指标,但对于这个问题来说,哪个指标并不重要。可能是类似jvm堆的任何东西。

共有1个答案

皇甫雨石
2023-03-14

在正常情况下,使用查询度量endpoint的速度非常快。

我想到了三种情况,这可能是它变慢的原因:

a) 您的应用程序负载过重,以至于需要花费太多时间才能接受http请求。这意味着你的应用程序服务的请求太多,无法处理。在这种情况下,给它更多的资源、线程或任何瓶颈。(参见此处)

b)您注册了自定义仪表,需要大量时间来计算或获取值。例如,在Gauge getter函数中进行数据库查询是一个杀手,因为每次查询指标endpoint时,您的应用程序都需要查询数据库,只有这样它才能呈现指标。如果您有多个这样的指标(按顺序处理)并且它们的性能取决于您的应用程序负载,情况会更糟(例如,当您的应用程序负载较重时,DB服务器变得更慢,这会使情况变得更糟)

c)您的指标标签基数取决于您的应用程序使用情况(这是一种不好的做法)。例如,当您的应用程序被大量使用时,为每个用户或每个会话拥有一个标签会增加指标的数量。这不仅会给您的应用程序带来压力(因为每个指标都需要一些内存),而且还会给您的Prometheus服务器带来压力,因为它为每个唯一的标签值组合创建文件。

您可以做什么,但这并不能解决问题的原因是增加了scrape\u timeout的值(请参见此处)。

 类似资料:
  • 我有一个启用了监视和日志记录的GKE集群(1.15)。到目前为止,我们一直使用metrics-server对StackDriver进行度量监控。对于其他自定义度量标准,我们使用了自定义度量标准适配器,该适配器使用Prometheus-to-SD将度量标准刮取并导出到stackdriver。 我想开始看看prometheus是否能给我们提供其他功能,比如HPA的聚合度量。 在GCP marketpl

  • 因为普罗米修斯是一个基于牵引的度量跟踪器。 现在假设我有一个简单的服务,我需要为Prometheus提供度量,现在我用该语言的一个客户机来做,将Prometheus配置为以15秒的频率轮询,这个度量API现在我有一个计数度量,Prometheus服务器在时间实例在时间t看到计数x,在时间t+15看到计数y 现在,由于报废间隔(拉动模型),我不知道计数x到y的增加是否有一个稳定的斜率,或者在t+10

  • 摘要 由于导入的Grafana仪表板无法工作,我正在尝试找出如何在Prometheus查询中正确使用或运算符。

  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 我应该在values.yaml之外添加一些东西吗?

  • 我正在尝试在我的Grails2应用程序中设置prometheus,所以我遇到了使用micrometer来设置prometheus。我尝试按照下面的说明进行操作:https://micrometer.io/docs/registry/prometheus,将编译行放在中,然后设置一个endpoint来公开度量。然而,该应用程序无法下载千分尺软件包,出现了大量错误,从下面的错误开始: 如有任何帮助,我