prometheus-net
30 строк · 1.2 Кб
1namespace Prometheus;2
3/// <summary>
4/// Defines how exemplars are obtained and published for metrics.
5/// Different metrics can have their own exemplar behavior or simply inherit one from the metric factory.
6/// </summary>
7public sealed class ExemplarBehavior8{
9/// <summary>10/// Callback that provides the default exemplar if none is provided by the caller when providing a metric value.11/// Defaults to Exemplar.FromTraceContext().12/// </summary>13public ExemplarProvider? DefaultExemplarProvider { get; set; }14
15/// <summary>16/// A new exemplar will only be recorded for a timeseries if at least this much time has passed since the previous exemplar was recorded.17/// This can be used to limit the rate of publishing unique exemplars. By default we do not have any limit - a new exemplar always overwrites the old one.18/// </summary>19public TimeSpan NewExemplarMinInterval { get; set; } = TimeSpan.Zero;20
21internal static readonly ExemplarBehavior Default = new()22{23DefaultExemplarProvider = (_, _) => Exemplar.FromTraceContext()24};25
26public static ExemplarBehavior NoExemplars() => new()27{28DefaultExemplarProvider = (_, _) => Exemplar.None29};30}
31