예제 #1
0
 /// <summary>
 /// Adds a <see cref="MetricRegistryListener"/> to a collection of listeners that will be notified on
 /// metric creation.Listeners will be notified in the order in which they are added.
 /// <para />
 /// The listener will be notified of all existing metrics when it first registers.
 /// </summary>
 /// <param name="listener"></param>
 public void AddListener(MetricRegistryListener listener)
 {
     handler.RegisterListener(listener);
     // TODO: Figure out how to notify listener of existing metrics efficiently
     foreach (KeyValuePair <MetricName, IMetric> entry in this._metrics)
     {
         MetricName name       = entry.Key;
         IMetric    metric     = entry.Value;
         Type       metricType = metric.GetType();
         if (metricType.IsSubclassOf(typeof(Gauge)))
         {
             handler.onGaugeAdded(name, (Gauge)metric);
         }
         else if (metric is Counter)
         {
             handler.onCounterAdded(name, (Counter)metric);
         }
         else if (metric is Histogram)
         {
             handler.onHistogramAdded(name, (Histogram)metric);
         }
         else if (metric is Meter)
         {
             handler.onMeterAdded(name, (Meter)metric);
         }
         else if (metric is Timer)
         {
             handler.onTimerAdded(name, (Timer)metric);
         }
         else
         {
             continue;
         }
     }
 }
예제 #2
0
 internal void RemoveListener(MetricRegistryListener listener)
 {
     onGaugeAdded       -= listener.onGaugeAdded;
     onGaugeRemoved     -= listener.onGaugeRemoved;
     onCounterAdded     -= listener.onCounterAdded;
     onCounterRemoved   -= listener.onCounterRemoved;
     onHistogramAdded   -= listener.onHistogramAdded;
     onHistogramRemoved -= listener.onHistogramRemoved;
     onMeterAdded       -= listener.onMeterAdded;
     onMeterRemoved     -= listener.onMeterRemoved;
     onTimerAdded       -= listener.onTimerAdded;
     onTimerRemoved     -= listener.onTimerRemoved;
 }
예제 #3
0
 /// <summary>
 /// Removes a <see cref="MetricRegistryListener"/> from this registry's collection of listeners.
 /// </summary>
 /// <param name="listener">the listener that will be removed</param>
 public void RemoveListener(MetricRegistryListener listener)
 {
     handler.RemoveListener(listener);
 }