Ejemplo n.º 1
0
 public MetricAggregator(IMetricSink metricSink)
 {
     _metricSink         = metricSink;
     _metricValuesByName =
         new ConcurrentDictionary <string, ConcurrentQueue <double> >(StringComparer.InvariantCulture);
     _timer = new Timer(FlushMetrics);
 }
Ejemplo n.º 2
0
        private async Task ReportMetricAsync(IMetricSink sink, string metricName, string metricDescription, ScrapeResult scrapedMetricResult)
        {
            Guard.NotNull(sink, nameof(sink));
            Guard.NotNullOrWhitespace(metricName, nameof(metricName));
            Guard.NotNull(scrapedMetricResult, nameof(scrapedMetricResult));
            Guard.NotNull(scrapedMetricResult.MetricValues, nameof(scrapedMetricResult.MetricValues));

            try
            {
                await sink.ReportMetricAsync(metricName, metricDescription, scrapedMetricResult);
            }
            catch (Exception ex)
            {
                Logger.LogCritical(ex, "Failed to write {MetricName} metric for sink {SinkType}", metricName, sink.Type);
            }
        }
Ejemplo n.º 3
0
 public TimingBlock(string name, IMetricSink metricSink)
 {
     _name       = name;
     _metricSink = metricSink;
 }
Ejemplo n.º 4
0
 public void Enable(IMetricSink destination)
 {
     metricSink     = destination;
     metricsEnabled = true;
 }
 public TimingBlockFactory(IMetricSink metricSink)
 {
     _metricSink = metricSink;
 }