Skip to content

Commit 8de335c

Browse files
[sdk-metrics] Promote cardinality limit view API from experimental to stable (open-telemetry#5926)
Co-authored-by: Rajkumar Rangaraj <[email protected]>
1 parent 9f41ead commit 8de335c

File tree

12 files changed

+22
-81
lines changed

12 files changed

+22
-81
lines changed

OpenTelemetry.sln

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "experimental-apis", "experi
305305
ProjectSection(SolutionItems) = preProject
306306
docs\diagnostics\experimental-apis\OTEL1000.md = docs\diagnostics\experimental-apis\OTEL1000.md
307307
docs\diagnostics\experimental-apis\OTEL1001.md = docs\diagnostics\experimental-apis\OTEL1001.md
308-
docs\diagnostics\experimental-apis\OTEL1003.md = docs\diagnostics\experimental-apis\OTEL1003.md
309308
docs\diagnostics\experimental-apis\OTEL1004.md = docs\diagnostics\experimental-apis\OTEL1004.md
310309
docs\diagnostics\experimental-apis\README.md = docs\diagnostics\experimental-apis\README.md
311310
EndProjectSection

build/Common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<NuGetAuditMode>all</NuGetAuditMode>
1414
<NuGetAuditLevel>low</NuGetAuditLevel>
1515
<!-- Suppress warnings for repo code using experimental features -->
16-
<NoWarn>$(NoWarn);OTEL1000;OTEL1001;OTEL1002;OTEL1003;OTEL1004</NoWarn>
16+
<NoWarn>$(NoWarn);OTEL1000;OTEL1001;OTEL1002;OTEL1004</NoWarn>
1717
<!--temporarily disable. See 3958-->
1818
<!--<AnalysisLevel>latest-All</AnalysisLevel>-->
1919
</PropertyGroup>

docs/diagnostics/experimental-apis/OTEL1003.md

Lines changed: 0 additions & 47 deletions
This file was deleted.

docs/diagnostics/experimental-apis/README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@ Description: Logs Bridge API
2727

2828
Details: [OTEL1001](./OTEL1001.md)
2929

30-
### OTEL1003
31-
32-
Description: MetricStreamConfiguration CardinalityLimit Support
33-
34-
Details: [OTEL1003](./OTEL1003.md)
35-
3630
### OTEL1004
3731

3832
Description: ExemplarReservoir Support
@@ -58,3 +52,11 @@ Description: Metrics Exemplar Support
5852
Details: [OTEL1002](https://github.com/open-telemetry/opentelemetry-dotnet/blob/b8ea807bae1a5d9b0f3d6d23b1e1e10f5e096a25/docs/diagnostics/experimental-apis/OTEL1002.md)
5953

6054
Released stable: `1.9.0`
55+
56+
### OTEL1003
57+
58+
Description: MetricStreamConfiguration CardinalityLimit Support
59+
60+
Details: [OTEL1003](https://github.com/open-telemetry/opentelemetry-dotnet/blob/9f41eadf03f3dcc5e76c686b61fb39849f046312/docs/diagnostics/experimental-apis/OTEL1003.md)
61+
62+
Released stable: `1.10.0`

docs/metrics/customizing-the-sdk/README.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,8 @@ metrics managed by a given `MeterProvider`, use the
403403

404404
> [!CAUTION]
405405
> `MeterProviderBuilder.SetMaxMetricPointsPerMetricStream` is marked `Obsolete`
406-
in pre-release builds and has been replaced by
407-
`MetricStreamConfiguration.CardinalityLimit`. For details see:
408-
[OTEL1003](../../diagnostics/experimental-apis/OTEL1003.md).
406+
in stable builds since 1.10.0 and has been replaced by
407+
`MetricStreamConfiguration.CardinalityLimit`.
409408

410409
```csharp
411410
using var meterProvider = Sdk.CreateMeterProviderBuilder()
@@ -421,11 +420,6 @@ To set the [cardinality limit](../README.md#cardinality-limits) for an
421420
individual metric, use the `MetricStreamConfiguration.CardinalityLimit` property
422421
on the View API:
423422

424-
> [!NOTE]
425-
> `MetricStreamConfiguration.CardinalityLimit` is an experimental API only
426-
available in pre-release builds. For details see:
427-
[OTEL1003](../../diagnostics/experimental-apis/OTEL1003.md).
428-
429423
```csharp
430424
var meterProvider = Sdk.CreateMeterProviderBuilder()
431425
.AddMeter("MyCompany.MyProduct.MyLibrary")

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ OpenTelemetry.Metrics.FixedSizeExemplarReservoir.Capacity.get -> int
1717
OpenTelemetry.Metrics.FixedSizeExemplarReservoir.FixedSizeExemplarReservoir(int capacity) -> void
1818
OpenTelemetry.Metrics.FixedSizeExemplarReservoir.UpdateExemplar(int exemplarIndex, in OpenTelemetry.Metrics.ExemplarMeasurement<double> measurement) -> void
1919
OpenTelemetry.Metrics.FixedSizeExemplarReservoir.UpdateExemplar(int exemplarIndex, in OpenTelemetry.Metrics.ExemplarMeasurement<long> measurement) -> void
20-
OpenTelemetry.Metrics.MetricStreamConfiguration.CardinalityLimit.get -> int?
21-
OpenTelemetry.Metrics.MetricStreamConfiguration.CardinalityLimit.set -> void
2220
OpenTelemetry.Metrics.MetricStreamConfiguration.ExemplarReservoirFactory.get -> System.Func<OpenTelemetry.Metrics.ExemplarReservoir?>?
2321
OpenTelemetry.Metrics.MetricStreamConfiguration.ExemplarReservoirFactory.set -> void
2422
override sealed OpenTelemetry.Metrics.FixedSizeExemplarReservoir.Collect() -> OpenTelemetry.Metrics.ReadOnlyExemplarCollection

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
OpenTelemetry.Metrics.MetricStreamConfiguration.CardinalityLimit.get -> int?
2+
OpenTelemetry.Metrics.MetricStreamConfiguration.CardinalityLimit.set -> void
13
OpenTelemetry.OpenTelemetrySdk
24
OpenTelemetry.OpenTelemetrySdk.Dispose() -> void
35
OpenTelemetry.OpenTelemetrySdk.LoggerProvider.get -> OpenTelemetry.Logs.LoggerProvider!

src/OpenTelemetry/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Notes](../../RELEASENOTES.md).
66

77
## Unreleased
88

9+
* The experimental APIs previously covered by `OTEL1003`
10+
(`MetricStreamConfiguration.CardinalityLimit`) will now be part of the public
11+
API and supported in stable builds.
12+
([#5926](https://github.com/open-telemetry/opentelemetry-dotnet/pull/5926))
13+
914
* Promoted overflow attribute from experimental to stable and removed the
1015
`OTEL_DOTNET_EXPERIMENTAL_METRICS_EMIT_OVERFLOW_ATTRIBUTE` environment variable.
1116

src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderExtensions.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,7 @@ public static MeterProviderBuilder SetMaxMetricStreams(this MeterProviderBuilder
238238
/// <param name="meterProviderBuilder"><see cref="MeterProviderBuilder"/>.</param>
239239
/// <param name="maxMetricPointsPerMetricStream">Maximum number of metric points allowed per metric stream.</param>
240240
/// <returns>The supplied <see cref="MeterProviderBuilder"/> for chaining.</returns>
241-
#if EXPOSE_EXPERIMENTAL_FEATURES
242-
[Obsolete("Use MetricStreamConfiguration.CardinalityLimit via the AddView API instead. This method will be removed in a future version.")]
243-
#endif
241+
[Obsolete("Use MetricStreamConfiguration.CardinalityLimit via the AddView API instead. This method is marked as obsolete in version 1.10.0 and will be removed in a future version.")]
244242
public static MeterProviderBuilder SetMaxMetricPointsPerMetricStream(this MeterProviderBuilder meterProviderBuilder, int maxMetricPointsPerMetricStream)
245243
{
246244
Guard.ThrowIfOutOfRange(maxMetricPointsPerMetricStream, min: 1);

src/OpenTelemetry/Metrics/View/MetricStreamConfiguration.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,11 @@ public string[]? TagKeys
9898
}
9999
}
100100

101-
#if EXPOSE_EXPERIMENTAL_FEATURES
102101
/// <summary>
103102
/// Gets or sets a positive integer value defining the maximum number of
104103
/// data points allowed for the metric managed by the view.
105104
/// </summary>
106105
/// <remarks>
107-
/// <para><b>WARNING</b>: This is an experimental API which might change or
108-
/// be removed in the future. Use at your own risk.</para>
109106
/// <para>Spec reference: <see
110107
/// href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#cardinality-limits">Cardinality
111108
/// limits</see>.</para>
@@ -116,14 +113,7 @@ public string[]? TagKeys
116113
/// If not set the default
117114
/// MeterProvider cardinality limit of 2000 will apply.
118115
/// </remarks>
119-
#if NET
120-
[Experimental(DiagnosticDefinitions.CardinalityLimitExperimentalApi, UrlFormat = DiagnosticDefinitions.ExperimentalApiUrlFormat)]
121-
#endif
122-
public
123-
#else
124-
internal
125-
#endif
126-
int? CardinalityLimit
116+
public int? CardinalityLimit
127117
{
128118
get => this.cardinalityLimit;
129119
set

0 commit comments

Comments
 (0)