public void MergeScopedStats_TwoStatsSeparateEngines()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "name", "scope", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));
            var engine  = new MetricStatsCollection();
            MetricStatsDictionary <string, MetricDataWireModel> txStats1 = new MetricStatsDictionary <string, MetricDataWireModel>();

            txStats1.Merge(metric1.MetricName.Name, metric1.Data, MetricDataWireModel.BuildAggregateData);
            MetricStatsDictionary <string, MetricDataWireModel> txStats2 = new MetricStatsDictionary <string, MetricDataWireModel>();

            txStats2.Merge(metric1.MetricName.Name, metric1.Data, MetricDataWireModel.BuildAggregateData);
            engine.MergeScopedStats(metric1.MetricName.Scope, txStats1);
            engine.MergeScopedStats(metric1.MetricName.Scope, txStats2);

            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                Assert.AreEqual("name", current.MetricName.Name);
                Assert.AreEqual("scope", current.MetricName.Scope);
                Assert.AreEqual(2, current.Data.Value0);
                Assert.AreEqual(6, current.Data.Value1);
                Assert.AreEqual(4, current.Data.Value2);
            }
            Assert.AreEqual(1, count);
        }
        public void MergeUnscopeNotCreated_TwoDifferentSame()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(4)));
            var metric2 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/another", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));

            var engine = new MetricStatsCollection();

            engine.MergeUnscopedStats(metric1.MetricName.Name, metric1.Data);
            engine.MergeUnscopedStats(metric2.MetricName.Name, metric2.Data);
            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                if (current.MetricName.Name.Equals("DotNet/name"))
                {
                    Assert.AreEqual(1, current.Data.Value0);
                    Assert.AreEqual(5, current.Data.Value1);
                    Assert.AreEqual(4, current.Data.Value2);
                }
                else if (current.MetricName.Name.Equals("DotNet/another"))
                {
                    Assert.AreEqual(1, current.Data.Value0);
                    Assert.AreEqual(3, current.Data.Value1);
                    Assert.AreEqual(2, current.Data.Value2);
                }
                else
                {
                    Assert.Fail("Unexpected Metric: " + current.MetricName.Name);
                }
                Assert.AreEqual(null, current.MetricName.Scope);
            }
            Assert.AreEqual(2, count);
        }
        public void MergeScopedStats_VerifyRenaming()
        {
            IMetricNameService mNameService = Mock.Create <IMetricNameService>();

            Mock.Arrange(() => mNameService.RenameMetric(Arg.IsAny <string>())).Returns <string>(name => "IAmRenamed");
            var metric1     = MetricWireModel.BuildMetric(_metricNameService, "name", "myscope", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));
            var engine      = new MetricStatsCollection();
            var scopedStats = new MetricStatsDictionary <string, MetricDataWireModel>();

            scopedStats[metric1.MetricName.Name] = metric1.Data;
            engine.MergeScopedStats(metric1.MetricName.Scope, scopedStats);
            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(mNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                Assert.AreEqual("IAmRenamed", current.MetricName.Name);
                Assert.AreEqual("myscope", current.MetricName.Scope);
                Assert.AreEqual(1, current.Data.Value0);
                Assert.AreEqual(3, current.Data.Value1);
                Assert.AreEqual(2, current.Data.Value2);
            }
            Assert.AreEqual(1, count);
        }
        public void MergeStatsEngine_Mix()
        {
            var metric5 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(4)));
            var metric6 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/another", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(8), TimeSpan.FromSeconds(6)));

            var engine1 = new MetricStatsCollection();
            MetricStatsDictionary <string, MetricDataWireModel> scoped1 = new MetricStatsDictionary <string, MetricDataWireModel>();

            scoped1.Merge("DotNet/name1", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(1)), MetricDataWireModel.BuildAggregateData);
            scoped1.Merge("DotNet/name2", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)), MetricDataWireModel.BuildAggregateData);
            engine1.MergeUnscopedStats(metric5);
            engine1.MergeScopedStats("engine1scope", scoped1);

            var engine2 = new MetricStatsCollection();
            MetricStatsDictionary <string, MetricDataWireModel> scoped2 = new MetricStatsDictionary <string, MetricDataWireModel>();

            scoped2.Merge("DotNet/name3", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(1)), MetricDataWireModel.BuildAggregateData);
            scoped2.Merge("DotNet/name4", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(2)), MetricDataWireModel.BuildAggregateData);
            engine1.MergeUnscopedStats(metric6);
            engine1.MergeScopedStats("engine2scope", scoped1);

            var engine3 = new MetricStatsCollection();

            engine3.Merge(engine1);
            engine3.Merge(engine2);

            IEnumerable <MetricWireModel> stats = engine3.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
            }
            Assert.AreEqual(6, count);
        }
Esempio n. 5
0
        public void AddMetricsToEngine_OneUnscopedMetricNull()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", null,
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));

            Assert.That(metric1, Is.Not.Null);
            var data = metric1.Data;

            Assert.NotNull(data);
            Assert.AreEqual(1, data.Value0);
            Assert.AreEqual(3, data.Value1);
            Assert.AreEqual(2, data.Value2);

            var engine = new MetricStatsCollection();

            metric1.AddMetricsToEngine(engine);

            var stats = engine.ConvertToJsonForSending(_metricNameService);

            foreach (var current in stats)
            {
                Assert.AreEqual("DotNet/name", current.MetricName.Name);
                Assert.AreEqual(null, current.MetricName.Scope);
                var myData = current.Data;
                Assert.AreEqual(1, myData.Value0);
                Assert.AreEqual(3, myData.Value1);
                Assert.AreEqual(2, myData.Value2);
            }
        }
Esempio n. 6
0
        public IEnumerable <MetricWireModel> ConvertToJsonForSending(IMetricNameService nameService)
        {
            foreach (KeyValuePair <string, MetricDataWireModel> current in _unscopedStats)
            {
                var metric = MetricWireModel.BuildMetric(nameService, current.Key, null, current.Value);
                if (metric != null)
                {
                    yield return(metric);
                }
            }

            foreach (MetricWireModel model in _preCreatedUnscopedStats.Values)
            {
                //These already when through the rename service in the MetricWireModel
                //At some point this needs to be cleaned up. This is ugly.

                yield return(model);
            }

            foreach (KeyValuePair <string, MetricStatsDictionary <string, MetricDataWireModel> > currentScope in _scopedStats)
            {
                foreach (KeyValuePair <string, MetricDataWireModel> currentMetric in currentScope.Value)
                {
                    var metric = MetricWireModel.BuildMetric(nameService, currentMetric.Key, currentScope.Key, currentMetric.Value);
                    if (metric != null)
                    {
                        yield return(metric);
                    }
                }
            }
        }
        private void RecordMetric(MetricWireModel metric)
        {
            if (metric == null)
            {
                return;
            }

            _metricAggregator.Collect(metric);
        }
Esempio n. 8
0
        public void MetricWireModel_SerializesCorrectlyUnscoped()
        {
            const string expectedJson = @"[{""name"":""DotNet/name""},[1,3.0,1.0,3.0,3.0,9.0]]";

            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(1)));

            var serializedMetric = JsonConvert.SerializeObject(metric1);

            Assert.AreEqual(expectedJson, serializedMetric);
        }
Esempio n. 9
0
        public void Merge_Throws_IfGivenMetricsWithDifferentNames()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(1)));
            var metric2 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name1", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(7), TimeSpan.FromSeconds(5)));
            var metric3 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name2", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(13), TimeSpan.FromSeconds(11)));

            NrAssert.Throws <Exception>(() => MetricWireModel.Merge(new[] { metric1, metric2, metric3 }));
        }
Esempio n. 10
0
        public void AddMetricsToEngine_OneScopedMetric()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));

            Assert.That(metric1, Is.Not.Null);
            var data = metric1.Data;

            Assert.NotNull(data);
            Assert.AreEqual(1, data.Value0);
            Assert.AreEqual(3, data.Value1);
            Assert.AreEqual(2, data.Value2);

            var engine = new MetricStatsCollection();

            metric1.AddMetricsToEngine(engine);

            var actual        = engine.ConvertToJsonForSending(_metricNameService);
            var unscopedCount = 0;
            var scopedCount   = 0;
            var theScope      = string.Empty;
            var metricName    = string.Empty;
            MetricDataWireModel scopedData = null;

            foreach (var current in actual)
            {
                if (current.MetricName.Scope == null)
                {
                    unscopedCount++;
                }
                else
                {
                    scopedCount++;
                    theScope   = current.MetricName.Scope;
                    metricName = current.MetricName.Name;
                    scopedData = current.Data;
                }
            }

            Assert.AreEqual(1, scopedCount);
            Assert.AreEqual(0, unscopedCount);
            Assert.AreEqual("scope", theScope);
            Assert.AreEqual("DotNet/name", metricName);
            Assert.IsNotNull(scopedData);
            Assert.AreEqual(1, scopedData.Value0);
            Assert.AreEqual(3, scopedData.Value1);
            Assert.AreEqual(2, scopedData.Value2);
        }
Esempio n. 11
0
        public void Merge_MergesOneMetricCorrectly()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(1)));
            var mergedMetric = MetricWireModel.Merge(new[] { metric1 });

            NrAssert.Multiple(
                () => Assert.AreEqual("DotNet/name", mergedMetric.MetricName.Name),
                () => Assert.AreEqual(1, mergedMetric.Data.Value0),
                () => Assert.AreEqual(3, mergedMetric.Data.Value1),
                () => Assert.AreEqual(1, mergedMetric.Data.Value2),
                () => Assert.AreEqual(3, mergedMetric.Data.Value3),
                () => Assert.AreEqual(3, mergedMetric.Data.Value4),
                () => Assert.AreEqual(9, mergedMetric.Data.Value5)
                );
        }
Esempio n. 12
0
        public void Setup()
        {
            Mock.Arrange(() => _metricNameService.RenameMetric(Arg.IsAny <string>())).Returns <string>(name => name);
            _connectionHandler = new ConnectionHandler(new JsonSerializer(), Mock.Create <ICollectorWireFactory>(), Mock.Create <IProcessStatic>(), Mock.Create <IDnsStatic>(),
                                                       Mock.Create <ILabelsService>(), Mock.Create <Environment>(), Mock.Create <ISystemInfo>(), Mock.Create <IAgentHealthReporter>(), Mock.Create <IEnvironment>());

            var validScopedMetric = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "WebTransaction/DotNet/name",
                                                                MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3.0), TimeSpan.FromSeconds(2.0)));

            var validUnscopedMetric = MetricWireModel.BuildMetric(_metricNameService, "Custom/name", string.Empty,
                                                                  MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(4.0), TimeSpan.FromSeconds(3.0)));

            var validMetricWireModels = new List <MetricWireModel> {
                validScopedMetric, validUnscopedMetric
            };

            _wellformedMetricData = new MetricWireModelCollection("440491846668652", 1450462672.0, 1450462710.0, validMetricWireModels);
        }
        public void MergeScopedStats_OneStat_StringData()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "myScope", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));
            var engine  = new MetricStatsCollection();

            engine.MergeScopedStats(metric1.MetricName.Scope, metric1.MetricName.Name, metric1.Data);
            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                Assert.AreEqual("DotNet/name", current.MetricName.Name);
                Assert.AreEqual("myScope", current.MetricName.Scope);
                Assert.AreEqual(1, current.Data.Value0);
                Assert.AreEqual(3, current.Data.Value1);
                Assert.AreEqual(2, current.Data.Value2);
            }
            Assert.AreEqual(1, count);
        }
        public void MergeScopedStats_TwoDifferentSame()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(1)));
            var metric2 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/another", "scope", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));

            var engine = new MetricStatsCollection();
            MetricStatsDictionary <string, MetricDataWireModel> txStats1 = new MetricStatsDictionary <string, MetricDataWireModel>();

            txStats1.Merge(metric1.MetricName.Name, metric1.Data, MetricDataWireModel.BuildAggregateData);
            MetricStatsDictionary <string, MetricDataWireModel> txStats2 = new MetricStatsDictionary <string, MetricDataWireModel>();

            txStats2.Merge(metric2.MetricName.Name, metric2.Data, MetricDataWireModel.BuildAggregateData);
            engine.MergeScopedStats(metric2.MetricName.Scope, txStats1);
            engine.MergeScopedStats(metric2.MetricName.Scope, txStats2);

            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                if (current.MetricName.Name.Equals("DotNet/name"))
                {
                    Assert.AreEqual(1, current.Data.Value0);
                    Assert.AreEqual(2, current.Data.Value1);
                    Assert.AreEqual(1, current.Data.Value2);
                }
                else if (current.MetricName.Name.Equals("DotNet/another"))
                {
                    Assert.AreEqual(1, current.Data.Value0);
                    Assert.AreEqual(3, current.Data.Value1);
                    Assert.AreEqual(2, current.Data.Value2);
                }
                else
                {
                    Assert.Fail("Unexpected metric: " + current.MetricName.Name);
                }
                Assert.AreEqual("scope", current.MetricName.Scope);
            }
            Assert.AreEqual(2, count);
        }
        public void MergeUnscopedNotCreated_TwoStatsSame()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "name", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(2)));
            var engine  = new MetricStatsCollection();

            engine.MergeUnscopedStats(metric1.MetricName.Name, metric1.Data);
            engine.MergeUnscopedStats(metric1.MetricName.Name, metric1.Data);
            IEnumerable <MetricWireModel> stats = engine.ConvertToJsonForSending(_metricNameService);
            var count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                Assert.AreEqual("name", current.MetricName.Name);
                Assert.AreEqual(null, current.MetricName.Scope);
                Assert.AreEqual(2, current.Data.Value0);
                Assert.AreEqual(6, current.Data.Value1);
                Assert.AreEqual(4, current.Data.Value2);
            }
            Assert.AreEqual(1, count);

            var metric2 = MetricWireModel.BuildMetric(_metricNameService, "name", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(4)));

            engine.MergeUnscopedStats(metric2.MetricName.Name, metric2.Data);
            engine.MergeUnscopedStats(metric2.MetricName.Name, metric2.Data);
            stats = engine.ConvertToJsonForSending(_metricNameService);

            count = 0;

            foreach (MetricWireModel current in stats)
            {
                count++;
                Assert.AreEqual("name", current.MetricName.Name);
                Assert.AreEqual(null, current.MetricName.Scope);
                Assert.AreEqual(4, current.Data.Value0);
                Assert.AreEqual(16, current.Data.Value1);
                Assert.AreEqual(12, current.Data.Value2);
            }
            Assert.AreEqual(1, count);
        }
        private void TrySend(MetricWireModel metric)
        {
            if (metric == null)
            {
                return;
            }

            if (_publishMetricDelegate == null)
            {
                Log.WarnFormat("No PublishMetricDelegate to flush metric '{0}' through.", metric.MetricName.Name);
                return;
            }

            try
            {
                _publishMetricDelegate(metric);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
        }
Esempio n. 17
0
        public void Merge_MergesThreeMetricsCorrectly_WhenMergedProgressively()
        {
            var metric1 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(1)));
            var metric2 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(7), TimeSpan.FromSeconds(5)));
            var metric3 = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "scope",
                                                      MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(13), TimeSpan.FromSeconds(11)));

            var mergedMetric = MetricWireModel.Merge(new[] { metric1, metric2 });

            mergedMetric = MetricWireModel.Merge(new[] { mergedMetric, metric3 });

            NrAssert.Multiple(
                () => Assert.AreEqual("DotNet/name", mergedMetric.MetricName.Name),
                () => Assert.AreEqual(3, mergedMetric.Data.Value0),
                () => Assert.AreEqual(23, mergedMetric.Data.Value1),
                () => Assert.AreEqual(17, mergedMetric.Data.Value2),
                () => Assert.AreEqual(3, mergedMetric.Data.Value3),
                () => Assert.AreEqual(13, mergedMetric.Data.Value4),
                () => Assert.AreEqual(227, mergedMetric.Data.Value5)
                );
        }
Esempio n. 18
0
        public void Harvest_AggregatesMetricsBeforeSending()
        {
            var sentMetrics = Enumerable.Empty <MetricWireModel>();

            Mock.Arrange(() => _dataTransportService.Send(Arg.IsAny <IEnumerable <MetricWireModel> >()))
            .DoInstead <IEnumerable <MetricWireModel> >(metrics => sentMetrics = metrics);

            _metricAggregator.Collect(MetricWireModel.BuildMetric(_metricNameService, "DotNet/metric1", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(1))));
            _metricAggregator.Collect(MetricWireModel.BuildMetric(_metricNameService, "DotNet/metric1", null, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(7), TimeSpan.FromSeconds(5))));
            _metricAggregator.Collect(MetricWireModel.BuildMetric(_metricNameService, "DotNet/metric2", "scope2", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(7), TimeSpan.FromSeconds(5))));

            _harvestAction();

            Assert.NotNull(sentMetrics);
            Assert.AreEqual(3, sentMetrics.Count());
            MetricWireModel sentMetric1 = null;
            MetricWireModel sentMetric2 = null;
            MetricWireModel sentMetric3 = null;

            foreach (MetricWireModel metric in sentMetrics)
            {
                if ("DotNet/metric1".Equals(metric.MetricName.Name))
                {
                    sentMetric1 = metric;
                }
                else if ("DotNet/metric2".Equals(metric.MetricName.Name))
                {
                    sentMetric2 = metric;
                }
                else if ("Supportability/MetricHarvest/transmit".Equals(metric.MetricName.Name))
                {
                    sentMetric3 = metric;
                }
                else
                {
                    Assert.Fail("Unexpected metric name " + metric.MetricName.Name);
                }
            }

            NrAssert.Multiple(
                () => Assert.AreEqual("DotNet/metric1", sentMetric1.MetricName.Name),
                () => Assert.AreEqual(null, sentMetric1.MetricName.Scope),
                () => Assert.AreEqual(2, sentMetric1.Data.Value0),
                () => Assert.AreEqual(10, sentMetric1.Data.Value1),
                () => Assert.AreEqual(6, sentMetric1.Data.Value2),
                () => Assert.AreEqual(3, sentMetric1.Data.Value3),
                () => Assert.AreEqual(7, sentMetric1.Data.Value4),
                () => Assert.AreEqual(58, sentMetric1.Data.Value5),

                () => Assert.AreEqual("DotNet/metric2", sentMetric2.MetricName.Name),
                () => Assert.AreEqual("scope2", sentMetric2.MetricName.Scope),
                () => Assert.AreEqual(1, sentMetric2.Data.Value0),
                () => Assert.AreEqual(7, sentMetric2.Data.Value1),
                () => Assert.AreEqual(5, sentMetric2.Data.Value2),
                () => Assert.AreEqual(7, sentMetric2.Data.Value3),
                () => Assert.AreEqual(7, sentMetric2.Data.Value4),
                () => Assert.AreEqual(49, sentMetric2.Data.Value5),

                () => Assert.AreEqual(MetricNames.SupportabilityMetricHarvestTransmit, sentMetric3.MetricName.Name),
                () => Assert.AreEqual(null, sentMetric3.MetricName.Scope),
                () => Assert.AreEqual(1, sentMetric3.Data.Value0),
                () => Assert.AreEqual(0, sentMetric3.Data.Value1),
                () => Assert.AreEqual(0, sentMetric3.Data.Value2),
                () => Assert.AreEqual(0, sentMetric3.Data.Value3),
                () => Assert.AreEqual(0, sentMetric3.Data.Value4),
                () => Assert.AreEqual(0, sentMetric3.Data.Value5)
                );
        }
Esempio n. 19
0
 // These should have already gone through the prenaming process
 public void MergeUnscopedStats(MetricWireModel metric)
 {
     _preCreatedUnscopedStats.Merge(metric.MetricName.Name, metric, _mergeUnscopedFunction);
 }
Esempio n. 20
0
 public void Merge_ThrowsIfAllNullsGiven()
 {
     NrAssert.Throws <Exception>(() => MetricWireModel.Merge(new MetricWireModel[] { null, null }));
 }
Esempio n. 21
0
 public void Merge_ThrowsIfEmptyListGiven()
 {
     NrAssert.Throws <Exception>(() => MetricWireModel.Merge(new MetricWireModel[] { }));
 }