Exemplo n.º 1
0
        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)));
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 /// <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();
 }
Exemplo n.º 5
0
        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)));
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
 /// <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;
 }
Exemplo n.º 8
0
 /// <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;
 }