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

普罗米修斯:每个用户的标签与每个用户的度量

徐昕
2023-03-14

我有一个系统,作为第三方的API。我需要观察每个第三方的响应时间。但正如普罗米修斯在其文档中所定义的:

请记住,键值标签对的每一个唯一组合都表示一个新的时间序列,这会显著增加存储的数据量。不要使用标签存储基数高的维度(许多不同的标签值),如用户ID、电子邮件地址或其他无界值集。

http_3rdParty1_requests_total http_3rdParty2_requests_total...

共有1个答案

郑波
2023-03-14

使用“每个用户标签”。不要将多个无关的关注点放入度量名称中。

如果您使用http_3rdparty1_requests_total作为度量名称,您将两个值连接到一个文本字段中:客户机名称和度量名称连接在一起。

如果您以这种方式设计SQL数据库,例如将“客户姓氏+银行分行名称”存储在一个文本字段中,我们会认为您犯了一个新手错误,并告诉您在两个字段中存储两个值,每个字段都有一个有意义的名称,而不是在一个字段中混合了两个值。这没什么不同。

您不能通过将数据放在名称中而不是它自己的标签中来绕过基数。那根本不会改变基数。由于有超过600个唯一值,您可能会遇到任何问题。

但是将两个不同的值存储在两个字段中,而不是一个字段中,仍然是正确的方法,这样可以省去以后查询时的麻烦。例如,使用单独的标签,例如user=“3rdparty1”,您可以创建查询,例如:在过去24小时内有多少用户处于活动状态?显示每个用户http请求量的图表。显示在上一个小时内有10个或更多错误的用户。显示此用户的所有指标。

参见:

https://www.oreilly.com/library/view/prometheus-up/9781492034131/ch05.html

 类似资料:
  • 如何在普罗米修斯查询中添加标签过滤器? KUBE_POD_INFO -->按命名空间测试筛选pod。 在这里,我想包括基于标签的过滤器以及。我在kube_pod_labels中有一个名为“label_source=”k8s“的标签。如何加入kube_pod_info和kube_pod_labels来应用标签筛选器?

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 我试图解决一个问题,使总和和组查询普罗米修斯上的一个指标,其中的标签分配给度量值唯一的我的总和和和组的要求。 我有一个ElasticSearch索引的指标采样大小,其中索引名称被标记在指标上。索引是这样命名的,并放置在标签"index"中:

  • 我有以下计数器指标 如何计算最近2分钟内活动设备的数量,即2(设备id 3和4)?

  • 我在一个相对简单的应用程序中使用Prometheus 0.6.0Java客户端。我只有两个计数器和两个仪表,它们通过HTTP RESTendpoint公开,使用内置的Prometheus。我看到了相当不稳定的行为。 有时,计数器根本不会被注册(例如,当到达HTTPendpoint时,永远不会显示),其他时候,会显示< code># HELP和< code># TYPE行,但不会显示实际的度量。我能

  • 我正在将Spring Boot应用程序从Spring Boot 1(使用Prometheus Simpleclient)转换为Spring Boot 2(使用微米)。 我很难将我们在《春靴1》和《普罗米修斯》中的标签转换为千分尺的概念。例如(普罗米修斯): Micrometer的标签似乎与Prometheus的标签有些不同:所有的值都必须预先声明,不仅仅是键。 可以将普罗米修斯的标签与Spring