Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanNameExtractor;
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanNameExtractorBuilder;
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanStatusExtractor;
import io.opentelemetry.semconv.SchemaUrls;
import io.opentelemetry.instrumentation.api.semconv.http.internal.HttpSchemaUrls;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
Expand Down Expand Up @@ -267,7 +267,7 @@ public Instrumenter<REQUEST, RESPONSE> build() {
.addAttributesExtractor(httpAttributesExtractorBuilder.build())
.addAttributesExtractors(additionalExtractors)
.addOperationMetrics(HttpClientMetrics.get())
.setSchemaUrl(SchemaUrls.V1_41_0);
.setSchemaUrl(HttpSchemaUrls.SCHEMA_URL);
setHttpClientExceptionEventExtractor(builder);
if (emitExperimentalHttpClientTelemetry) {
builder
Expand All @@ -288,7 +288,7 @@ InstrumenterBuilder<BUILDERREQUEST, BUILDERRESPONSE> instrumenterBuilder(
SpanNameExtractor<? super BUILDERREQUEST> spanNameExtractor) {
return Instrumenter.<BUILDERREQUEST, BUILDERRESPONSE>builder(
openTelemetry, instrumentationName, spanNameExtractor)
.setSchemaUrl(SchemaUrls.V1_41_0);
.setSchemaUrl(HttpSchemaUrls.SCHEMA_URL);
}

public static <REQUEST> void setHttpClientExceptionEventExtractor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanNameExtractor;
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanNameExtractorBuilder;
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanStatusExtractor;
import io.opentelemetry.semconv.SchemaUrls;
import io.opentelemetry.instrumentation.api.semconv.http.internal.HttpSchemaUrls;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
Expand Down Expand Up @@ -272,7 +272,7 @@ public InstrumenterBuilder<REQUEST, RESPONSE> instrumenterBuilder() {
.addAttributesExtractors(additionalExtractors)
.addContextCustomizer(httpServerRouteBuilder.build())
.addOperationMetrics(HttpServerMetrics.get())
.setSchemaUrl(SchemaUrls.V1_41_0);
.setSchemaUrl(HttpSchemaUrls.SCHEMA_URL);
Experimental.setExceptionEventExtractor(
builder,
(logRecordBuilder, context, request) -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@

import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.internal.DbSchemaUrls;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.SchemaUrlProvider;
import io.opentelemetry.instrumentation.api.internal.SpanKey;
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor;
import io.opentelemetry.semconv.AttributeKeyTemplate;
import io.opentelemetry.semconv.SchemaUrls;
import java.util.Map;
import javax.annotation.Nullable;

Expand Down Expand Up @@ -143,6 +143,6 @@ public SpanKey internalGetSpanKey() {

@Override
public String internalGetSchemaUrl() {
return SchemaUrls.V1_44_0;
return DbSchemaUrls.SCHEMA_URL;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import io.opentelemetry.api.metrics.MeterBuilder;
import io.opentelemetry.api.metrics.ObservableLongMeasurement;
import io.opentelemetry.api.metrics.ObservableMeasurement;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.internal.DbSchemaUrls;
import io.opentelemetry.instrumentation.api.internal.EmbeddedInstrumentationProperties;
import io.opentelemetry.semconv.SchemaUrls;

/**
* A helper class that models the <a
Expand Down Expand Up @@ -50,7 +50,7 @@ public static DbConnectionPoolMetrics create(
if (version != null) {
meterBuilder.setInstrumentationVersion(version);
}
meterBuilder.setSchemaUrl(SchemaUrls.V1_44_0);
meterBuilder.setSchemaUrl(DbSchemaUrls.SCHEMA_URL);
AttributesBuilder attributes = Attributes.builder();
attributes.putAll(databaseAttributes);
attributes.put(POOL_NAME, poolName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@

import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.internal.DbSchemaUrls;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.SchemaUrlProvider;
import io.opentelemetry.instrumentation.api.internal.SpanKey;
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor;
import io.opentelemetry.semconv.AttributeKeyTemplate;
import io.opentelemetry.semconv.SchemaUrls;
import java.util.Collection;
import java.util.Map;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -177,6 +177,6 @@ public SpanKey internalGetSpanKey() {

@Override
public String internalGetSchemaUrl() {
return SchemaUrls.V1_44_0;
return DbSchemaUrls.SCHEMA_URL;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.semconv.db.internal;

import io.opentelemetry.semconv.SchemaUrls;

/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
*/
public final class DbSchemaUrls {

public static final String SCHEMA_URL = SchemaUrls.V1_44_0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering whey we have a separate class for each semconv. Under what circumstances would we add additional constants here?


private DbSchemaUrls() {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.semconv.genai.internal;

import io.opentelemetry.semconv.SchemaUrls;

/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
*/
public final class GenAiSchemaUrls {

public static final String SCHEMA_URL = SchemaUrls.V1_37_0;

private GenAiSchemaUrls() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

package io.opentelemetry.instrumentation.api.incubator.semconv.messaging;

import static io.opentelemetry.instrumentation.api.internal.SemconvStability.messagingSchemaUrl;
import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE;
import static java.util.Collections.emptyList;
import static java.util.Collections.unmodifiableList;
Expand All @@ -15,6 +14,7 @@
import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.config.IncludeExclude;
import io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingSchemaUrls;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.SchemaUrlProvider;
import io.opentelemetry.instrumentation.api.internal.SpanKey;
Expand Down Expand Up @@ -223,6 +223,6 @@ public SpanKey internalGetSpanKey() {

@Override
public String internalGetSchemaUrl() {
return messagingSchemaUrl();
return MessagingSchemaUrls.SCHEMA_URL;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal;

import io.opentelemetry.semconv.SchemaUrls;

/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
*/
public final class MessagingSchemaUrls {

public static final String SCHEMA_URL = SchemaUrls.V1_43_0;

private MessagingSchemaUrls() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.OpenTelemetryConfigurable;
import io.opentelemetry.instrumentation.api.internal.SchemaUrlProvider;
import io.opentelemetry.semconv.SchemaUrls;
import javax.annotation.Nullable;

abstract class RpcCommonAttributesExtractor<REQUEST, RESPONSE>
Expand Down Expand Up @@ -88,6 +87,6 @@ public final void onEnd(

@Override
public final String internalGetSchemaUrl() {
return selection.get().emitPreview() ? SchemaUrls.V1_44_0 : SchemaUrls.V1_37_0;
return selection.get().schemaUrl();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.semconv.SchemaUrls;
import javax.annotation.Nullable;

/**
Expand Down Expand Up @@ -59,7 +60,8 @@ private Selection(boolean emitOld, boolean emitPreview) {
this.emitPreview = emitPreview;
}

static Selection forOpenTelemetry(OpenTelemetry openTelemetry) {
// visible for testing
public static Selection forOpenTelemetry(OpenTelemetry openTelemetry) {
Comment thread
Copilot marked this conversation as resolved.
return new Selection(emitOldRpcSemconv(openTelemetry), emitPreviewRpcSemconv(openTelemetry));
}

Expand All @@ -70,5 +72,9 @@ public boolean emitOld() {
public boolean emitPreview() {
return emitPreview;
}

public String schemaUrl() {
return emitPreview ? SchemaUrls.V1_44_0 : SchemaUrls.V1_37_0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import io.opentelemetry.api.incubator.config.ConfigProvider;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.incubator.semconv.rpc.internal.RpcSemconvSelection;
import io.opentelemetry.instrumentation.api.incubator.semconv.service.peer.ServicePeerAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.ContextCustomizer;
Expand Down Expand Up @@ -76,6 +77,7 @@ void instancesEmitIndependentSemconv(boolean client) {
boolean preview = mode != 0;
boolean old = mode != 1;
String schemaUrl = preview ? SchemaUrls.V1_44_0 : SchemaUrls.V1_37_0;
assertThat(instance.selection.schemaUrl()).isEqualTo(schemaUrl);
Context context = instance.instrumenter.start(Context.root(), "request");
instance.instrumenter.end(context, "request", null, new IllegalStateException());

Expand Down Expand Up @@ -264,6 +266,7 @@ private final class ConfiguredInstrumenter {
final InMemorySpanExporter spanExporter = InMemorySpanExporter.create();
final InMemoryMetricReader metricReader = InMemoryMetricReader.create();
final Instrumenter<String, Void> instrumenter;
final RpcSemconvSelection.Selection selection;

ConfiguredInstrumenter(boolean client, boolean preview, boolean dualEmit) {
OpenTelemetrySdk sdk =
Expand Down Expand Up @@ -307,6 +310,7 @@ private final class ConfiguredInstrumenter {
when(openTelemetry.getConfigProvider()).thenReturn(configProvider);
when(openTelemetry.getGeneralInstrumentationConfig()).thenReturn(general);
when(openTelemetry.getInstrumentationConfig("common")).thenReturn(common);
selection = RpcSemconvSelection.Selection.forOpenTelemetry(openTelemetry);

TestGetter getter = new TestGetter();
instrumenter =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.semconv.SchemaUrls;
import java.util.HashMap;
import java.util.Map;

Expand Down Expand Up @@ -55,10 +54,6 @@ public static boolean emitPreviewRpcSemconv(OpenTelemetry openTelemetry) {
return emitStable(selectionResolver(openTelemetry).rpc());
}

public static String rpcSchemaUrl(OpenTelemetry openTelemetry) {
return emitPreviewRpcSemconv(openTelemetry) ? SchemaUrls.V1_44_0 : SchemaUrls.V1_37_0;
}

private static SemconvSelectionResolver selectionResolver(OpenTelemetry openTelemetry) {
return new SemconvSelectionResolver(
openTelemetry, getGeneralInstrumentationConfig(openTelemetry));
Expand Down Expand Up @@ -97,9 +92,5 @@ private static boolean emitStable(SemconvMode mode) {
return mode.version() >= 1;
}

public static String messagingSchemaUrl() {
return SchemaUrls.V1_43_0;
}

private SemconvStability() {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.semconv.http.internal;

import io.opentelemetry.semconv.SchemaUrls;

/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
*/
public final class HttpSchemaUrls {

public static final String SCHEMA_URL = SchemaUrls.V1_41_0;

private HttpSchemaUrls() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import io.opentelemetry.sdk.autoconfigure.declarativeconfig.DeclarativeConfiguration;
import io.opentelemetry.sdk.autoconfigure.declarativeconfig.model.OpenTelemetryConfigurationModel;
import io.opentelemetry.sdk.internal.SdkConfigProvider;
import io.opentelemetry.semconv.SchemaUrls;
import java.io.ByteArrayInputStream;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.HashMap;
Expand Down Expand Up @@ -206,11 +205,6 @@ void previewFallbackAppliesToPreviewDomains() {
assertThat(servicePeer).isEqualTo(SemconvMode.V1_EXPERIMENTAL);
}

@Test
void messagingUsesAdoptedSchemaUrl() {
assertThat(SemconvStability.messagingSchemaUrl()).isEqualTo(SchemaUrls.V1_43_0);
}

@Test
void domainsResolveIndependently() {
SemconvSelectionResolver resolver =
Expand Down Expand Up @@ -311,8 +305,6 @@ void structuredRpcSelectionFromDeclarativeConfig(
assertThat(emitOldRpcSemconv(openTelemetry))
.isEqualTo(expected.version() == 0 || expected.dualEmit());
assertThat(emitPreviewRpcSemconv(openTelemetry)).isEqualTo(expected.version() >= 1);
assertThat(SemconvStability.rpcSchemaUrl(openTelemetry))
.isEqualTo(expected.version() >= 1 ? SchemaUrls.V1_44_0 : SchemaUrls.V1_37_0);
}

private static Stream<Arguments> structuredRpcSelections() {
Expand Down
Loading
Loading