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

使用Prometheus监控.Net Core应用时No Token Found错误的解决

解决Prometheus拉取AppMetrics指标时的"No Token Found"错误

我之前也碰到过一模一样的问题——用AppMetrics给.NET Core应用做监控时,访问http://localhost:57057/metrics能返回JSON数据,但把这个地址设为Prometheus监控目标时,就触发了"No Token Found"的警告。这是因为默认的/metrics端点返回的是Protobuf格式,而Prometheus默认期望纯文本格式,再加上AppMetrics的Protobuf端点需要特定Token验证,这就是报错的核心原因。

下面是完整的配置修复方案:

1. Startup.cs 配置调整

需要明确指定输出格式为Prometheus纯文本和Protobuf,并配置对应的端点格式化器:

// ConfigureServices
var metrics = new MetricsBuilder()
    .OutputMetrics.AsPrometheusPlainText()
    .OutputMetrics.AsPrometheusProtobuf()
    .Build();

services.AddMetrics(metrics);
services.AddMetricsEndpoints(options => {
    options.MetricsTextEndpointOutputFormatter = new MetricsPrometheusTextOutputFormatter();
    options.MetricsEndpointOutputFormatter = new MetricsPrometheusProtobufOutputFormatter();
});
services.AddMvc().AddMetrics();

// Configure
app.UseMetricsAllMiddleware();
app.UseMetricsAllEndpoints();

2. Program.cs 配置补充

在WebHost构建阶段集成Metrics组件:

var Metrics = AppMetrics.CreateDefaultBuilder()
    .OutputMetrics.AsPrometheusPlainText()
    .OutputMetrics.AsPrometheusProtobuf()
    .Build();

return WebHost.CreateDefaultBuilder(args)
    .ConfigureMetrics(Metrics)
    .UseMetrics()
    .UseStartup<Startup>()
    .Build();

3. appsettings.json 配置确认

确保Metrics相关端点已正确启用:

"MetricsOptions": {
  "DefaultContextLabel": "MyMvcApplication",
  "Enabled": true
},
"MetricsWebTrackingOptions": {
  "ApdexTrackingEnabled": true,
  "ApdexTSeconds": 0.1,
  "IgnoredHttpStatusCodes": [ 404 ],
  "IgnoredRoutesRegexPatterns": [],
  "OAuth2TrackingEnabled": true
},
"MetricEndpointsOptions": {
  "MetricsEndpointEnabled": true,
  "MetricsTextEndpointEnabled": true,
  "EnvironmentInfoEndpointEnabled": true
}

4. Prometheus 配置修改

关键一步:将Prometheus的指标拉取路径从/metrics改为/metrics-text——这个端点返回的是Prometheus兼容的纯文本格式,不需要Token验证:

- job_name: 'nameOfJob'
  metrics_path: '/metrics-text'
  static_configs:
    - targets: ['localhost:57057']

完成所有配置后,重启你的.NET Core应用和Prometheus服务即可。可以先手动访问http://localhost:57057/metrics-text,确认返回的是纯文本格式的指标数据。

内容的提问来源于stack exchange,提问作者Ertan Hasani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:22:52