Skip to content
Draft
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 @@ -23,7 +23,6 @@
import io.opentelemetry.javaagent.bootstrap.InternalLogger;
import io.opentelemetry.javaagent.bootstrap.JavaagentFileHolder;
import io.opentelemetry.javaagent.tooling.LoggingCustomizer;
import io.opentelemetry.javaagent.tooling.config.EarlyInitAgentConfig;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
Expand Down Expand Up @@ -77,7 +76,7 @@ public String name() {
}

@Override
public void init(EarlyInitAgentConfig earlyConfig) {
public void init() {
try {
if (DEBUG_SIGNED_JAR_ACCESS) {
JarVerifierClassFileTransformer transformer = new JarVerifierClassFileTransformer();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@

import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;

import com.google.auto.service.AutoService;
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.tooling.config.MethodsConfigurationParser;
Expand All @@ -32,9 +35,18 @@ public class MethodInstrumentationModule extends InstrumentationModule {
public MethodInstrumentationModule() {
super("ai-methods");

// First try to get config from DeclarativeConfigUtil
DeclarativeConfigProperties config =
DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "ai-methods");
String include = config.getString(TRACE_METHODS_CONFIG);

// Fallback to system property if not found in declarative config
if (include == null) {
include = System.getProperty(TRACE_METHODS_CONFIG);
}

Map<String, Set<String>> classMethodsToTrace =
MethodsConfigurationParser.parse(
AgentInstrumentationConfig.get().getString(TRACE_METHODS_CONFIG));
include != null ? MethodsConfigurationParser.parse(include) : emptyMap();

typeInstrumentations =
classMethodsToTrace.entrySet().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,54 @@
package io.opentelemetry.javaagent.instrumentation.micrometer.ai;

import io.micrometer.core.instrument.step.StepRegistryConfig;
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
import java.time.Duration;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nullable;

public class AzureMonitorRegistryConfig implements StepRegistryConfig {

private static final Logger logger = Logger.getLogger(AzureMonitorRegistryConfig.class.getName());
private static final Duration DEFAULT_STEP = Duration.ofSeconds(60);

private final Duration step;
@Nullable private final String namespace;

public static final AzureMonitorRegistryConfig INSTANCE = new AzureMonitorRegistryConfig();

private AzureMonitorRegistryConfig() {
step =
AgentInstrumentationConfig.get()
.getDuration(
"applicationinsights.internal.micrometer.step.millis", Duration.ofSeconds(60));
namespace =
AgentInstrumentationConfig.get()
.getString("applicationinsights.internal.micrometer.namespace");
DeclarativeConfigProperties config =
DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "micrometer");

// Get step duration in milliseconds, default to 60 seconds
String stepMillisStr = config.getString("applicationinsights.internal.micrometer.step.millis");
// Fallback to system property if not found in declarative config
if (stepMillisStr == null) {
stepMillisStr = System.getProperty("applicationinsights.internal.micrometer.step.millis");
}

Duration parsedStep = DEFAULT_STEP;
if (stepMillisStr != null) {
try {
parsedStep = Duration.ofMillis(Long.parseLong(stepMillisStr));
} catch (NumberFormatException e) {
logger.log(
Level.WARNING,
"Invalid value for applicationinsights.internal.micrometer.step.millis: {0}, using default of {1}",
new Object[] {stepMillisStr, DEFAULT_STEP});
}
}
step = parsedStep;

String namespaceValue = config.getString("applicationinsights.internal.micrometer.namespace");
// Fallback to system property if not found in declarative config
if (namespaceValue == null) {
namespaceValue = System.getProperty("applicationinsights.internal.micrometer.namespace");
}
namespace = namespaceValue;
}

@Override
Expand Down
6 changes: 3 additions & 3 deletions dependencyManagement/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ data class DependencySet(val group: String, val version: String, val modules: Li
val dependencyVersions = hashMapOf<String, String>()
rootProject.extra["versions"] = dependencyVersions

val otelSdkVersion = "1.55.0"
val otelInstrumentationAlphaVersion = "2.21.0-alpha"
val otelInstrumentationVersion = "2.21.0"
val otelSdkVersion = "1.58.0"
val otelInstrumentationAlphaVersion = "2.24.0-alpha"
val otelInstrumentationVersion = "2.24.0"
val otelContribVersion = "1.48.0"

rootProject.extra["otelInstrumentationVersion"] = otelInstrumentationVersion
Expand Down
Loading