Beispiel #1
0
        private StatsBufferize CreateStatsBufferize(
            Telemetry telemetry,
            ITransport transport,
            int bufferCapacity,
            AdvancedStatsConfig config)
        {
            var bufferHandler = new BufferBuilderHandler(telemetry, transport);
            var bufferBuilder = new BufferBuilder(bufferHandler, bufferCapacity, "\n");

            var statsBufferize = _factory.CreateStatsBufferize(
                bufferBuilder,
                config.MaxMetricsInAsyncQueue,
                config.MaxBlockDuration,
                config.DurationBeforeSendingNotFullBuffer);

            return statsBufferize;
        }
 private void SendMetric(string metricName, int value)
 {
     if (_optionalTransport != null && _optionalMetricSerializer != null)
     {
         var serializedMetric = new SerializedMetric();
         var metricStats      = new StatsMetric
         {
             MetricType   = MetricType.Count,
             StatName     = metricName,
             NumericValue = value,
             SampleRate   = 1.0,
             Tags         = _optionalTags,
         };
         _optionalMetricSerializer.SerializeTo(ref metricStats, serializedMetric);
         var bytes = BufferBuilder.GetBytes(serializedMetric.ToString());
         _optionalTransport.Send(bytes, bytes.Length);
     }
 }
Beispiel #3
0
        private StatsBufferize CreateStatsBufferize(
            Telemetry telemetry,
            ITransport transport,
            int bufferCapacity,
            AdvancedStatsConfig config,
            Serializers serializers,
            ClientSideAggregationConfig optionalClientSideAggregationConfig)
        {
            var bufferHandler = new BufferBuilderHandler(telemetry, transport);
            var bufferBuilder = new BufferBuilder(bufferHandler, bufferCapacity, "\n");

            Aggregators optionalAggregators = null;

            if (optionalClientSideAggregationConfig != null)
            {
                var parameters = new MetricAggregatorParameters(
                    serializers.MetricSerializer,
                    bufferBuilder,
                    optionalClientSideAggregationConfig.MaxUniqueStatsBeforeFlush,
                    optionalClientSideAggregationConfig.FlushInterval);

                optionalAggregators = new Aggregators
                {
                    OptionalCount = new CountAggregator(parameters),
                    OptionalGauge = new GaugeAggregator(parameters),
                    OptionalSet   = new SetAggregator(parameters, telemetry),
                };
            }

            var statsRouter = _factory.CreateStatsRouter(serializers, bufferBuilder, optionalAggregators);

            var statsBufferize = _factory.CreateStatsBufferize(
                statsRouter,
                config.MaxMetricsInAsyncQueue,
                config.MaxBlockDuration,
                config.DurationBeforeSendingNotFullBuffer);

            return(statsBufferize);
        }
 public WorkerHandler(BufferBuilder bufferBuilder, TimeSpan maxIdleWaitBeforeSending)
 {
     _bufferBuilder            = bufferBuilder;
     _maxIdleWaitBeforeSending = maxIdleWaitBeforeSending;
 }