Skip to content

Commit e25d128

Browse files
authored
[sdk-metrics] Tweak SetExemplarFilter API and improve XML docs (#5578)
1 parent 254f52f commit e25d128

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

src/OpenTelemetry/.publicApi/Experimental/PublicAPI.Unshipped.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ static OpenTelemetry.Logs.LoggerProviderBuilderExtensions.SetResourceBuilder(thi
5555
static OpenTelemetry.Logs.LoggerProviderExtensions.AddProcessor(this OpenTelemetry.Logs.LoggerProvider! provider, OpenTelemetry.BaseProcessor<OpenTelemetry.Logs.LogRecord!>! processor) -> OpenTelemetry.Logs.LoggerProvider!
5656
static OpenTelemetry.Logs.LoggerProviderExtensions.ForceFlush(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
5757
static OpenTelemetry.Logs.LoggerProviderExtensions.Shutdown(this OpenTelemetry.Logs.LoggerProvider! provider, int timeoutMilliseconds = -1) -> bool
58-
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilterType exemplarFilter = OpenTelemetry.Metrics.ExemplarFilterType.TraceBased) -> OpenTelemetry.Metrics.MeterProviderBuilder!
58+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilterType exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
5959
static OpenTelemetry.OpenTelemetryBuilderSdkExtensions.WithLogging(this OpenTelemetry.IOpenTelemetryBuilder! builder) -> OpenTelemetry.IOpenTelemetryBuilder!
6060
static OpenTelemetry.OpenTelemetryBuilderSdkExtensions.WithLogging(this OpenTelemetry.IOpenTelemetryBuilder! builder, System.Action<OpenTelemetry.Logs.LoggerProviderBuilder!>! configure) -> OpenTelemetry.IOpenTelemetryBuilder!
6161
static OpenTelemetry.OpenTelemetryBuilderSdkExtensions.WithLogging(this OpenTelemetry.IOpenTelemetryBuilder! builder, System.Action<OpenTelemetry.Logs.LoggerProviderBuilder!>? configureBuilder, System.Action<OpenTelemetry.Logs.OpenTelemetryLoggerOptions!>? configureOptions) -> OpenTelemetry.IOpenTelemetryBuilder!

src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderExtensions.cs

+24-9
Original file line numberDiff line numberDiff line change
@@ -319,16 +319,31 @@ public static MeterProvider Build(this MeterProviderBuilder meterProviderBuilder
319319

320320
#if EXPOSE_EXPERIMENTAL_FEATURES
321321
/// <summary>
322-
/// Sets the <see cref="ExemplarFilterType"/> to be used for this provider
323-
/// which controls how measurements will be offered to exemplar reservoirs.
324-
/// Default provider configuration: <see
325-
/// cref="ExemplarFilterType.AlwaysOff"/>.
322+
/// Sets the default <see cref="ExemplarFilterType"/> for the provider.
326323
/// </summary>
327324
/// <remarks>
328325
/// <inheritdoc cref="Exemplar"
329326
/// path="/remarks/para[@experimental-warning='true']"/>
330-
/// <para>Note: Use <see cref="ExemplarFilterType.TraceBased"/> or <see
331-
/// cref="ExemplarFilterType.AlwaysOn"/> to enable exemplars.</para>
327+
/// <para>Notes:
328+
/// <list type="bullet">
329+
/// <item>The configured <see cref="ExemplarFilterType"/> controls how
330+
/// measurements will be offered to <see cref="ExemplarReservoir"/>s which
331+
/// are responsible for storing <see cref="Exemplar"/>s on metrics.</item>
332+
/// <item>The default provider configuration is <see
333+
/// cref="ExemplarFilterType.AlwaysOff"/>.</item>
334+
/// <item>Use <see cref="ExemplarFilterType.TraceBased"/> or <see
335+
/// cref="ExemplarFilterType.AlwaysOn"/> to enable <see cref="Exemplar"/>s
336+
/// for all metrics managed by the provider.</item>
337+
/// <item>If <see cref="Exemplar"/>s are enabled on the provider by the
338+
/// configured <see cref="ExemplarFilterType"/> then <see
339+
/// cref="ExemplarReservoir"/>s will be configured on metrics using the
340+
/// defaults described in the specification: <see
341+
/// href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#exemplar-defaults"
342+
/// />. To change the <see cref="ExemplarReservoir"/> for a metric use the
343+
/// <c>AddView</c> API and <see
344+
/// cref="MetricStreamConfiguration.ExemplarReservoirFactory"/>.</item>
345+
/// </list>
346+
/// </para>
332347
/// <para>Specification: <see
333348
/// href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#exemplarfilter"/>.</para>
334349
/// </remarks>
@@ -345,9 +360,9 @@ public static MeterProvider Build(this MeterProviderBuilder meterProviderBuilder
345360
#else
346361
internal
347362
#endif
348-
static MeterProviderBuilder SetExemplarFilter(
363+
static MeterProviderBuilder SetExemplarFilter(
349364
this MeterProviderBuilder meterProviderBuilder,
350-
ExemplarFilterType exemplarFilter = ExemplarFilterType.TraceBased)
365+
ExemplarFilterType exemplarFilter)
351366
{
352367
meterProviderBuilder.ConfigureBuilder((sp, builder) =>
353368
{
@@ -361,7 +376,7 @@ static MeterProviderBuilder SetExemplarFilter(
361376
meterProviderBuilderSdk.SetExemplarFilter(exemplarFilter);
362377
break;
363378
default:
364-
throw new NotSupportedException($"SdkExemplarFilter '{exemplarFilter}' is not supported.");
379+
throw new NotSupportedException($"ExemplarFilterType '{exemplarFilter}' is not supported.");
365380
}
366381
}
367382
});

0 commit comments

Comments
 (0)