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); } }
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(); } }
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(); } }
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(); } }
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(); }
private void HandleMetricPaused(Metric metric) { this.AddSeriesPoint(metric.Series, 0.0d); }
private void HandleMetric(Metric metric) { this.AddSeriesPoint(metric.Series, metric.CounterValue); }