Metrics.NET icon indicating copy to clipboard operation
Metrics.NET copied to clipboard

Type initializer exception in Metrics.MetricsErrorHandler (NRE in cctor) when starting Metrics.NET in my service

Open sixlettervariables opened this issue 8 years ago • 3 comments

Using the code from the quick start in my service, I receive the following TypeInitializationException:

System.TypeInitializationException: The type initializer for 'Metrics.MetricsErrorHandler' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Metrics.MetricsErrorHandler..cctor()
   --- End of inner exception stack trace ---
   at Metrics.MetricsErrorHandler.get_Handler()
   at Metrics.PerfCounters.PerformanceCounters.Register(MetricsContext context, String name, Unit unit, String category, String counter, String instance, Func`2 derivate, MetricTags tags)
   at Metrics.PerfCounters.PerformanceCounters.RegisterSystemCounters(MetricsContext context)
   at Metrics.PerformanceCountersConfigExtensions.<>c__DisplayClass3_0.<WithSystemCounters>b__0(MetricsContext ctx, Func`1 hs)
   at Metrics.MetricsConfig.<>c__DisplayClass18_0.<WithConfigExtension>b__0(MetricsContext m, Func`1 h)
   at Metrics.MetricsConfig.WithConfigExtension[T](Func`3 extension, Func`1 defaultValueProvider)
   at Metrics.MetricsConfig.WithConfigExtension(Action`2 extension)
   at Metrics.PerformanceCountersConfigExtensions.WithSystemCounters(MetricsConfig config, String context)
   at Metrics.PerformanceCountersConfigExtensions.WithAllCounters(MetricsConfig config, String systemContext, String applicationContext)

In-use code looks like this:

            try
            {
                Metric.Config
                      .WithHttpEndpoint("http://localhost:50000/")
                      .WithAllCounters();
            }
            catch (Exception ex)
            {
                this.Log().Error("Could not start Metrics.NET", ex);
            }

Using v0.4.8.

sixlettervariables avatar Feb 16 '17 19:02 sixlettervariables

Same here.

Error happens at this line:

private static readonly Meter errorMeter = Metric.Internal.Meter("Metrics Errors", Unit.Errors);

Metric.Internal is null when debugging

yanjost avatar Feb 21 '17 14:02 yanjost

did anyone have any other answer for this rather vague error? I am getting this error occur on one server but not another, can't work out what it is unhappy about!

AlexisColes avatar May 03 '17 16:05 AlexisColes

The project is now worked on in a different repository: https://github.com/Recognos/Metrics.NET Same issue with the cause for the exception: https://github.com/Recognos/Metrics.NET/issues/58

aheubusch avatar May 03 '17 17:05 aheubusch