コード例 #1
0
        private static void AddStatsMetric(SetAggregator aggregator, string statName, string value)
        {
            var statsMetric = new StatsMetric
            {
                MetricType  = MetricType.Set,
                StatName    = statName,
                StringValue = value,
            };

            aggregator.OnNewValue(ref statsMetric);
        }
コード例 #2
0
        public void Pool()
        {
            var handler    = new BufferBuilderHandlerMock();
            var parameters = MetricAggregatorParametersFactory.Create(handler.Object, TimeSpan.FromMinutes(1), 1);
            var aggregator = new SetAggregator(parameters, null);

            // Check StatsMetricSet instance go back to the pool
            for (int i = 0; i < 10; ++i)
            {
                AddStatsMetric(aggregator, "s1", i.ToString());
                Assert.AreEqual($"s1:{i}|s|@0", handler.Value);
            }
        }
コード例 #3
0
 public StatsRouter(
     Serializers serializers,
     BufferBuilder bufferBuilder,
     Aggregators optionalAggregators)
 {
     _serializers   = serializers;
     _bufferBuilder = bufferBuilder;
     if (optionalAggregators != null)
     {
         _optionalCountAggregator = optionalAggregators.OptionalCount;
         _optionalGaugeAggregator = optionalAggregators.OptionalGauge;
         _optionalSetAggregator   = optionalAggregators.OptionalSet;
     }
 }
コード例 #4
0
        public void OnNewValue()
        {
            var handler    = new BufferBuilderHandlerMock();
            var aggregator = new SetAggregator(MetricAggregatorParametersFactory.Create(handler.Object), null);

            AddStatsMetric(aggregator, "s1", "1");
            AddStatsMetric(aggregator, "s1", "2");
            AddStatsMetric(aggregator, "s1", "2");
            AddStatsMetric(aggregator, "s1", "2");
            AddStatsMetric(aggregator, "s2", "3");
            aggregator.TryFlush(force: true);
            Assert.AreEqual("s1:1|s|@0,s1:2|s|@0,s2:3|s|@0", handler.Value);

            AddStatsMetric(aggregator, "s1", "4");
            aggregator.TryFlush(force: true);
            Assert.AreEqual("s1:4|s|@0", handler.Value);
        }