Я хочу контролировать свое приложение .Net Core с помощью Prometheus.Для этого я использую .Net Prometheus Library (AppMetrics).И когда я перехожу по ссылке http://localhost:57057/metrics
, она возвращает мне JSON с данными.
Но когда я захожу в Прометей и добавляю эту ссылку в качестве цели, она выдает эту ошибку No Token Found
.
level = warn ts = 2018-05-22T06: 52: 17.5781093Z Вызывающий абонент = scrape.go: 697 компонент = "менеджер скраба" scrape_pool = actibook target = http://localhost:57057/metrics msg = "добавить не удалось" err ="токен не найден"
Это способ, которым я могу справиться с этим?
Если у кого-то возникли проблемы с этим, вот решение.
Startup.cs
//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();
Program.cs
Metrics = AppMetrics.CreateDefaultBuilder()
.OutputMetrics.AsPrometheusPlainText()
.OutputMetrics.AsPrometheusProtobuf()
.Build();
return WebHost.CreateDefaultBuilder(args)
.ConfigureMetrics(Metrics)
.UseMetrics()
.UseStartup<Startup>()
.Build();
appsettings.json
"MetricsOptions": {
"DefaultContextLabel": "MyMvcApplication",
"Enabled": true
},
"MetricsWebTrackingOptions": {
"ApdexTrackingEnabled": true,
"ApdexTSeconds": 0.1,
"IgnoredHttpStatusCodes": [ 404 ],
"IgnoredRoutesRegexPatterns": [],
"OAuth2TrackingEnabled": true
},
"MetricEndpointsOptions": {
"MetricsEndpointEnabled": true,
"MetricsTextEndpointEnabled": true,
"EnvironmentInfoEndpointEnabled": true
}
И вы можете получить к нему доступ по пути /metrics-text
.Также в вашем prometheus.yml
файле следует добавить этот:
- job_name: 'nameOfJob'
metrics_path: '/metrics-text'
static_configs:
- targets: ['localhost:57057']