internal static MeterProviderBuilder AddOtlpExporter( MeterProviderBuilder builder, OtlpExporterOptions exporterOptions, MetricReaderOptions metricReaderOptions, Action <OtlpExporterOptions> configureExporter, Action <OtlpExporterOptions, MetricReaderOptions> configureExporterAndMetricReader, IServiceProvider serviceProvider, Func <BaseExporter <Metric>, BaseExporter <Metric> > configureExporterInstance = null) { if (configureExporterAndMetricReader != null) { configureExporterAndMetricReader.Invoke(exporterOptions, metricReaderOptions); } else { configureExporter?.Invoke(exporterOptions); } exporterOptions.TryEnableIHttpClientFactoryIntegration(serviceProvider, "OtlpMetricExporter"); BaseExporter <Metric> metricExporter = new OtlpMetricExporter(exporterOptions); if (configureExporterInstance != null) { metricExporter = configureExporterInstance(metricExporter); } var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader( metricExporter, metricReaderOptions, DefaultExportIntervalMilliseconds, DefaultExportTimeoutMilliseconds); return(builder.AddReader(metricReader)); }
private static MeterProviderBuilder AddConsoleExporter( MeterProviderBuilder builder, ConsoleExporterOptions exporterOptions, MetricReaderOptions metricReaderOptions, Action <ConsoleExporterOptions> configureExporter, Action <ConsoleExporterOptions, MetricReaderOptions> configureExporterAndMetricReader) { if (configureExporterAndMetricReader != null) { configureExporterAndMetricReader.Invoke(exporterOptions, metricReaderOptions); } else { configureExporter?.Invoke(exporterOptions); } var metricExporter = new ConsoleMetricExporter(exporterOptions); var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader( metricExporter, metricReaderOptions, DefaultExportIntervalMilliseconds, DefaultExportTimeoutMilliseconds); return(builder.AddReader(metricReader)); }
private static MeterProviderBuilder AddInMemoryExporter( MeterProviderBuilder builder, ICollection <Metric> exportedItems, MetricReaderOptions metricReaderOptions, Action <MetricReaderOptions> configureMetricReader) { configureMetricReader?.Invoke(metricReaderOptions); var metricExporter = new InMemoryExporter <Metric>(exportedItems); var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader( metricExporter, metricReaderOptions, DefaultExportIntervalMilliseconds, DefaultExportTimeoutMilliseconds); return(builder.AddReader(metricReader)); }