Use IOptionsMonitor instead of IOptionsSnapshot. (#3662)

This commit is contained in:
Mikel Blanchard 2022-09-14 14:25:37 -07:00 committed by GitHub
parent 97e5021c73
commit 928d77056c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 38 additions and 23 deletions

View File

@ -64,7 +64,7 @@ namespace OpenTelemetry.Trace
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<ConsoleExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<ConsoleExporterOptions>>().Get(name);
builder.AddProcessor(new SimpleActivityExportProcessor(new ConsoleActivityExporter(options)));
});

View File

@ -64,7 +64,7 @@ namespace OpenTelemetry.Logs
return loggerOptions.ConfigureProvider((sp, provider) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<ConsoleExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<ConsoleExporterOptions>>().Get(name);
provider.AddProcessor(new SimpleLogRecordExportProcessor(new ConsoleLogRecordExporter(options)));
});

View File

@ -73,8 +73,8 @@ namespace OpenTelemetry.Metrics
{
AddConsoleExporter(
builder,
sp.GetRequiredService<IOptionsSnapshot<ConsoleExporterOptions>>().Get(name),
sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name));
sp.GetRequiredService<IOptionsMonitor<ConsoleExporterOptions>>().Get(name),
sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name));
});
}
@ -111,8 +111,8 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var exporterOptions = sp.GetRequiredService<IOptionsSnapshot<ConsoleExporterOptions>>().Get(name);
var metricReaderOptions = sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name);
var exporterOptions = sp.GetRequiredService<IOptionsMonitor<ConsoleExporterOptions>>().Get(name);
var metricReaderOptions = sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name);
configureExporterAndMetricReader?.Invoke(exporterOptions, metricReaderOptions);

View File

@ -89,7 +89,7 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name);
AddInMemoryExporter(builder, exportedItems, options);
});
@ -157,7 +157,7 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name);
AddInMemoryExporter(builder, exportedItems, options);
});

View File

@ -69,7 +69,7 @@ namespace OpenTelemetry.Trace
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<JaegerExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<JaegerExporterOptions>>().Get(name);
AddJaegerExporter(builder, options, sp);
});

View File

@ -78,7 +78,7 @@ namespace OpenTelemetry.Logs
return loggerOptions.ConfigureProvider((sp, provider) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<OtlpExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<OtlpExporterOptions>>().Get(name);
AddOtlpExporter(provider, options, sp);
});

View File

@ -69,8 +69,8 @@ namespace OpenTelemetry.Metrics
{
AddOtlpExporter(
builder,
sp.GetRequiredService<IOptionsSnapshot<OtlpExporterOptions>>().Get(name),
sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name),
sp.GetRequiredService<IOptionsMonitor<OtlpExporterOptions>>().Get(name),
sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name),
sp);
});
}
@ -108,8 +108,8 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var exporterOptions = sp.GetRequiredService<IOptionsSnapshot<OtlpExporterOptions>>().Get(name);
var metricReaderOptions = sp.GetRequiredService<IOptionsSnapshot<MetricReaderOptions>>().Get(name);
var exporterOptions = sp.GetRequiredService<IOptionsMonitor<OtlpExporterOptions>>().Get(name);
var metricReaderOptions = sp.GetRequiredService<IOptionsMonitor<MetricReaderOptions>>().Get(name);
configureExporterAndMetricReader?.Invoke(exporterOptions, metricReaderOptions);

View File

@ -68,7 +68,7 @@ namespace OpenTelemetry.Trace
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<OtlpExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<OtlpExporterOptions>>().Get(name);
AddOtlpExporter(builder, options, sp);
});

View File

@ -70,7 +70,7 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<PrometheusExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<PrometheusExporterOptions>>().Get(name);
AddPrometheusExporter(builder, options);
});

View File

@ -70,7 +70,7 @@ namespace OpenTelemetry.Metrics
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<PrometheusHttpListenerOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<PrometheusHttpListenerOptions>>().Get(name);
AddPrometheusHttpListener(builder, options);
});

View File

@ -69,7 +69,7 @@ namespace OpenTelemetry.Trace
return builder.ConfigureBuilder((sp, builder) =>
{
var options = sp.GetRequiredService<IOptionsSnapshot<ZipkinExporterOptions>>().Get(name);
var options = sp.GetRequiredService<IOptionsMonitor<ZipkinExporterOptions>>().Get(name);
AddZipkinExporter(builder, options, sp);
});

View File

@ -368,7 +368,12 @@ namespace OpenTelemetry.Logs
this.services = null;
var serviceProvider = services.BuildServiceProvider();
#if DEBUG
bool validateScopes = true;
#else
bool validateScopes = false;
#endif
var serviceProvider = services.BuildServiceProvider(validateScopes);
var finalOptions = serviceProvider.GetRequiredService<IOptionsMonitor<OpenTelemetryLoggerOptions>>().CurrentValue;
@ -425,7 +430,7 @@ namespace OpenTelemetry.Logs
case ExportProcessorType.Simple:
return new SimpleLogRecordExportProcessor(exporter);
case ExportProcessorType.Batch:
var options = serviceProvider.GetRequiredService<IOptionsSnapshot<ExportLogRecordProcessorOptions>>().Get(name);
var options = serviceProvider.GetRequiredService<IOptionsMonitor<ExportLogRecordProcessorOptions>>().Get(name);
options.ExportProcessorType = ExportProcessorType.Batch;

View File

@ -257,7 +257,12 @@ namespace OpenTelemetry.Metrics
this.services = null;
var serviceProvider = services.BuildServiceProvider();
#if DEBUG
bool validateScopes = true;
#else
bool validateScopes = false;
#endif
var serviceProvider = services.BuildServiceProvider(validateScopes);
return new MeterProviderSdk(serviceProvider, ownsServiceProvider: true);
}

View File

@ -259,7 +259,12 @@ namespace OpenTelemetry.Trace
this.services = null;
var serviceProvider = services.BuildServiceProvider();
#if DEBUG
bool validateScopes = true;
#else
bool validateScopes = false;
#endif
var serviceProvider = services.BuildServiceProvider(validateScopes);
return new TracerProviderSdk(serviceProvider, ownsServiceProvider: true);
}
@ -278,7 +283,7 @@ namespace OpenTelemetry.Trace
case ExportProcessorType.Simple:
return new SimpleActivityExportProcessor(exporter);
case ExportProcessorType.Batch:
var options = serviceProvider.GetRequiredService<IOptionsSnapshot<ExportActivityProcessorOptions>>().Get(name);
var options = serviceProvider.GetRequiredService<IOptionsMonitor<ExportActivityProcessorOptions>>().Get(name);
options.ExportProcessorType = ExportProcessorType.Batch;