让我说我的数据库中一对一地对应了两个表table1和table2。为了在每个表中创建每个记录,有一个度量。现在,是否有两个人可以使用这两个度量(一个来自表1,一个来自表2)来获取信息,不知道在给定的时刻表1中有多少条记录在表2中具有对应的记录?我可以通过某种方式将记录的ID传递到指标中吗?
答案 0 :(得分:1)
如果您要为每条记录生成指标,并且每条记录都有唯一的标识符(即标签),则可以使用count
和by
聚合器。例如,如果count(table_metric{id="foo"}) by (table)
每个都有一个表标签,则可以使用。
如果度量标准名称不同,则可能要使用or
运算符创建并集。例如,count(table_1_metric or table_2_metric) by (id)
。
在任何一种情况下,如果您都希望在两个表中都输入一个条目,则需要检查以确保计数为2。
最后,只有我的两分钱,但我不建议养成将如此高基数数据放入Prometheus的习惯。一种替代方法是使用类似this SQL exporter之类的内容来基于数据库查询生成指标(例如SELECT count(*) FROM T1 LEFT JOIN T2 ON T1.ID = T2.ID WHERE T2.ID IS NULL
,这将向您显示有多少不匹配,因此您可以进行进一步调查)。>