小编neo*_*hat的帖子

如何根据标签更新千分表

我在 Spring Boot 2 应用程序中使用 MicroMeter 仪表来跟踪对象的状态。在状态更改时,statusArrived()调用该方法。此函数应更新与该对象相关的仪表。

这是我目前的实现:

public class PrometheusStatusLogger {

    private int currentStatus;

    public void statusArrived(String id, int value) {
        currentStatus = value;
        Tags tags = Tags.of("product_id", id);

        Gauge.builder("product_status",this::returnStatus)
          .tags(tags)
          .strongReference(true)
          .register(Metrics.globalRegistry);
    }

    private int returnStatus(){
        return currentStatus;
    }    
}
Run Code Online (Sandbox Code Playgroud)

这很有效,但问题是当调用此方法时,所有仪表值都会更新。我只想product_id更新给定的仪表。

输入

statusArrived(1, 2);
statusArrived(2, 3);
Run Code Online (Sandbox Code Playgroud)


电流输出

product_status{product_id=1} 3
product_status{product_id=2} 3
Run Code Online (Sandbox Code Playgroud)

所有仪表都更新了

所需的输出

product_status{product_id=1} 2
product_status{product_id=2} 3
Run Code Online (Sandbox Code Playgroud)

仅更新具有给定 product_id 标签的仪表。

我怎样才能做到这一点?

gauge spring-boot prometheus micrometer

7
推荐指数
1
解决办法
2330
查看次数

PromQL。如何添加不同指标的标签值

如果我有两个指标:

kube_pod_container_status_restarts_total {..., pod="my_pod_name_42", ...}
Run Code Online (Sandbox Code Playgroud)

container_memory_usage_bytes {..., pod_name="my_pod_name_42", cluster_name="megatron", ...}
Run Code Online (Sandbox Code Playgroud)

我想为重新启动指标设置警报,但包含cluster_name标签。我可以以某种方式聚合来自不同指标的标签值吗?

例如警报:

increase(kube_pod_container_status_restarts_total{namespace="42"}[1h])>4    
Run Code Online (Sandbox Code Playgroud)

需要以某种方式megatron在此处添加^,以便alertmanager能够在发送通知时使用此标签

prometheus promql prometheus-alertmanager

5
推荐指数
1
解决办法
1万
查看次数