public Task WriteAsync(HttpContext context, MetricsDataValueSource metricsData, CancellationToken token = default(CancellationToken)) { var payloadBuilder = new BulkPayloadBuilder( _index, Constants.ElasticsearchDefaults.MetricNameFormatter, Constants.ElasticsearchDefaults.MetricTagValueFormatter, new MetricValueDataKeys(Constants.ElasticsearchDefaults.CustomHistogramDataKeys, Constants.ElasticsearchDefaults.CustomMeterDataKeys)); var formatter = new MetricDataValueSourceFormatter(); formatter.Build(metricsData, payloadBuilder); return(context.Response.WriteAsync(payloadBuilder.PayloadFormatted(), token)); }
public IMetricReporter CreateMetricReporter(string name, ILoggerFactory loggerFactory) { var lineProtocolClient = new ElasticSearchBulkClient( loggerFactory, _settings.ElasticSearchSettings, _settings.HttpPolicy); var payloadBuilder = new BulkPayloadBuilder(_settings.ElasticSearchSettings, _settings.MetricTagValueFormatter); return(new ReportRunner <BulkPayload>( async p => await lineProtocolClient.WriteAsync(p.Payload()), payloadBuilder, _settings.ReportInterval, name, loggerFactory, _settings.MetricNameFormatter, _settings.DataKeys)); }