Prometheus中标签名不同的两个查询如何相加并保留指定标签
实现方案
核心是通过PromQL内置的label_replace函数对齐两个指标的实例标识标签,让两个聚合结果的标签集匹配,相加后就可以保留你需要的实例标识和公共的kubernetes_namespace标签。
场景1:保留instance作为统一实例标识标签
将RDS指标的dbinstance_identifier标签值映射为新增的instance标签,再对齐标签集相加:
max( label_replace( aws_rds_free_storage_space_average{dbinstance_identifier=~"rds_db1"}, "instance", "$1", "dbinstance_identifier", "(.*)" ) ) by (instance, kubernetes_namespace) + max(pg_database_pg_database_size{instance=~"rds_db1"}) by (instance, kubernetes_namespace)
场景2:保留dbinstance_identifier作为统一实例标识标签
将PG指标的instance标签值映射为新增的dbinstance_identifier标签,再对齐标签集相加:
max(aws_rds_free_storage_space_average{dbinstance_identifier=~"rds_db1"}) by (dbinstance_identifier, kubernetes_namespace) + max( label_replace( pg_database_pg_database_size{instance=~"rds_db1"}, "dbinstance_identifier", "$1", "instance", "(.*)" ) ) by (dbinstance_identifier, kubernetes_namespace)
内容的提问来源于stack exchange,提问作者Homer
相关产品推荐
相关产品推荐

