Skip to content

Commit 0eba68f

Browse files
authored
Add cardinality limit demonstration (#520)
1 parent b1ceb4e commit 0eba68f

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

declarative-configuration/otel-sdk-config.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# See https://github.com/open-telemetry/opentelemetry-configuration for details on schema and examples
22

3-
# TODO: the current support file format is 0.3, but the opentelemetry-java errantly checks that it is 0.1. This will be fixed in 1.44.0.
4-
file_format: "0.1"
3+
file_format: "0.3"
54

65
resource:
76
attributes:

doc-snippets/configuration/src/main/java/otel/SdkMeterProviderConfig.java

+7
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@ public static SdkMeterProvider create(Resource resource) {
1515
MetricReaderConfig.periodicMetricReader(
1616
MetricExporterConfig.otlpHttpMetricExporter(
1717
"http://localhost:4318/v1/metrics")));
18+
// Uncomment to optionally register metric reader with cardinality limits
19+
// builder.registerMetricReader(
20+
// MetricReaderConfig.periodicMetricReader(
21+
// MetricExporterConfig.otlpHttpMetricExporter("http://localhost:4318/v1/metrics")),
22+
// unusedInstrumentType -> 100);
23+
1824
ViewConfig.dropMetricView(builder, "some.custom.metric");
1925
ViewConfig.histogramBucketBoundariesView(
2026
builder, "http.server.request.duration", List.of(1.0, 5.0, 10.0));
2127
ViewConfig.attributeFilterView(
2228
builder, "http.client.request.duration", Set.of("http.request.method"));
29+
ViewConfig.cardinalityLimitsView(builder, "http.server.active_requests", 100);
2330
return builder.build();
2431
}
2532
}

doc-snippets/configuration/src/main/java/otel/ViewConfig.java

+7
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,11 @@ public static SdkMeterProviderBuilder attributeFilterView(
3030
InstrumentSelector.builder().setName(metricName).build(),
3131
View.builder().setAttributeFilter(keysToRetain).build());
3232
}
33+
34+
public static SdkMeterProviderBuilder cardinalityLimitsView(
35+
SdkMeterProviderBuilder builder, String metricName, int cardinalityLimit) {
36+
return builder.registerView(
37+
InstrumentSelector.builder().setName(metricName).build(),
38+
View.builder().setCardinalityLimit(cardinalityLimit).build());
39+
}
3340
}

javaagent/sdk-config.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
# vars defined in https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/.
1414

1515
# The file format version.
16-
# TODO: the current support file format is 0.3, but the opentelemetry-java errantly checks that it is 0.1. This will be fixed in 1.44.0.
17-
file_format: "0.1"
16+
file_format: "0.3"
1817

1918
# Configure if the SDK is disabled or not. This is not required to be provided to ensure the SDK isn't disabled, the default value when this is not provided is for the SDK to be enabled.
2019
disabled: false

0 commit comments

Comments
 (0)