public static IHistogram Histogram(App.Metrics.IMetrics context, string name, Units unit, SamplingTypes samplingType, List <KeyValuePair <string, string> > tags = null) { var options = new App.Metrics.Histogram.HistogramOptions { MeasurementUnit = unit.GetUnit(), Name = name, Tags = tags.GetTags() }; switch (samplingType) { case SamplingTypes.FavorRecent: options.Reservoir = () => new App.Metrics.ReservoirSampling.ExponentialDecay.DefaultForwardDecayingReservoir(1024, 0.015, 0); break; case SamplingTypes.LongTerm: options.Reservoir = () => new App.Metrics.ReservoirSampling.Uniform.DefaultAlgorithmRReservoir(1024); break; case SamplingTypes.SlidingWindow: options.Reservoir = () => new App.Metrics.ReservoirSampling.SlidingWindow.DefaultSlidingWindowReservoir(1024); break; default: throw new ArgumentOutOfRangeException(nameof(samplingType), samplingType, null); } return(new Histogram(context.Provider.Histogram.Instance(options))); }
public static ICounter Counter(App.Metrics.IMetrics context, string name, string unitName, List <KeyValuePair <string, string> > tags = null) { var options = new App.Metrics.Counter.CounterOptions { MeasurementUnit = App.Metrics.Unit.Custom(unitName), Name = name, Tags = tags.GetTags() }; return(new Counter(context.Provider.Counter.Instance(options))); }
public static void Gauge(App.Metrics.IMetrics context, string name, Func <double> valueProvider, Units unit, List <KeyValuePair <string, string> > tags = null) { var options = new App.Metrics.Gauge.GaugeOptions { Name = name, Tags = tags.GetTags(), MeasurementUnit = unit.GetUnit() }; context.Measure.Gauge.SetValue(options, valueProvider); }
/// <summary> /// Initializes a new instance of the <see cref="Metrics"/> class. /// </summary> /// <param name="rootName">Name of the root.</param> public Metrics(string rootName) { _context = new App.Metrics.MetricsBuilder() .Configuration.Configure( options => { options.DefaultContextLabel = rootName; options.Enabled = true; options.ReportingEnabled = true; }) .Build(); }
public static IMeter Meter(App.Metrics.IMetrics context, string name, string unitName, TimeUnits rateUnit, List <KeyValuePair <string, string> > tags = null) { var options = new App.Metrics.Meter.MeterOptions { Name = name, RateUnit = (App.Metrics.TimeUnit)rateUnit, MeasurementUnit = App.Metrics.Unit.Custom(unitName), Tags = tags.GetTags() }; return(new Meter(context.Provider.Meter.Instance(options))); }
public static ITimer Timer(App.Metrics.IMetrics context, string name, Units unit, SamplingTypes samplingType, TimeUnits rateUnit, TimeUnits durationUnit, List <KeyValuePair <string, string> > tags = null) { var options = new App.Metrics.Timer.TimerOptions { MeasurementUnit = unit.GetUnit(), Name = name, DurationUnit = (App.Metrics.TimeUnit)durationUnit, RateUnit = (App.Metrics.TimeUnit)rateUnit, Tags = tags.GetTags() }; return(new Timer(context.Provider.Timer.Instance(options))); }
/// <summary> /// Initializes a new instance of the <see cref="MetricsContext"/> class. /// </summary> /// <param name="context">The context.</param> public MetricsContext(App.Metrics.IMetrics context) { _context = context; }
/// <summary>Initializes a new instance of the <see cref="Metrics"/> class.</summary> /// <param name="metrics">The metrics.</param> public Metrics(App.Metrics.IMetrics metrics) { _context = metrics; }