public void Transform(ThreadpoolThroughputEventsSample throughputStats) { var metricRequested = _metricBuilder.TryBuildThreadpoolThroughputStatsMetric(ThreadpoolThroughputStatsType.Requested, throughputStats.CountThreadRequestsQueued); var metricStarted = _metricBuilder.TryBuildThreadpoolThroughputStatsMetric(ThreadpoolThroughputStatsType.Started, throughputStats.CountThreadRequestsDequeued); var metricQueueLength = _metricBuilder.TryBuildThreadpoolThroughputStatsMetric(ThreadpoolThroughputStatsType.QueueLength, throughputStats.ThreadRequestQueueLength); RecordMetrics(metricRequested, metricStarted, metricQueueLength); }
public void TransformSample_ThreadpoolThroughputStats_CreatesCorrectMetricValues() { const int countThreadRequestsQueued = 5; const int countThreadRequestsDequeued = 7; const int countThreadRequestQueueLength = 19; var generatedMetrics = new Dictionary <string, MetricDataWireModel>(); Mock.Arrange(() => _metricAggregator .Collect(Arg.IsAny <MetricWireModel>())) .DoInstead <MetricWireModel>(m => generatedMetrics.Add(m.MetricName.Name, m.Data)); var sample = new ThreadpoolThroughputEventsSample(countThreadRequestsQueued, countThreadRequestsDequeued, countThreadRequestQueueLength); _threadStatsTransformer.Transform(sample); NrAssert.Multiple( () => Assert.AreEqual(3, generatedMetrics.Count), () => MetricTestHelpers.CompareMetric(generatedMetrics, MetricNames.GetThreadpoolThroughputStatsName(ThreadpoolThroughputStatsType.Requested), countThreadRequestsQueued), () => MetricTestHelpers.CompareMetric(generatedMetrics, MetricNames.GetThreadpoolThroughputStatsName(ThreadpoolThroughputStatsType.Started), countThreadRequestsDequeued), () => MetricTestHelpers.CompareMetric(generatedMetrics, MetricNames.GetThreadpoolThroughputStatsName(ThreadpoolThroughputStatsType.QueueLength), countThreadRequestQueueLength) ); }