Esempio n. 1
0
            private protected override async Task CollectAndSerializeImplAsync(IMetricsSerializer serializer, CancellationToken cancel)
            {
                // We output sum.
                // We output count.
                // We output each bucket in order of increasing upper bound.

                await serializer.WriteMetricAsync(_sumIdentifier, _sum.Value, cancel);

                await serializer.WriteMetricAsync(_countIdentifier, _bucketCounts.Sum(b => b.Value), cancel);

                var cumulativeCount = 0L;

                for (var i = 0; i < _bucketCounts.Length; i++)
                {
                    cumulativeCount += _bucketCounts[i].Value;

                    await serializer.WriteMetricAsync(_bucketIdentifiers[i], cumulativeCount, cancel);
                }
            }
Esempio n. 2
0
            private protected override async Task CollectAndSerializeImplAsync(IMetricsSerializer serializer, CancellationToken cancel)
            {
                // We output sum.
                // We output count.
                // We output quantiles.

                var now = DateTime.UtcNow;

                double count;
                double sum;
                var    values = new List <(double quantile, double value)>(_objectives.Count);

                lock (_bufLock)
                {
                    lock (_lock)
                    {
                        // Swap bufs even if hotBuf is empty to set new hotBufExpTime.
                        SwapBufs(now);
                        FlushColdBuf();

                        count = _count;
                        sum   = _sum;

                        for (var i = 0; i < _sortedObjectives.Length; i++)
                        {
                            var quantile = _sortedObjectives[i];
                            var value    = _headStream.Count == 0 ? double.NaN : _headStream.Query(quantile);

                            values.Add((quantile, value));
                        }
                    }
                }

                await serializer.WriteMetricAsync(_sumIdentifier, sum, cancel);

                await serializer.WriteMetricAsync(_countIdentifier, count, cancel);

                for (var i = 0; i < values.Count; i++)
                {
                    await serializer.WriteMetricAsync(_quantileIdentifiers[i], values[i].value, cancel);
                }
            }
Esempio n. 3
0
            internal override void CollectAndSerializeImpl(IMetricsSerializer serializer)
            {
                // We output sum.
                // We output count.
                // We output quantiles.

                var now = DateTime.UtcNow;

                double count;
                double sum;
                var    values = new List <(double quantile, double value)>(_objectives.Count);

                lock (_bufLock)
                {
                    lock (_lock)
                    {
                        // Swap bufs even if hotBuf is empty to set new hotBufExpTime.
                        SwapBufs(now);
                        FlushColdBuf();

                        count = _count;
                        sum   = _sum;

                        for (var i = 0; i < _sortedObjectives.Length; i++)
                        {
                            var quantile = _sortedObjectives[i];
                            var value    = _headStream.Count == 0 ? double.NaN : _headStream.Query(quantile);

                            values.Add((quantile, value));
                        }
                    }
                }

                serializer.WriteMetric(_sumIdentifier, sum);
                serializer.WriteMetric(_countIdentifier, count);

                for (var i = 0; i < values.Count; i++)
                {
                    serializer.WriteMetric(_quantileIdentifiers[i], values[i].value);
                }
            }
Esempio n. 4
0
 internal abstract void CollectAndSerialize(IMetricsSerializer serializer);
Esempio n. 5
0
 private protected override void CollectAndSerializeImpl(IMetricsSerializer serializer)
 {
     serializer.WriteMetric(_identifier, Value);
 }
Esempio n. 6
0
 private protected override Task CollectAndSerializeImplAsync(IMetricsSerializer serializer, CancellationToken cancel)
 {
     return(serializer.WriteMetricAsync(_identifier, Value, cancel));
 }
Esempio n. 7
0
 // Same as above, just only called if we really need to serialize this metric (if publish is true).
 private protected abstract Task CollectAndSerializeImplAsync(IMetricsSerializer serializer, CancellationToken cancel);
Esempio n. 8
0
 internal abstract Task CollectAndSerializeAsync(IMetricsSerializer serializer, CancellationToken cancel);
Esempio n. 9
0
 internal override void CollectAndSerializeImpl(IMetricsSerializer serializer)
 {
     serializer.WriteMetric(_identifier, Value);
 }
Esempio n. 10
0
 // Same as above, just only called if we really need to serialize this metric (if publish is true).
 private protected abstract void CollectAndSerializeImpl(IMetricsSerializer serializer);
Esempio n. 11
0
 public FileSink(IMetricsSerializer serializer, IFileNamingStrategy fileNamingStrategy)
 {
     _serializer         = serializer;
     _fileNamingStrategy = fileNamingStrategy;
 }
Esempio n. 12
0
 public TextWriterSink(TextWriter writer, IMetricsSerializer serializer)
 {
     _writer     = writer;
     _serializer = serializer;
 }