public void can_add_apdex_values()
        {
            var clock = new TestClock();
            var apdex = new DefaultApdexMetric(_defaultReservoir, clock, true);

            apdex.Track(10000);
            var values = new Dictionary <string, object>();

            apdex.Value.AddApdexValues(values);

            values.Keys.Should().Contain("samples");
            values.Keys.Should().Contain("score");
            values.Keys.Should().Contain("satisfied");
            values.Keys.Should().Contain("tolerating");
            values.Keys.Should().Contain("frustrating");
        }
Exemple #2
0
        public IApdexMetric RunSamplesForApdexCalculation(
            double apdexTSeconds,
            int satisifedRequests,
            int toleratingRequests,
            int frustratingRequest,
            TestSamplePreference testSamplePreference)
        {
            var maxSatifiedDurationMilliseconds   = (int)(apdexTSeconds * 1000);
            var minToleratedDurationMilliseconds  = maxSatifiedDurationMilliseconds + 1;
            var maxToleratedDurationMilliseconds  = 4 * (int)(apdexTSeconds * 1000);
            var minFrustratedDurationMilliseconds = maxToleratedDurationMilliseconds + 1;
            var clock  = new TestClock();
            var random = new Random();

            var satisfiedRequestsDurations  = Enumerable.Range(1, satisifedRequests).Select(x => random.Next(1, maxSatifiedDurationMilliseconds));
            var toleratingRequestsDurations =
                Enumerable.Range(1, toleratingRequests).Select(x => random.Next(minToleratedDurationMilliseconds, maxToleratedDurationMilliseconds));
            var frustratingRequestsDurations =
                Enumerable.Range(1, frustratingRequest)
                .Select(x => random.Next(minFrustratedDurationMilliseconds, minFrustratedDurationMilliseconds * 2));

            var reservoir = new Lazy <IReservoir>(() => new DefaultForwardDecayingReservoir());

            var apdexMetric = new DefaultApdexMetric(reservoir, apdexTSeconds, clock, false);

            if (testSamplePreference == TestSamplePreference.Satisified)
            {
                RunSamples(satisfiedRequestsDurations, apdexMetric, clock);
                RunSamples(toleratingRequestsDurations, apdexMetric, clock);
                RunSamples(frustratingRequestsDurations, apdexMetric, clock);
            }
            else if (testSamplePreference == TestSamplePreference.Frustrating)
            {
                RunSamples(frustratingRequestsDurations, apdexMetric, clock);
                RunSamples(toleratingRequestsDurations, apdexMetric, clock);
                RunSamples(satisfiedRequestsDurations, apdexMetric, clock);
            }
            else
            {
                RunSamples(toleratingRequestsDurations, apdexMetric, clock);
                RunSamples(frustratingRequestsDurations, apdexMetric, clock);
                RunSamples(satisfiedRequestsDurations, apdexMetric, clock);
            }

            return(apdexMetric);
        }
        public void can_report_apdex()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(gauge.Value),
                MetricTags.Empty,
                false);
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("test__test_apdex samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n");
        }
        public void Can_report_apdex_with_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "test__test_apdex,host=server1,env=staging,anothertag=thevalue,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i 1483232461000000000\n";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(apdex.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_apdex_with_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "env.staging.apdex.test.test_apdex.host.server1.anothertag.thevalue.Samples 0 1483232461\nenv.staging.apdex.test.test_apdex.host.server1.anothertag.thevalue.Score 0.00 1483232461\nenv.staging.apdex.test.test_apdex.host.server1.anothertag.thevalue.Satisfied 0 1483232461\nenv.staging.apdex.test.test_apdex.host.server1.anothertag.thevalue.Tolerating 0 1483232461\nenv.staging.apdex.test.test_apdex.host.server1.anothertag.thevalue.Frustrating 0 1483232461\n";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(apdex.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public async Task Can_report_apdex_with_tags()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_apdex.apdex.samples\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.score\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.satisfied\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.tolerating\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.frustrating\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:result\"]}]}";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(apdex.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
Exemple #7
0
        public async Task Can_report_apdex()
        {
            // Arrange
            var expected =
                "apdex.test.test_apdex.Samples 0 1483232461\napdex.test.test_apdex.Score 0.00 1483232461\napdex.test.test_apdex.Satisfied 0 1483232461\napdex.test.test_apdex.Tolerating 0 1483232461\napdex.test.test_apdex.Frustrating 0 1483232461\n";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(apdex.Value),
                MetricTags.Empty);

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_apdex_with_tags()
        {
            // Arrange
            var expected =
                "test__test_apdex,key1=value1,key2=value2,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i 1483232461000000000\n";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(apdex.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public async Task Can_report_apdex_with_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_apdex.apdex.samples\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"anothertag:thevalue\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.score\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"anothertag:thevalue\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.satisfied\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"anothertag:thevalue\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.tolerating\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"anothertag:thevalue\",\"unit:result\"]},{\"metric\":\"test.test_apdex.apdex.frustrating\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"anothertag:thevalue\",\"unit:result\"]}]}";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(apdex.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
        public void Can_report_apdex_with_tags()
        {
            // Arrange
            var expected =
                "apdex.test.test_apdex.key1.value1.key2.value2.Samples 0 1483232461\napdex.test.test_apdex.key1.value1.key2.value2.Score 0.00 1483232461\napdex.test.test_apdex.key1.value1.key2.value2.Satisfied 0 1483232461\napdex.test.test_apdex.key1.value1.key2.value2.Tolerating 0 1483232461\napdex.test.test_apdex.key1.value1.key2.value2.Frustrating 0 1483232461\n";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(apdex.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void can_report_apdex()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(gauge.Value),
                MetricTags.Empty,
                false);
            var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys, Origin);
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("apdex.test.test_apdex.Samples 0 0\napdex.test.test_apdex.Score 0.00 0\napdex.test.test_apdex.Satisfied 0 0\napdex.test.test_apdex.Tolerating 0 0\napdex.test.test_apdex.Frustrating 0 0\n");
        }
        public void can_report_apdex()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(gauge.Value),
                MetricTags.Empty,
                false);
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", apdexValueSource);

            items.Item2.PayloadFormatted().
            Should().
            Be("test__test_apdex mtype=apdex unit=result samples=0i score=0 satisfied=0i tolerating=0i frustrating=0i" + Environment.NewLine);
        }
Exemple #13
0
        public void can_report_apdex()
        {
            var expected  = StringReporterSamples.Apdex.ExtractStringReporterSampleFromResourceFile();
            var sr        = new StringReporter();
            var clock     = new TestClock();
            var reservoir = new Lazy <IReservoir>(
                () => new DefaultForwardDecayingReservoir(
                    Constants.ReservoirSampling.DefaultSampleSize,
                    Constants.ReservoirSampling.DefaultExponentialDecayFactor,
                    clock,
                    new TestTaskScheduler(clock)));
            var metric = new DefaultApdexMetric(new ApdexProvider(reservoir, Constants.ReservoirSampling.DefaultApdexTSeconds), clock, true);

            metric.Track(1000);

            sr.ReportMetric("test", new ApdexValueSource("apdex_name", metric, MetricTags.None));

            AssertReportResult(sr.Result, expected);
        }
        public void can_report_apdex__when_multidimensional()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(gauge.Value),
                _tags,
                resetOnReporting: false);
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", apdexValueSource);

            items.Item2.PayloadFormatted().
            Should().
            Be("test__test_apdex host=server1 env=staging mtype=apdex unit=result samples=0i score=0 satisfied=0i tolerating=0i frustrating=0i" + Environment.NewLine);
        }
        public void can_report_apdex__when_multidimensional()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(gauge.Value),
                _tags,
                resetOnReporting: false);
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be("test__test_apdex,host=server1,env=staging samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n");
        }
Exemple #16
0
        public void can_report_apdex_with_tags()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(gauge.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }),
                false);
            var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter);
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted(false).
            Should().
            Be("test__test_apdex,key1=value1,key2=value2,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n");
        }
Exemple #17
0
        public void can_report_apdex_with_tags()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(gauge.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }),
                false);
            var payloadBuilder = new TestPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be("test__test_apdex key1=value1 key2=value2 mtype=apdex samples=0i score=0 satisfied=0i tolerating=0i frustrating=0i" + Environment.NewLine);
        }
Exemple #18
0
        public void can_report_apdex_with_tags_when_multidimensional()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(gauge.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")),
                resetOnReporting: false);
            var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter);
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted(false).
            Should().
            Be(
                "test__test_apdex,host=server1,env=staging,anothertag=thevalue,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n");
        }
        public void can_report_apdex__when_multidimensional()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(gauge.Value),
                _tags,
                resetOnReporting: false);
            var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys, Origin);

            var reporter = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be("env.staging.apdex.test.test_apdex.host.server1.Samples 0 0\nenv.staging.apdex.test.test_apdex.host.server1.Score 0.00 0\nenv.staging.apdex.test.test_apdex.host.server1.Satisfied 0 0\nenv.staging.apdex.test.test_apdex.host.server1.Tolerating 0 0\nenv.staging.apdex.test.test_apdex.host.server1.Frustrating 0 0\n");
        }
Exemple #20
0
        public void can_report_apdex_with_tags_when_multidimensional()
        {
            var metricsMock      = new Mock <IMetrics>();
            var clock            = new TestClock();
            var gauge            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(gauge.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")),
                resetOnReporting: false);
            var payloadBuilder = new TestPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", apdexValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "test__test_apdex host=server1 env=staging anothertag=thevalue mtype=apdex samples=0i score=0 satisfied=0i tolerating=0i frustrating=0i" + Environment.NewLine);
        }
Exemple #21
0
        public async Task Can_report_apdex__when_multidimensional()
        {
            // Arrange
            var expected =
                "test.test_apdex.apdex.samples:0|c|#host:server1,env:staging,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.score:0|g|#host:server1,env:staging,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.satisfied:0|c|#host:server1,env:staging,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.tolerating:0|c|#host:server1,env:staging,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.frustrating:0|c|#host:server1,env:staging,unit:result,timestamp:1483232461";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(apdex.Value),
                _tags);

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
Exemple #22
0
        public async Task Can_report_apdex_with_tags()
        {
            // Arrange
            var expected =
                "test.test_apdex.apdex.samples:0|c|#key1:value1,key2:value2,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.score:0|g|#key1:value1,key2:value2,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.satisfied:0|c|#key1:value1,key2:value2,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.tolerating:0|c|#key1:value1,key2:value2,unit:result,timestamp:1483232461\n" +
                "test.test_apdex.apdex.frustrating:0|c|#key1:value1,key2:value2,unit:result,timestamp:1483232461";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex",
                ConstantValue.Provider(apdex.Value),
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public async Task Can_report_apdex_with_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "test.test_apdex.apdex.samples:0|c\n" +
                "test.test_apdex.apdex.score:0|g\n" +
                "test.test_apdex.apdex.satisfied:0|c\n" +
                "test.test_apdex.apdex.tolerating:0|c\n" +
                "test.test_apdex.apdex.frustrating:0|c";
            var clock            = new TestClock();
            var apdex            = new DefaultApdexMetric(_defaultReservoir, clock, false);
            var apdexValueSource = new ApdexValueSource(
                "test apdex" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(apdex.Value),
                MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")));

            // Act
            var valueSource = CreateValueSource("test", apdexScores: apdexValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Apdex_score_should_be_between_zero_and_one()
        {
            const double apdexTSeconds    = 0.5;
            const int    fromMilliSeconds = 20;
            const int    toMilliSeconds   = 5000;
            var          random           = new Random();
            var          clock            = new TestClock();

            IApdexMetric apdexMetric = new DefaultApdexMetric(new DefaultForwardDecayingReservoir(), apdexTSeconds, clock, false);

            foreach (var unused in Enumerable.Range(0, 1000))
            {
                using (apdexMetric.NewContext())
                {
                    clock.Advance(TimeUnit.Milliseconds, random.Next(fromMilliSeconds, toMilliSeconds));
                }
            }

            var score = apdexMetric.GetValue().Score;

            score.Should().BeGreaterOrEqualTo(0);
            score.Should().BeLessOrEqualTo(1);
        }
Exemple #25
0
        public ApdexMetricTests()
        {
            var reservoir = new Lazy <IReservoir>(() => new DefaultForwardDecayingReservoir());

            _apdex = new DefaultApdexMetric(reservoir, Constants.ReservoirSampling.DefaultApdexTSeconds, _clock, false);
        }
 public ApdexMetricTests()
 {
     _apdex = new DefaultApdexMetric(new DefaultForwardDecayingReservoir(), AppMetricsReservoirSamplingConstants.DefaultApdexTSeconds, _clock, false);
 }