AppMetrics 如何设置应用名称?
AppMetrics how to set application name?
我在我的 wcf 应用程序(App.Metrics 版本 3.1.0)中实现了 App.Metrics。
当我检查上传数据的 url 时,我发现 app 没有填写:
试图找出这种行为的原因,我找到了手册:
https://www.app-metrics.io/getting-started/fundamentals/tagging-organizing/
它说需要填写 AssemblyName,但我仔细检查了它 - csproj 文件包含下一行:
<AssemblyName>MyWebService</AssemblyName>
如何在指标中填写此 app 属性?
startup.cs:
var metrics = MetricsProvider.Instance.Metrics;
SetMetricsAppTag(metrics, Assembly.GetExecutingAssembly().GetName().Name);
private static void SetMetricsAppTag(IMetricsRoot metricsRoot, string appTagValue)
{
if (!metricsRoot.Options.GlobalTags.ContainsKey("app"))
{
metricsRoot.Options.GlobalTags.Add("app", appTagValue);
}
else if (string.IsNullOrEmpty(metricsRoot.Options.GlobalTags["app"]) || metricsRoot.Options.GlobalTags["app"] == "unknown")
{
metricsRoot.Options.GlobalTags["app"] = appTagValue;
}
}
更好的方法是在启动时执行-
var metrics = AppMetrics.CreateDefaultBuilder().
Configuration.
Configure(options => options.AddAppTag(appName: "nexus"))
.Build();
services.AddMetrics(metrics);
services.AddMetricsTrackingMiddleware();
services.AddMetricsEndpoints(opt =>
{
opt.MetricsTextEndpointOutputFormatter = new MetricsPrometheusTextOutputFormatter();
opt.MetricsEndpointOutputFormatter = new MetricsPrometheusProtobufOutputFormatter();
opt.EnvironmentInfoEndpointEnabled = false;
});
我在我的 wcf 应用程序(App.Metrics 版本 3.1.0)中实现了 App.Metrics。
当我检查上传数据的 url 时,我发现 app 没有填写:
试图找出这种行为的原因,我找到了手册: https://www.app-metrics.io/getting-started/fundamentals/tagging-organizing/
它说需要填写 AssemblyName,但我仔细检查了它 - csproj 文件包含下一行:
<AssemblyName>MyWebService</AssemblyName>
如何在指标中填写此 app 属性?
startup.cs:
var metrics = MetricsProvider.Instance.Metrics;
SetMetricsAppTag(metrics, Assembly.GetExecutingAssembly().GetName().Name);
private static void SetMetricsAppTag(IMetricsRoot metricsRoot, string appTagValue)
{
if (!metricsRoot.Options.GlobalTags.ContainsKey("app"))
{
metricsRoot.Options.GlobalTags.Add("app", appTagValue);
}
else if (string.IsNullOrEmpty(metricsRoot.Options.GlobalTags["app"]) || metricsRoot.Options.GlobalTags["app"] == "unknown")
{
metricsRoot.Options.GlobalTags["app"] = appTagValue;
}
}
更好的方法是在启动时执行-
var metrics = AppMetrics.CreateDefaultBuilder().
Configuration.
Configure(options => options.AddAppTag(appName: "nexus"))
.Build();
services.AddMetrics(metrics);
services.AddMetricsTrackingMiddleware();
services.AddMetricsEndpoints(opt =>
{
opt.MetricsTextEndpointOutputFormatter = new MetricsPrometheusTextOutputFormatter();
opt.MetricsEndpointOutputFormatter = new MetricsPrometheusProtobufOutputFormatter();
opt.EnvironmentInfoEndpointEnabled = false;
});