prometheus-net

Форк
0
/
SuppressDefaultMetricOptions.cs 
95 строк · 2.5 Кб
1
namespace Prometheus;
2

3
public sealed class SuppressDefaultMetricOptions
4
{
5
    internal static readonly SuppressDefaultMetricOptions SuppressAll = new()
6
    {
7
        SuppressProcessMetrics = true,
8
        SuppressDebugMetrics = true,
9
#if NET
10
        SuppressEventCounters = true,
11
#endif
12

13
#if NET6_0_OR_GREATER
14
        SuppressMeters = true
15
#endif
16
    };
17

18
    internal static readonly SuppressDefaultMetricOptions SuppressNone = new()
19
    {
20
        SuppressProcessMetrics = false,
21
        SuppressDebugMetrics = false,
22
#if NET
23
        SuppressEventCounters = false,
24
#endif
25

26
#if NET6_0_OR_GREATER
27
        SuppressMeters = false
28
#endif
29
    };
30

31
    /// <summary>
32
    /// Suppress the current-process-inspecting metrics (uptime, resource use, ...).
33
    /// </summary>
34
    public 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>
39
    public bool SuppressDebugMetrics { get; set; }
40

41
#if NET
42
    /// <summary>
43
    /// Suppress the default .NET Event Counter integration.
44
    /// </summary>
45
    public bool SuppressEventCounters { get; set; }
46
#endif
47

48
#if NET6_0_OR_GREATER
49
    /// <summary>
50
    /// Suppress the .NET Meter API integration.
51
    /// </summary>
52
    public bool SuppressMeters { get; set; }
53
#endif
54

55
    internal sealed class ConfigurationCallbacks
56
    {
57
#if NET
58
        public Action<EventCounterAdapterOptions> ConfigureEventCounterAdapter = delegate { };
59
#endif
60

61
#if NET6_0_OR_GREATER
62
        public Action<MeterAdapterOptions> ConfigureMeterAdapter = delegate { };
63
#endif
64
    }
65

66
    /// <summary>
67
    /// Configures the default metrics registry based on the requested defaults behavior.
68
    /// </summary>
69
    internal void ApplyToDefaultRegistry(ConfigurationCallbacks configurationCallbacks)
70
    {
71
        if (!SuppressProcessMetrics)
72
            DotNetStats.RegisterDefault();
73

74
        if (!SuppressDebugMetrics)
75
            Metrics.DefaultRegistry.StartCollectingRegistryMetrics();
76

77
#if NET
78
        if (!SuppressEventCounters)
79
        {
80
            var options = new EventCounterAdapterOptions();
81
            configurationCallbacks.ConfigureEventCounterAdapter(options);
82
            EventCounterAdapter.StartListening(options);
83
        }
84
#endif
85

86
#if NET6_0_OR_GREATER
87
        if (!SuppressMeters)
88
        {
89
            var options = new MeterAdapterOptions();
90
            configurationCallbacks.ConfigureMeterAdapter(options);
91
            MeterAdapter.StartListening(options);
92
        }
93
#endif
94
    }
95
}
96

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.