Example #1
0
 /// <inheritdoc/>
 void IMetricReadingWriter.Write(IMetricReadingBatch batch, DateTime timestamp)
 {
     foreach (IMetricReadingWriter metric in GetMetrics())
     {
         metric.Write(batch, timestamp);
     }
 }
Example #2
0
 /// <summary>
 /// Writes all readings for all metrics in specified enumerable of <see cref="MetricSource"/>.
 /// </summary>
 public static void WriteReadings(this IEnumerable <MetricSource> sources, IMetricReadingBatch batch, DateTime timestamp)
 {
     foreach (var source in sources)
     {
         source.Write(batch, timestamp);
     }
 }
Example #3
0
        /// <inheritdoc/>
        public void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var metrics = _metrics;

            for (var i = 0; i < metrics.Length; i++)
            {
                metrics[i].Write(batch, timestamp);
            }
        }
Example #4
0
        /// <inheritdoc/>
        protected override void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var countSnapshot = Interlocked.Exchange(ref _count, 0);

            if (countSnapshot == 0)
            {
                return;
            }

            batch.Add(
                CreateReading(countSnapshot, timestamp)
                );
        }
Example #5
0
        /// <inheritdoc/>
        protected override void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var val = _getCountFunc();

            if (!val.HasValue || val.Value == 0)
            {
                return;
            }

            batch.Add(
                CreateReading(val.Value, timestamp)
                );
        }
Example #6
0
        /// <inheritdoc/>
        protected override void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var val = _getValueFunc();

            if (!val.HasValue || double.IsNaN(val.Value))
            {
                return;
            }

            batch.Add(
                CreateReading(val.Value, timestamp)
                );
        }
Example #7
0
        /// <inheritdoc/>
        protected override void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var value = Interlocked.Exchange(ref _value, double.NaN);

            if (double.IsNaN(value))
            {
                return;
            }

            batch.Add(
                CreateReading(value, timestamp)
                );
        }
Example #8
0
        /// <inheritdoc/>
        protected override void Write(IMetricReadingBatch batch, DateTime timestamp)
        {
            var pending = Interlocked.Exchange(ref _pendingMetrics, new ConcurrentBag <PendingMetric>());

            if (pending == null || pending.Count == 0)
            {
                return;
            }

            foreach (var p in pending)
            {
                batch.Add(
                    CreateReading(p.Value, p.Time)
                    );
            }
        }
Example #9
0
 /// <summary>
 /// Writes the readings for a metric into the specified <see cref="IMetricReadingBatch"/>.
 /// </summary>
 /// <param name="batch">
 /// <see cref="IMetricReadingBatch"/> to write metrics into.
 /// </param>
 /// <param name="timestamp">
 /// Timestamp applied to all readings.
 /// </param>
 protected abstract void Write(IMetricReadingBatch batch, DateTime timestamp);
Example #10
0
 /// <inheritdoc/>
 void IMetricReadingWriter.Write(IMetricReadingBatch batch, DateTime timestamp) => Write(batch, timestamp);