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
3 changes: 3 additions & 0 deletions .fossa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,9 @@ targets:
- type: gradle
path: ./
target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent'
- type: gradle
path: ./
target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent'
- type: gradle
path: ./
target: ':instrumentation:pekko:pekko-actor-1.0:javaagent'
Expand Down
2 changes: 1 addition & 1 deletion dependencyManagement/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
data class DependencySet(val group: String, val version: String, val modules: List<String>)

// this line is managed by .github/scripts/update-sdk-version.sh
val otelSdkVersion = "1.51.0"
val otelSdkVersion = "1.52.0"
val otelContribVersion = "1.47.0-alpha"
val otelSdkAlphaVersion = otelSdkVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1")

Expand Down
2 changes: 1 addition & 1 deletion examples/distro/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ subprojects {
ext {
versions = [
// this line is managed by .github/scripts/update-sdk-version.sh
opentelemetrySdk : "1.51.0",
opentelemetrySdk : "1.52.0",

// these lines are managed by .github/scripts/update-version.sh
opentelemetryJavaagent : "2.18.0-SNAPSHOT",
Expand Down
2 changes: 1 addition & 1 deletion examples/extension/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ version '1.0'
ext {
versions = [
// this line is managed by .github/scripts/update-sdk-version.sh
opentelemetrySdk : "1.51.0",
opentelemetrySdk : "1.52.0",

// these lines are managed by .github/scripts/update-version.sh
opentelemetryJavaagent : "2.18.0-SNAPSHOT",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,16 @@ private static ApplicationMeterFactory getMeterFactory(String className) {
}

private static ApplicationLoggerFactory getLoggerFactory() {
// this class is defined in opentelemetry-api-1.50
// this class is defined in opentelemetry-api-1.52
ApplicationLoggerFactory loggerFactory =
getLoggerFactory(
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLoggerFactory150Incubator");
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory150Incubator");
// this class is defined in opentelemetry-api-1.50
if (loggerFactory == null) {
loggerFactory =
getLoggerFactory(
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLoggerFactory150Incubator");
}
if (loggerFactory == null) {
// this class is defined in opentelemetry-api-1.50
loggerFactory =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_40.incubator.logs;

import application.io.opentelemetry.api.incubator.logs.ExtendedLogger;
import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger;

public class ApplicationLogger140Incubator extends ApplicationLogger implements ExtendedLogger {
Expand All @@ -19,6 +20,7 @@ protected ApplicationLogger140Incubator(io.opentelemetry.api.logs.Logger agentLo

@Override
public boolean isEnabled() {
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled();
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger)
.isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import application.io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder;
import application.io.opentelemetry.api.incubator.logs.ExtendedLogger;
import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger;

class ApplicationLogger147Incubator extends ApplicationLogger implements ExtendedLogger {
Expand All @@ -20,7 +21,8 @@ class ApplicationLogger147Incubator extends ApplicationLogger implements Extende

@Override
public boolean isEnabled() {
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled();
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger)
.isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ dependencies {
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
}

configurations.configureEach {
if (name.endsWith("testRuntimeClasspath", true) || name.endsWith("testCompileClasspath", true)) {
resolutionStrategy {
force("io.opentelemetry:opentelemetry-api:1.50.0")
force("io.opentelemetry:opentelemetry-api-incubator:1.50.0-alpha")
}
}
}

testing {
suites {
val incubatorTest by registering(JvmTestSuite::class) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import application.io.opentelemetry.context.Context;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.LogBridging;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.logs.ApplicationLogRecordBuilder150;
import java.time.Instant;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -76,7 +77,7 @@ public ExtendedLogRecordBuilder setContext(Context applicationContext) {

@Override
public ExtendedLogRecordBuilder setSeverity(Severity severity) {
agentLogRecordBuilder.setSeverity(convertSeverity(severity));
agentLogRecordBuilder.setSeverity(LogBridging.toAgent(severity));
return this;
}

Expand Down Expand Up @@ -135,66 +136,6 @@ public ExtendedLogRecordBuilder setException(Throwable throwable) {
return this;
}

private static io.opentelemetry.api.logs.Severity convertSeverity(Severity applicationSeverity) {
if (applicationSeverity == null) {
return null;
}
switch (applicationSeverity) {
case UNDEFINED_SEVERITY_NUMBER:
return io.opentelemetry.api.logs.Severity.UNDEFINED_SEVERITY_NUMBER;
case TRACE:
return io.opentelemetry.api.logs.Severity.TRACE;
case TRACE2:
return io.opentelemetry.api.logs.Severity.TRACE2;
case TRACE3:
return io.opentelemetry.api.logs.Severity.TRACE3;
case TRACE4:
return io.opentelemetry.api.logs.Severity.TRACE4;
case DEBUG:
return io.opentelemetry.api.logs.Severity.DEBUG;
case DEBUG2:
return io.opentelemetry.api.logs.Severity.DEBUG2;
case DEBUG3:
return io.opentelemetry.api.logs.Severity.DEBUG3;
case DEBUG4:
return io.opentelemetry.api.logs.Severity.DEBUG4;
case INFO:
return io.opentelemetry.api.logs.Severity.INFO;
case INFO2:
return io.opentelemetry.api.logs.Severity.INFO2;
case INFO3:
return io.opentelemetry.api.logs.Severity.INFO3;
case INFO4:
return io.opentelemetry.api.logs.Severity.INFO4;
case WARN:
return io.opentelemetry.api.logs.Severity.WARN;
case WARN2:
return io.opentelemetry.api.logs.Severity.WARN2;
case WARN3:
return io.opentelemetry.api.logs.Severity.WARN3;
case WARN4:
return io.opentelemetry.api.logs.Severity.WARN4;
case ERROR:
return io.opentelemetry.api.logs.Severity.ERROR;
case ERROR2:
return io.opentelemetry.api.logs.Severity.ERROR2;
case ERROR3:
return io.opentelemetry.api.logs.Severity.ERROR3;
case ERROR4:
return io.opentelemetry.api.logs.Severity.ERROR4;
case FATAL:
return io.opentelemetry.api.logs.Severity.FATAL;
case FATAL2:
return io.opentelemetry.api.logs.Severity.FATAL2;
case FATAL3:
return io.opentelemetry.api.logs.Severity.FATAL3;
case FATAL4:
return io.opentelemetry.api.logs.Severity.FATAL4;
}

throw new IllegalStateException("Unhandled severity: " + applicationSeverity.name());
}

@SuppressWarnings({"unchecked", "rawtypes"})
private static io.opentelemetry.api.incubator.common.ExtendedAttributes convertExtendedAttributes(
ExtendedAttributes applicationAttributes) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,22 @@

import application.io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder;
import application.io.opentelemetry.api.incubator.logs.ExtendedLogger;
import io.opentelemetry.api.logs.Severity;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger;

class ApplicationLogger150Incubator extends ApplicationLogger implements ExtendedLogger {
public class ApplicationLogger150Incubator extends ApplicationLogger implements ExtendedLogger {

private final io.opentelemetry.api.logs.Logger agentLogger;

ApplicationLogger150Incubator(io.opentelemetry.api.logs.Logger agentLogger) {
public ApplicationLogger150Incubator(io.opentelemetry.api.logs.Logger agentLogger) {
super(agentLogger);
this.agentLogger = agentLogger;
}

@Override
public boolean isEnabled() {
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled();
return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger)
.isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import io.opentelemetry.api.trace.TraceState;
import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import io.opentelemetry.sdk.logs.data.internal.ExtendedLogRecordData;
import io.opentelemetry.sdk.trace.IdGenerator;
import java.time.Instant;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -81,8 +80,7 @@ void logRecordBuilder() {
logRecordData -> {
assertThat(logRecordData.getInstrumentationScopeInfo().getName())
.isEqualTo(instrumentationName);
assertThat(((ExtendedLogRecordData) logRecordData).getEventName())
.isEqualTo("eventName");
assertThat(logRecordData.getEventName()).isEqualTo("eventName");
assertThat(logRecordData.getInstrumentationScopeInfo().getVersion())
.isEqualTo("1.2.3");
assertThat(logRecordData.getTimestampEpochNanos()).isGreaterThan(0);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
plugins {
id("otel.javaagent-instrumentation")
}

dependencies {
compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_52"))
compileOnly("io.opentelemetry:opentelemetry-api-incubator")

implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent"))
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent"))
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent"))
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent"))
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent"))
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent"))

testImplementation("io.opentelemetry:opentelemetry-api-incubator")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator;

import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
import static java.util.Collections.singletonList;

import com.google.auto.service.AutoService;
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
import java.util.List;
import net.bytebuddy.matcher.ElementMatcher;

@AutoService(InstrumentationModule.class)
public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule
implements ExperimentalInstrumentationModule {
public OpenTelemetryApiIncubatorInstrumentationModule() {
super("opentelemetry-api", "opentelemetry-api-1.52", "opentelemetry-api-incubator-1.52");
}

@Override
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
return hasClassesNamed(
"application.io.opentelemetry.api.common.Value",
"application.io.opentelemetry.api.incubator.common.ExtendedAttributes");
}

@Override
public List<TypeInstrumentation> typeInstrumentations() {
return singletonList(new OpenTelemetryIncubatorInstrumentation());
}

@Override
public String getModuleGroup() {
return "opentelemetry-api-bridge";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator;

import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.none;

import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory152Incubator;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;

public class OpenTelemetryIncubatorInstrumentation implements TypeInstrumentation {

@Override
public ElementMatcher<TypeDescription> typeMatcher() {
return named("application.io.opentelemetry.api.GlobalOpenTelemetry");
}

@Override
public void transform(TypeTransformer transformer) {
transformer.applyAdviceToMethod(
none(), OpenTelemetryIncubatorInstrumentation.class.getName() + "$InitAdvice");
}

@SuppressWarnings({"ReturnValueIgnored", "unused"})
public static class InitAdvice {
@Advice.OnMethodEnter
public static void init() {
// the sole purpose of this advice is to ensure that ApplicationLoggerFactory152Incubator is
// recognized as helper class and injected into class loader
ApplicationLoggerFactory152Incubator.class.getName();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs;

import application.io.opentelemetry.api.incubator.logs.ExtendedLogger;
import application.io.opentelemetry.api.logs.Severity;
import application.io.opentelemetry.context.Context;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.LogBridging;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLogger150Incubator;

@SuppressWarnings("deprecation") // isEnabled() in ExtendedLogger has been deprecated
Copy link
Member

Choose a reason for hiding this comment

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

I don't see the no-arg isEnabled() used here?

Copy link
Contributor

Choose a reason for hiding this comment

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

It isn't used but errorprone produces the warning nevertheless

../opentelemetry-java-instrumentation/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLogger152Incubator.java:15: warning: [deprecation] isEnabled() in ExtendedLogger has been deprecated
class ApplicationLogger152Incubator extends ApplicationLogger150Incubator
^
1 error
1 warning

perhaps it sees that it is implemented in the super class? If we add

  @Override
  public boolean isEnabled() {
    return agentLogger.isEnabled(io.opentelemetry.api.logs.Severity.UNDEFINED_SEVERITY_NUMBER);
  }

to this class then we could put the @SuppressWarnings("deprecation") only on that method

Copy link
Member

Choose a reason for hiding this comment

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

ah, no worries, looks good as-is

class ApplicationLogger152Incubator extends ApplicationLogger150Incubator
implements ExtendedLogger {

private final io.opentelemetry.api.incubator.logs.ExtendedLogger agentLogger;

ApplicationLogger152Incubator(io.opentelemetry.api.logs.Logger agentLogger) {
super(agentLogger);
this.agentLogger = (io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger;
}

@Override
public boolean isEnabled(Severity severity, Context applicationContext) {
return agentLogger.isEnabled(
LogBridging.toAgent(severity), AgentContextStorage.getAgentContext(applicationContext));
}

@Override
public boolean isEnabled(Severity severity) {
return agentLogger.isEnabled(LogBridging.toAgent(severity));
}
}
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.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs;

import io.opentelemetry.api.logs.Logger;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger;
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLoggerFactory;

// this class is used from opentelemetry-api-1.27.0 via reflection
public class ApplicationLoggerFactory152Incubator implements ApplicationLoggerFactory {

@Override
public ApplicationLogger newLogger(Logger agentLogger) {
return new ApplicationLogger152Incubator(agentLogger);
}
}
Loading
Loading