Search code examples
c#.netmetrics

AppMetrics how to set application name?


I implemented App.Metrics into my wcf application (App.Metrics ver 3.1.0). When I check url in which data is uploaded I found that app isn't filled: enter image description here

Tried to figured out reason of this behavior I found manual: https://www.app-metrics.io/getting-started/fundamentals/tagging-organizing/

It said that AssemblyName needs to be filled, but I double-checked it - csproj file contain next row:

<AssemblyName>MyWebService</AssemblyName>

How can I fill this app property in metrics?


Solution

  • 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;
         }
    }