private void HandleMetrics(ChartingMessages.Metric metric) { if (!string.IsNullOrEmpty(metric.Series) && _seriesIndex.ContainsKey(metric.Series)) { Series series = _seriesIndex[metric.Series]; series.Points.AddXY(xPosCounter++, metric.CounterValue); while (series.Points.Count > MaxPoints) { series.Points.RemoveAt(0); } SetChartBoundaries(); } }
private void HandleMetricPaused(ChartingMessages.Metric metric) { if (string.IsNullOrEmpty(metric.Series) || _seriesIndex.ContainsKey(metric.Series) == false) { return; } Series series = _seriesIndex[metric.Series]; series.Points.AddXY(xPosCounter++, 0.0d); while (series.Points.Count > MaxPoints) { series.Points.RemoveAt(0); } SetChartBoundaries(); }
protected override void OnReceive(object message) { if (message is ChartingMessages.GatherMetrics) { var metric = new ChartingMessages.Metric(seriesName, counter.NextValue()); foreach (var subscription in subscriptions) { subscription.Tell(metric); } } else if (message is ChartingMessages.SubscribeCounter) { var subscribeMessage = message as ChartingMessages.SubscribeCounter; subscriptions.Add(subscribeMessage.Subscriber); } else if (message is ChartingMessages.UnsubscribeCounter) { var unsubscribeMessage = message as ChartingMessages.UnsubscribeCounter; subscriptions.Remove(unsubscribeMessage.Subscriber); } }