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

ASP.NET Core中如何在运行时获取App Metrics计数器指标值?

App Metrics运行时获取计数器值的解决方案

方法1:使用IMetricsManager直接查询

注入IMetricsManager后,可直接通过定义的CounterOptions获取实时值,这是最直接的方式:

private readonly IMetricsManager _metricsManager;

// 构造函数注入IMetricsManager
public YourService(IMetricsManager metricsManager)
{
    _metricsManager = metricsManager;
}

public long GetSampleCounterValue()
{
    var counterValue = _metricsManager.Counters.Value(MetricsRegistry.SampleValue);
    return counterValue.Total; // 返回计数器的总累计值
}

方法2:正确使用Snapshot获取快照值

如果需要基于指标快照查询,需先获取完整快照,再筛选目标计数器:

private readonly IMetrics _metrics;

public YourService(IMetrics metrics)
{
    _metrics = metrics;
}

public long? GetSampleCounterFromSnapshot()
{
    var snapshot = _metrics.Snapshot.Get();
    var targetCounter = snapshot.Counters.FirstOrDefault(c => 
        c.Context == MetricsRegistry.SampleValue.Context && 
        c.Name == MetricsRegistry.SampleValue.Name);

    return targetCounter?.Value.Total;
}

关键注意点

  • 确保ASP.NET Core中已正确注册App Metrics服务(通过AddMetrics()等扩展方法完成配置)。
  • 若计数器包含自定义标签,查询时需传入对应MetricTags参数才能精准匹配。

内容的提问来源于stack exchange,提问作者Saeid Mirzaei

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:24:13