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);
        }
Exemplo n.º 2
0
        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)
                );
        }