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

具有相关字段但标签不同的promql示例

史钊
2023-03-14

我正在使用普罗米修斯和格拉法纳,我正在试图跟踪一个web服务器应用程序。

我想以毫秒为单位绘制特定查询的平均持续时间。我想我可以从下面的数据到那里,但我在挣扎。

我的两组值:

rate(http_server_request_duration_seconds_sum[5m])

Element Value
{instance="dbserver:5000",job="control-tower",method="get",path="/api/control/v1/node/config.json"} 0.0010491088980113385
{instance="dbserver:5000",job="control-tower",method="get",path="/api/schedule/v1/programs/:id.json"}   0
{instance="dbserver:5000",job="control-tower",method="get",path="/api/schedule/v1/users.json"}  0
{instance="dbserver:5000",job="control-tower",method="get",path="/metrics"} 0.00009133616130826839
{instance="dbserver:5000",job="control-tower",method="post",path="/api/caption/v1/messages.json"}   0
{instance="dbserver:5000",job="control-tower",method="post",path="/api/caption/v1/sessions.json"}   0
{instance="dbserver:5000",job="control-tower",method="post",path="/api/schedule/v1/programs.json"}  0
{instance="dbserver:5000",job="control-tower",method="put",path="/api/caption/v1/sessions/captioners.json"} 0
{instance="dbserver:5000",job="control-tower",method="put",path="/api/control/v1/agents/:id.json"}


rate(http_server_requests_total[5m])

Element Value
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="get",path="/api/control/v1/node/config.json"} 0.03511075688258612
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="get",path="/api/schedule/v1/programs/:id.json"}   0
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="get",path="/api/schedule/v1/users.json"}  0
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="get",path="/metrics"} 0.06671043807691363
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="post",path="/api/caption/v1/sessions.json"}   0
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="post",path="/api/schedule/v1/programs.json"}  0
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="put",path="/api/caption/v1/sessions/captioners.json"} 0
{code="200",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="put",path="/api/control/v1/agents/:id.json"}  0
{code="422",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="post",path="/api/schedule/v1/programs.json"}  0
{code="502",host="dbserver:5000",instance="dbserver:5000",job="control-tower",method="post",path="/api/caption/v1/messages.json"}
rate( http_server_request_duration_seconds_sum { path="/api/caption/v1/messages.json" }[5m])
{instance="dbserver:5000", job="control-tower", method="post", path="/api/caption/v1/messages.json"}    

但是分母可以有不同的返回码,所以我必须求和,我需要做一些忽略或on之类的事情,但我还没有找到一个例子来帮助我,我对此非常陌生。

有人吗?

共有1个答案

杜俭
2023-03-14

好吧,我继续玩。因为我只担心一条路,所以我想我可以求和。我想这很管用:

sum( rate( http_server_request_duration_seconds_sum {path="/api/caption/v1/messages.json"}[2h])) / sum( rate( http_server_requests_total{ path="/api/caption/v1/messages.json"}[2h]))

我改变了采样率,因为我的采样数据从我的5分钟窗口中下降,我有零。

我想这是做的是求和率,这去掉了所有的标签。我认为它也在使用2小时的数据。我认为速率值是该值在2小时内变化的速度。

 类似资料:
  • 我有个人课: 我有一个叫personList的人的名单: 现在我需要找到所有状态为“不活跃”的人,不管这个人是否有身份证。如果一个人没有身份证,但状态为“活跃”,也包括那个人。我正在使用Java流进行过滤: 流式传输后的结果是没有人被选中。第一个人没有被选中是因为它没有通过第二个过滤器,最后一个人没有被选中是因为它没有通过第一个过滤器。 我想我可以通过使用将两个过滤器合并成一个来修复它,但是我正在

  • 注意1:如果您有相同类型的字段(或相同的擦除),最好用匹配的字段命名所有@mock注释字段,否则Mockito可能会混淆,不会发生注入。 这是否意味着如果我有几个具有相同类型的字段,我不能只模拟其中一个字段,而是应该为所有具有相同类型的字段定义?这是已知的限制吗?有什么原因为什么它还没有被修复?通过字段名称匹配应该很简单,不是吗?

  • 我正在使用的数据库有许多具有相同列但(显然)具有不同表名的表(不是我设计的)。例如(这些是数据库表名): 有没有可能用JPA和Hibernate将这些映射到一个Java类实体?类的名称是,然后在使用它时传入例如,以便对象使用表? 还是只使用普通的、普通的Java对象来完成这样的任务更好? 谢谢你!

  • 我有两个名为Site和AppSite的对象,两个对象都有如下相同的字段。是否有任何util类将所有字段从AppSite复制到站点,如BeanUtils。copyProperties。 如果你看到上面的两个pojo,我有两个对象字段列表。两个对象也一样,只有Site和AmsSite对象。有相同的字段名,但不同的类名。 BeanUtils.copy属性是将所有文字字段值从AppSite正确复制到Sit

  • 簇是在“我的地图”上创建的,但当标记具有相同的地址时,单击簇时,工具提示不会显示。我正在使用Gmaps标记聚类器。代码示例:`function initMap(){//map options var options={zoom:7,center:{lat:53.3938131,lng:-7.858913}}}var map=new google.maps.map(document.getEleme

  • 我需要在 jenkins 管道的不同阶段分配相同的节点。场景是我需要运行分布式JMeter测试,并创建一个管道,如下所示: 第1阶段:并行设置一些代理,例如获取源代码和测试,编译源代码和安装依赖项,将jmeter服务器作为守护进程运行,获取当前节点的IP地址。 阶段2:在阶段1中分配相同的节点,并使用一个节点作为JMeter主节点,在该节点中,它将阶段1中所有节点的IP地址列表传递给 JMeter