You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus .NET Core客户端指标端点数据保留时长及配置咨询

关于KestrelMetricServer的指标存储与数据保留问题

默认指标数据存储策略

KestrelMetricServer(属于Prometheus.NET生态)默认采用内存内累加式存储,底层依赖InMemoryCollectorRegistry实现。所有指标数据直接存储在应用进程内存中,属于单进程本地存储,进程重启后所有指标数据会丢失。

如何覆盖默认存储策略

你可以通过实现ICollectorRegistry接口自定义存储逻辑,或者使用第三方存储实现,在实例化KestrelMetricServer时传入自定义注册表即可替换默认策略。

示例代码:

// 自定义注册表实现示例
public class CustomCollectorRegistry : ICollectorRegistry
{
    // 实现ICollectorRegistry接口的所有方法,如GetCollectors、Register等
    // 根据自身存储需求编写具体逻辑
}

// 传入自定义注册表实例初始化KestrelMetricServer
var customRegistry = new CustomCollectorRegistry();
var metricServer = new KestrelMetricServer(port: 1234, registry: customRegistry);
metricServer.Start();

如果仅需调整内存存储的行为(比如添加过期逻辑),也可以基于InMemoryCollectorRegistry进行扩展改造。

未被抓取时的数据保留时长

默认的InMemoryCollectorRegistry不会自动清理未被抓取的指标数据,这些数据会永久保留在应用内存中,直到以下任一情况发生:

  • 应用进程重启或终止
  • 手动调用指标的清理/重置方法(如Counter.Reset()、Gauge.Set(0)等)
  • 指标实例失去所有引用被垃圾回收

内容的提问来源于stack exchange,提问作者Samrat Alamgir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:05:00