public void Enable_Jit_Only() { var options = new RuntimeMetricsOptions { JitEnabled = true }; Assert.False(options.IsGcEnabled); Assert.True(options.IsJitEnabled); Assert.False(options.IsThreadingEnabled); Assert.False(options.IsProcessEnabled); Assert.False(options.IsAssembliesEnabled); Assert.False(options.IsAllEnabled); }
public void Enable_Threading_Only() { var options = new RuntimeMetricsOptions { ThreadingEnabled = true }; Assert.False(options.IsGcEnabled); #if NET6_0_OR_GREATER Assert.False(options.IsJitEnabled); #endif Assert.True(options.IsThreadingEnabled); Assert.False(options.IsProcessEnabled); Assert.False(options.IsAssembliesEnabled); Assert.False(options.IsAllEnabled); }
public void Enable_All_If_Nothing_Was_Defined() { var options = new RuntimeMetricsOptions(); Assert.True(options.IsGcEnabled); #if NET6_0_OR_GREATER Assert.True(options.IsJitEnabled); #endif #if NETCOREAPP3_1_OR_GREATER Assert.True(options.IsThreadingEnabled); #endif Assert.True(options.IsProcessEnabled); Assert.True(options.IsAssembliesEnabled); Assert.True(options.IsAllEnabled); }
public void Enable_Multiple() { var options = new RuntimeMetricsOptions { GcEnabled = true, ProcessEnabled = true }; Assert.True(options.IsGcEnabled); #if NET6_0_OR_GREATER Assert.False(options.IsJitEnabled); #endif #if NETCOREAPP3_1_OR_GREATER Assert.False(options.IsThreadingEnabled); #endif Assert.True(options.IsProcessEnabled); Assert.False(options.IsAssembliesEnabled); Assert.False(options.IsAllEnabled); }
/// <summary> /// Enables runtime instrumentation. /// </summary> /// <param name="builder"><see cref="MeterProviderBuilder"/> being configured.</param> /// <param name="configure">Runtime metrics options.</param> /// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns> public static MeterProviderBuilder AddRuntimeMetrics( this MeterProviderBuilder builder, Action <RuntimeMetricsOptions> configure = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var options = new RuntimeMetricsOptions(); configure?.Invoke(options); var instrumentation = new RuntimeMetrics(options); builder.AddMeter(RuntimeMetrics.InstrumentationName); return(builder.AddInstrumentation(() => instrumentation)); }