protected override void OnReceive(object message)
        {
            if (message is GatherMetrics)
            {
                // publish latest counter value to all subsccribers

                var metric = new Metric(seriesName, counter.NextValue());

                foreach (var sub in subscriptions)
                    sub.Tell(metric);
            }
            else if (message is SubscribeCounter)
            {
                // add a subscription for this counter
                // (it's parent's job to filter by counter types)

                var sc = message as SubscribeCounter;
                subscriptions.Add(sc.Subscriber);
            }
            else if (message is UnsubscribeCounter)
            {
                // remove a subscription from this counter

                var uc = message as UnsubscribeCounter;
                subscriptions.Remove(uc.Subscriber);
            }
        }
        public PerformanceCounterActor(string seriesName, Func<PerformanceCounter> performanceCounterGenerator)
        {
            _seriesName = seriesName;
            _performanceCounterGenerator = performanceCounterGenerator;
            _subscriptions = new HashSet<IActorRef>();
            _cancelPublishing = new Cancelable(Context.System.Scheduler);

            Receive<GatherMetrics>(m =>
            {
                //publish latest counter value to all subscribers
                var metric = new Metric(_seriesName, _counter.NextValue());
                foreach (var sub in _subscriptions)
                    sub.Tell(metric);
            });
            Receive<SubscribeCounter>(sc =>
            {
                // add a subscription for this counter
                // (it's parent's job to filter by counter types)
                _subscriptions.Add(sc.Subscriber);
            });
            Receive<UnsubscribeCounter>(uc =>
            {
                // remove a subscription from this counter
                _subscriptions.Remove(uc.Subscriber);
            });
        }
 protected override void OnReceive(object message)
 {
     if (message is GatherMetrics)
     {
         Metric metric = new Metric(_seriesName, _counter.NextValue());
         foreach (IActorRef sub in _subscriptions)
             sub.Tell(metric);
     }
     else if (message is SubscribeCounter)
     {
         SubscribeCounter sc = message as SubscribeCounter;
         _subscriptions.Add(sc.Subscriber);
     }
     else if (message is UnsubscribeCounter)
     {
         UnsubscribeCounter uc = message as UnsubscribeCounter;
         _subscriptions.Remove(uc.Subscriber);
     }
 }
 protected override void OnReceive(object message)
 {
     if(message is GatherMetrics)
     {
         var metric = new Metric(seriesName, counter.NextValue());
         foreach( var sub in subscriptions)
         {
             sub.Tell(metric);
         }
     } else if(message is SubscribeCounter)
     {
         var subscribeMessage = message as SubscribeCounter;
         subscriptions.Add(subscribeMessage.Subscriber);
     } else if(message is UnsubscribeCounter)
     {
         var unsubscribeMessage = message as UnsubscribeCounter;
         subscriptions.Remove(unsubscribeMessage.Subscriber);
     }
 }
        protected override void OnReceive(object message)
        {
            if (message is GatherMetrics)
            {
                var metric = new Metric(_seriesName, _counter.NextValue());

                foreach (var sub in _subscriptions)
                {
                    sub.Tell(metric);
                }
            }
            else if (message is SubscribeCounter)
            {
                var sc = (SubscribeCounter)message;
                _subscriptions.Add(sc.Subscriber);
            }
            else if (message is UnsubscribeCounter)
            {
                var uc = (UnsubscribeCounter)message;
                _subscriptions.Remove(uc.Subscriber);
            }
        }
 protected override void OnReceive(object message)
 {
     if (message is GatherMetrics)
     {
         // publish latest counter to all subscribers
         var metric = new Metric(_seriesName, _counter.NextValue());
         foreach (var sub in _subscriptions)
         {
             sub.Tell(metric);
         }
     }
     else if (message is SubscriberCounter)
     {
         // add a subscription (parent's job to filter counter type)
         var sc = message as SubscriberCounter;
         _subscriptions.Add(sc.Subscriber);
     }
     else if (message is UnsubscribeCounter)
     {
         // remove a subscription
         var uc = message as UnsubscribeCounter;
         _subscriptions.Remove(uc.Subscriber);
     }
 }
Пример #7
0
 private void HandleMetricsPaused(Metric metric)
 {
     if (IsValidSeries(metric.Series))
     {
         var series = _seriesIndex[metric.Series];
         series.Points.AddXY(xPosCounter++, 0.0d);
         while (series.Points.Count > MaxPoints)
             series.Points.RemoveAt(0);
         SetChartBoundaries();
     }
 }
Пример #8
0
 private void HandleMetricsPaused(Metric metric)
 {
     if (!string.IsNullOrEmpty(metric.Series) && _seriesIndex.ContainsKey(metric.Series))
     {
         var series = _seriesIndex[metric.Series];
         series.Points.AddXY(xPosCounter++, 0.0d); //set the Y value to zero when we're paused
         while (series.Points.Count > MaxPoints) series.Points.RemoveAt(0);
         SetChartBoundaries();
     }
 }
Пример #9
0
 private void HandleMetrics(Metric metric)
 {
     if (!string.IsNullOrEmpty(metric.Series) && _seriesIndex.ContainsKey(metric.Series))
     {
         var series = _seriesIndex[metric.Series];
         series.Points.AddXY(xPosCounter++, metric.CounterValue);
         while (series.Points.Count > MaxPoints) series.Points.RemoveAt(0);
         SetChartBoundaries();
     }
 }
Пример #10
0
        private void HandleMetricsPaused(Metric metric)
        {
            if (string.IsNullOrEmpty(metric.Series) || !_seriesIndex.ContainsKey(metric.Series))
            {
                return;
            }

            var series = _seriesIndex[metric.Series];
            series.Points.AddXY(_xPosCounter++, 0.0d);

            while (series.Points.Count > MaxPoints)
            {
                series.Points.RemoveAt(0);
            }

            SetChartBoundaries();
        }
Пример #11
0
 private void HandleMetricPaused(Metric metric)
 {
     this.AddSeriesPoint(metric.Series, 0.0d);
 }
Пример #12
0
 private void HandleMetric(Metric metric)
 {
     this.AddSeriesPoint(metric.Series, metric.CounterValue);
 }