prometheus-net
95 строк · 2.5 Кб
1namespace Prometheus;2
3public sealed class SuppressDefaultMetricOptions4{
5internal static readonly SuppressDefaultMetricOptions SuppressAll = new()6{7SuppressProcessMetrics = true,8SuppressDebugMetrics = true,9#if NET10SuppressEventCounters = true,11#endif12
13#if NET6_0_OR_GREATER14SuppressMeters = true15#endif16};17
18internal static readonly SuppressDefaultMetricOptions SuppressNone = new()19{20SuppressProcessMetrics = false,21SuppressDebugMetrics = false,22#if NET23SuppressEventCounters = false,24#endif25
26#if NET6_0_OR_GREATER27SuppressMeters = false28#endif29};30
31/// <summary>32/// Suppress the current-process-inspecting metrics (uptime, resource use, ...).33/// </summary>34public bool SuppressProcessMetrics { get; set; }35
36/// <summary>37/// Suppress metrics that prometheus-net uses to report debug information about itself (e.g. number of metrics exported).38/// </summary>39public bool SuppressDebugMetrics { get; set; }40
41#if NET42/// <summary>43/// Suppress the default .NET Event Counter integration.44/// </summary>45public bool SuppressEventCounters { get; set; }46#endif47
48#if NET6_0_OR_GREATER49/// <summary>50/// Suppress the .NET Meter API integration.51/// </summary>52public bool SuppressMeters { get; set; }53#endif54
55internal sealed class ConfigurationCallbacks56{57#if NET58public Action<EventCounterAdapterOptions> ConfigureEventCounterAdapter = delegate { };59#endif60
61#if NET6_0_OR_GREATER62public Action<MeterAdapterOptions> ConfigureMeterAdapter = delegate { };63#endif64}65
66/// <summary>67/// Configures the default metrics registry based on the requested defaults behavior.68/// </summary>69internal void ApplyToDefaultRegistry(ConfigurationCallbacks configurationCallbacks)70{71if (!SuppressProcessMetrics)72DotNetStats.RegisterDefault();73
74if (!SuppressDebugMetrics)75Metrics.DefaultRegistry.StartCollectingRegistryMetrics();76
77#if NET78if (!SuppressEventCounters)79{80var options = new EventCounterAdapterOptions();81configurationCallbacks.ConfigureEventCounterAdapter(options);82EventCounterAdapter.StartListening(options);83}84#endif85
86#if NET6_0_OR_GREATER87if (!SuppressMeters)88{89var options = new MeterAdapterOptions();90configurationCallbacks.ConfigureMeterAdapter(options);91MeterAdapter.StartListening(options);92}93#endif94}95}
96