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 @@ -110,22 +110,16 @@ default List<String> getList(String name) {
*/
Map<String, String> getMap(String name, Map<String, String> defaultValue);

/** Returns {@code true} if declarative configuration is used in this configuration. */
boolean isDeclarative();

/**
* Returns a {@link DeclarativeConfigProperties} for the given node name, which is usually an
* instrumentation name
*
* <p>Call {@link #isDeclarative()} first to check if declarative configuration is used.
*
* <p>Declarative configuration is used to configure instrumentation properties in a declarative
* way, such as through YAML or JSON files.
*
* @param node the name of the instrumentation (e.g. "log4j"), the vendor name (e.g. "google"), or
* "common" for common Java settings that don't apply to other languages.
* @return the declarative configuration properties for the given node name
* @throws IllegalStateException if {@link #isDeclarative()} returns {@code false}
*/
DeclarativeConfigProperties getDeclarativeConfig(String node);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,6 @@ public Map<String, String> getMap(String name, Map<String, String> defaultValue)
}
}

@Override
public boolean isDeclarative() {
return configProvider != null;
}

@Override
public DeclarativeConfigProperties getDeclarativeConfig(String node) {
DeclarativeConfigProperties config =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ public Map<String, String> getMap(String name, Map<String, String> defaultValue)
return defaultValue;
}

@Override
public boolean isDeclarative() {
return false;
}

@Override
public DeclarativeConfigProperties getDeclarativeConfig(String node) {
throw new IllegalStateException(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,6 @@ public Map<String, String> getMap(String name, Map<String, String> defaultValue)
}
}

@Override
public boolean isDeclarative() {
return configProvider != null;
}

@Override
public DeclarativeConfigProperties getDeclarativeConfig(String node) {
DeclarativeConfigProperties config =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@

package io.opentelemetry.javaagent.tooling.instrumentation.http;

import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
import static java.util.Collections.emptyList;
import static java.util.logging.Level.WARNING;

import com.google.auto.service.AutoService;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
import io.opentelemetry.javaagent.tooling.BeforeAgentListener;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import java.util.logging.Logger;
Expand All @@ -26,16 +25,13 @@ public final class RegexUrlTemplateCustomizerInitializer implements BeforeAgentL

@Override
public void beforeAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk) {
InstrumentationConfig config = AgentInstrumentationConfig.get();
// url template is emitted only when http client experimental telemetry is enabled
boolean urlTemplateEnabled =
config.getBoolean("otel.instrumentation.http.client.emit-experimental-telemetry", false);
if (!urlTemplateEnabled || !config.isDeclarative()) {
if (!AgentCommonConfig.get().shouldEmitExperimentalHttpClientTelemetry()) {
return;
}
DeclarativeConfigProperties configuration =
config.getDeclarativeConfig("http").getStructured("client", empty());
configuration
DeclarativeConfigUtil.get(GlobalOpenTelemetry.get())
.get("http")
.get("client")
.getStructuredList("url_template_rules", emptyList())
.forEach(
rule -> {
Expand Down