Skip to content

Commit 69cb517

Browse files
committed
use boolean, use without_scope_info_metric in declarative config
1 parent 15d7fed commit 69cb517

File tree

10 files changed

+38
-76
lines changed

10 files changed

+38
-76
lines changed

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverter.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ final class Otel2PrometheusConverter {
8282
private static final long NANOS_PER_MILLISECOND = TimeUnit.MILLISECONDS.toNanos(1);
8383
static final int MAX_CACHE_SIZE = 10;
8484

85-
private final OtelScopeMode otelScopeMode;
85+
private final boolean otelScopeInfoMetricEnabled;
8686
@Nullable private final Predicate<String> allowedResourceAttributesFilter;
8787

8888
/**
@@ -94,14 +94,15 @@ final class Otel2PrometheusConverter {
9494
/**
9595
* Constructor with feature flag parameter.
9696
*
97-
* @param otelScopeMode enable generation of the OpenTelemetry instrumentation scope info metric
98-
* and labels.
97+
* @param otelScopeInfoMetricEnabled enable generation of the OpenTelemetry instrumentation scope
98+
* info metric and labels.
9999
* @param allowedResourceAttributesFilter if not {@code null}, resource attributes with keys
100100
* matching this predicate will be added as labels on each exported metric
101101
*/
102102
Otel2PrometheusConverter(
103-
OtelScopeMode otelScopeMode, @Nullable Predicate<String> allowedResourceAttributesFilter) {
104-
this.otelScopeMode = otelScopeMode;
103+
boolean otelScopeInfoMetricEnabled,
104+
@Nullable Predicate<String> allowedResourceAttributesFilter) {
105+
this.otelScopeInfoMetricEnabled = otelScopeInfoMetricEnabled;
105106
this.allowedResourceAttributesFilter = allowedResourceAttributesFilter;
106107
this.resourceAttributesToAllowedKeysCache =
107108
allowedResourceAttributesFilter != null
@@ -125,15 +126,15 @@ MetricSnapshots convert(@Nullable Collection<MetricData> metricDataCollection) {
125126
if (resource == null) {
126127
resource = metricData.getResource();
127128
}
128-
if (otelScopeMode.isScopeInfoEnabled()
129+
if (otelScopeInfoMetricEnabled
129130
&& !metricData.getInstrumentationScopeInfo().getAttributes().isEmpty()) {
130131
scopes.add(metricData.getInstrumentationScopeInfo());
131132
}
132133
}
133134
if (resource != null) {
134135
putOrMerge(snapshotsByName, makeTargetInfo(resource));
135136
}
136-
if (otelScopeMode.isScopeInfoEnabled() && !scopes.isEmpty()) {
137+
if (otelScopeInfoMetricEnabled && !scopes.isEmpty()) {
137138
putOrMerge(snapshotsByName, makeScopeInfo(scopes));
138139
}
139140
return new MetricSnapshots(snapshotsByName.values());

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/OtelScopeMode.java

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

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServer.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public final class PrometheusHttpServer implements MetricReader {
4242

4343
private final String host;
4444
private final int port;
45-
private final OtelScopeMode otelScopeMode;
45+
private final boolean otelScopeInfoMetricEnabled;
4646
@Nullable private final Predicate<String> allowedResourceAttributesFilter;
4747
private final MemoryMode memoryMode;
4848
private final DefaultAggregationSelector defaultAggregationSelector;
@@ -72,21 +72,21 @@ public static PrometheusHttpServerBuilder builder() {
7272
int port,
7373
@Nullable ExecutorService executor,
7474
PrometheusRegistry prometheusRegistry,
75-
OtelScopeMode otelScopeMode,
75+
boolean otelScopeInfoMetricEnabled,
7676
@Nullable Predicate<String> allowedResourceAttributesFilter,
7777
MemoryMode memoryMode,
7878
@Nullable HttpHandler defaultHandler,
7979
DefaultAggregationSelector defaultAggregationSelector,
8080
@Nullable Authenticator authenticator) {
8181
this.host = host;
8282
this.port = port;
83-
this.otelScopeMode = otelScopeMode;
83+
this.otelScopeInfoMetricEnabled = otelScopeInfoMetricEnabled;
8484
this.allowedResourceAttributesFilter = allowedResourceAttributesFilter;
8585
this.memoryMode = memoryMode;
8686
this.defaultAggregationSelector = defaultAggregationSelector;
8787
this.builder = builder;
8888
this.prometheusMetricReader =
89-
new PrometheusMetricReader(otelScopeMode, allowedResourceAttributesFilter);
89+
new PrometheusMetricReader(otelScopeInfoMetricEnabled, allowedResourceAttributesFilter);
9090
this.prometheusRegistry = prometheusRegistry;
9191
prometheusRegistry.register(prometheusMetricReader);
9292
// When memory mode is REUSABLE_DATA, concurrent reads lead to data corruption. To prevent this,
@@ -171,7 +171,7 @@ public String toString() {
171171
StringJoiner joiner = new StringJoiner(",", "PrometheusHttpServer{", "}");
172172
joiner.add("host=" + host);
173173
joiner.add("port=" + port);
174-
joiner.add("otelScopeMode=" + otelScopeMode);
174+
joiner.add("otelScopeInfoMetricEnabled=" + otelScopeInfoMetricEnabled);
175175
joiner.add("allowedResourceAttributesFilter=" + allowedResourceAttributesFilter);
176176
joiner.add("memoryMode=" + memoryMode);
177177
joiner.add(

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerBuilder.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public final class PrometheusHttpServerBuilder {
3030
private String host = DEFAULT_HOST;
3131
private int port = DEFAULT_PORT;
3232
private PrometheusRegistry prometheusRegistry = new PrometheusRegistry();
33-
private OtelScopeMode otelScopeMode = OtelScopeMode.LABELS_AND_SCOPE_INFO;
33+
private boolean otelScopeInfoMetricEnabled = true;
3434
@Nullable private Predicate<String> allowedResourceAttributesFilter;
3535
@Nullable private ExecutorService executor;
3636
private MemoryMode memoryMode = DEFAULT_MEMORY_MODE;
@@ -45,7 +45,7 @@ public final class PrometheusHttpServerBuilder {
4545
this.host = builder.host;
4646
this.port = builder.port;
4747
this.prometheusRegistry = builder.prometheusRegistry;
48-
this.otelScopeMode = builder.otelScopeMode;
48+
this.otelScopeInfoMetricEnabled = builder.otelScopeInfoMetricEnabled;
4949
this.allowedResourceAttributesFilter = builder.allowedResourceAttributesFilter;
5050
this.executor = builder.executor;
5151
this.memoryMode = builder.memoryMode;
@@ -83,10 +83,11 @@ public PrometheusHttpServerBuilder setPrometheusRegistry(PrometheusRegistry prom
8383
return this;
8484
}
8585

86-
/** Set if the {@code otel_scope_*} attributes are generated. Default is {@code true}. */
86+
/** Set if the {@code otel_scope_info} metric is emitted. Default is {@code true}. */
8787
@SuppressWarnings("UnusedReturnValue")
88-
public PrometheusHttpServerBuilder setOtelScopeMode(OtelScopeMode otelScopeMode) {
89-
this.otelScopeMode = otelScopeMode;
88+
public PrometheusHttpServerBuilder setOtelScopeInfoMetricEnabled(
89+
boolean otelScopeInfoMetricEnabled) {
90+
this.otelScopeInfoMetricEnabled = otelScopeInfoMetricEnabled;
9091
return this;
9192
}
9293

@@ -176,7 +177,7 @@ public PrometheusHttpServer build() {
176177
port,
177178
executor,
178179
prometheusRegistry,
179-
otelScopeMode,
180+
otelScopeInfoMetricEnabled,
180181
allowedResourceAttributesFilter,
181182
memoryMode,
182183
defaultHandler,

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusMetricReader.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,12 @@ public class PrometheusMetricReader implements MetricReader, MultiCollector {
2828
private volatile CollectionRegistration collectionRegistration = CollectionRegistration.noop();
2929
private final Otel2PrometheusConverter converter;
3030

31-
/**
32-
* This constructor is deprecated and will be removed in a future release.
33-
*
34-
* @deprecated use {@link PrometheusMetricReader#PrometheusMetricReader(OtelScopeMode, Predicate)}
35-
* instead.
36-
*/
37-
@SuppressWarnings("unused")
38-
@Deprecated
39-
public PrometheusMetricReader(
40-
boolean otelScopeEnabled, @Nullable Predicate<String> allowedResourceAttributesFilter) {
41-
this(OtelScopeMode.LABELS_AND_SCOPE_INFO, allowedResourceAttributesFilter);
42-
}
43-
4431
// TODO: refactor to public static create or builder pattern to align with project style
45-
/** See {@link Otel2PrometheusConverter#Otel2PrometheusConverter(OtelScopeMode, Predicate)}. */
4632
public PrometheusMetricReader(
47-
OtelScopeMode otelScopeMode, @Nullable Predicate<String> allowedResourceAttributesFilter) {
48-
this.converter = new Otel2PrometheusConverter(otelScopeMode, allowedResourceAttributesFilter);
33+
boolean otelScopeInfoMetricEnabled,
34+
@Nullable Predicate<String> allowedResourceAttributesFilter) {
35+
this.converter =
36+
new Otel2PrometheusConverter(otelScopeInfoMetricEnabled, allowedResourceAttributesFilter);
4937
}
5038

5139
@Override

exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/internal/PrometheusComponentProvider.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package io.opentelemetry.exporter.prometheus.internal;
77

88
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
9-
import io.opentelemetry.exporter.prometheus.OtelScopeMode;
109
import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
1110
import io.opentelemetry.exporter.prometheus.PrometheusHttpServerBuilder;
1211
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
@@ -46,9 +45,9 @@ public MetricReader create(DeclarativeConfigProperties config) {
4645
prometheusBuilder.setHost(host);
4746
}
4847

49-
Boolean withoutScopeInfo = config.getBoolean("without_scope_info");
50-
if (Boolean.TRUE.equals(withoutScopeInfo)) {
51-
prometheusBuilder.setOtelScopeMode(OtelScopeMode.LABELS_ONLY);
48+
Boolean withoutScopeInfo = config.getBoolean("without_scope_info_metric");
49+
if (withoutScopeInfo != null) {
50+
prometheusBuilder.setOtelScopeInfoMetricEnabled(!withoutScopeInfo);
5251
}
5352

5453
DeclarativeConfigProperties withResourceConstantLabels =

exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverterTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class Otel2PrometheusConverterTest {
7272

7373
private final Otel2PrometheusConverter converter =
7474
new Otel2PrometheusConverter(
75-
OtelScopeMode.LABELS_AND_SCOPE_INFO, /* allowedResourceAttributesFilter= */ null);
75+
/* otelScopeInfoMetricEnabled */ true, /* allowedResourceAttributesFilter= */ null);
7676

7777
@ParameterizedTest
7878
@MethodSource("metricMetadataArgs")
@@ -203,7 +203,7 @@ void resourceAttributesAddition(
203203

204204
Otel2PrometheusConverter converter =
205205
new Otel2PrometheusConverter(
206-
OtelScopeMode.LABELS_AND_SCOPE_INFO, allowedResourceAttributesFilter);
206+
/* otelScopeInfoMetricEnabled */ true, allowedResourceAttributesFilter);
207207

208208
ByteArrayOutputStream out = new ByteArrayOutputStream();
209209
MetricSnapshots snapshots = converter.convert(Collections.singletonList(metricData));
@@ -504,7 +504,7 @@ void validateCacheIsBounded() {
504504

505505
Otel2PrometheusConverter otel2PrometheusConverter =
506506
new Otel2PrometheusConverter(
507-
OtelScopeMode.LABELS_AND_SCOPE_INFO,
507+
/* otelScopeInfoMetricEnabled */ true,
508508
/* allowedResourceAttributesFilter= */ countPredicate);
509509

510510
// Create 20 different metric data objects with 2 different resource attributes;

exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ void stringRepresentation() {
413413
"PrometheusHttpServer{"
414414
+ "host=localhost,"
415415
+ "port=0,"
416-
+ "otelScopeMode=LABELS_AND_SCOPE_INFO,"
416+
+ "otelScopeInfoMetricEnabled=true,"
417417
+ "allowedResourceAttributesFilter=null,"
418418
+ "memoryMode=REUSABLE_DATA,"
419419
+ "defaultAggregationSelector=DefaultAggregationSelector{COUNTER=default, UP_DOWN_COUNTER=default, HISTOGRAM=default, OBSERVABLE_COUNTER=default, OBSERVABLE_UP_DOWN_COUNTER=default, OBSERVABLE_GAUGE=default, GAUGE=default}"
@@ -528,7 +528,7 @@ void toBuilder() {
528528
PrometheusHttpServerBuilder builder = PrometheusHttpServer.builder();
529529
builder.setHost("localhost");
530530
builder.setPort(1234);
531-
builder.setOtelScopeMode(OtelScopeMode.LABELS_ONLY);
531+
builder.setOtelScopeInfoMetricEnabled(false);
532532

533533
Predicate<String> resourceAttributesFilter = s -> false;
534534
builder.setAllowedResourceAttributesFilter(resourceAttributesFilter);
@@ -555,7 +555,7 @@ public Result authenticate(HttpExchange exchange) {
555555
.isInstanceOf(PrometheusHttpServerBuilder.class)
556556
.hasFieldOrPropertyWithValue("host", "localhost")
557557
.hasFieldOrPropertyWithValue("port", 1234)
558-
.hasFieldOrPropertyWithValue("otelScopeMode", OtelScopeMode.LABELS_ONLY)
558+
.hasFieldOrPropertyWithValue("otelScopeInfoMetricEnabled", false)
559559
.hasFieldOrPropertyWithValue("allowedResourceAttributesFilter", resourceAttributesFilter)
560560
.hasFieldOrPropertyWithValue("executor", executor)
561561
.hasFieldOrPropertyWithValue("prometheusRegistry", prometheusRegistry)

exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusMetricReaderTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void setUp() {
6363
this.createdTimestamp = convertTimestamp(testClock.now());
6464
this.reader =
6565
new PrometheusMetricReader(
66-
OtelScopeMode.LABELS_AND_SCOPE_INFO, /* allowedResourceAttributesFilter= */ null);
66+
/* otelScopeInfoMetricEnabled */ true, /* allowedResourceAttributesFilter= */ null);
6767
this.meter =
6868
SdkMeterProvider.builder()
6969
.setClock(testClock)
@@ -779,7 +779,7 @@ void exponentialHistogramBucketConversion() {
779779
int prometheusScale = Math.min(otelScale, 8);
780780
PrometheusMetricReader reader =
781781
new PrometheusMetricReader(
782-
OtelScopeMode.LABELS_AND_SCOPE_INFO, /* allowedResourceAttributesFilter= */ null);
782+
/* otelScopeInfoMetricEnabled */ true, /* allowedResourceAttributesFilter= */ null);
783783
Meter meter =
784784
SdkMeterProvider.builder()
785785
.registerMetricReader(reader)
@@ -1033,7 +1033,7 @@ void otelScopeComplete() throws IOException {
10331033
void otelScopeLabelsOnly() throws IOException {
10341034
PrometheusMetricReader reader =
10351035
new PrometheusMetricReader(
1036-
OtelScopeMode.LABELS_ONLY, /* allowedResourceAttributesFilter= */ null);
1036+
/* otelScopeInfoMetricEnabled */ false, /* allowedResourceAttributesFilter= */ null);
10371037
Meter meter =
10381038
SdkMeterProvider.builder()
10391039
.setClock(testClock)
@@ -1064,7 +1064,7 @@ void otelScopeLabelsOnly() throws IOException {
10641064
void addResourceAttributesWorks() throws IOException {
10651065
PrometheusMetricReader reader =
10661066
new PrometheusMetricReader(
1067-
OtelScopeMode.LABELS_AND_SCOPE_INFO,
1067+
/* otelScopeInfoMetricEnabled */ true,
10681068
/* allowedResourceAttributesFilter= */ Predicates.is("cluster"));
10691069
Meter meter =
10701070
SdkMeterProvider.builder()

sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/MetricReaderFactoryTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import io.github.netmikey.logunit.api.LogCapturer;
1717
import io.opentelemetry.api.incubator.config.DeclarativeConfigException;
1818
import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
19-
import io.opentelemetry.exporter.prometheus.OtelScopeMode;
2019
import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
2120
import io.opentelemetry.internal.testing.CleanupExtension;
2221
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
@@ -166,7 +165,7 @@ void create_PullPrometheusConfigured() throws IOException {
166165
PrometheusHttpServer.builder()
167166
.setHost("localhost")
168167
.setPort(port)
169-
.setOtelScopeMode(OtelScopeMode.LABELS_ONLY)
168+
.setOtelScopeInfoMetricEnabled(false)
170169
.setAllowedResourceAttributesFilter(
171170
IncludeExcludePredicate.createPatternMatching(
172171
singletonList("foo"), singletonList("bar")))

0 commit comments

Comments
 (0)