Skip to content

Commit

Permalink
Update to otel-java-instrumentation 1.0.0 (#124)
Browse files Browse the repository at this point in the history
* Update to otel-java-instrumentation 0.17.0

* Improve assertions

* Update to otel-java-instrumentation 1.0.0

* snapshots

* spotless
  • Loading branch information
Mateusz Rzeszutek authored Mar 8, 2021
1 parent e2d715d commit 9f83ee6
Show file tree
Hide file tree
Showing 25 changed files with 98 additions and 113 deletions.
11 changes: 6 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ group = "com.splunk.public"
boolean snapshot = getProperty("snapshot") == 'yes'

def versions = [
'opentelemetry' : snapshot ? "0.17.0-SNAPSHOT" : "0.16.0",
'opentelemetryAlpha' : snapshot ? "0.17.0-alpha-SNAPSHOT" : "0.16.0-alpha",
'opentelemetryJavaagent': snapshot ? "0.17.0-SNAPSHOT" : '0.16.1',
'mockito' : '3.8.0',
'jupiter' : '5.7.1'
'opentelemetry' : snapshot ? "1.1.0-SNAPSHOT" : "1.0.0",
'opentelemetryAlpha' : snapshot ? "1.1.0-alpha-SNAPSHOT" : "1.0.0-alpha",
'opentelemetryJavaagent' : snapshot ? "1.1.0-SNAPSHOT" : '1.0.0',
'opentelemetryJavaagentAlpha': snapshot ? "1.1.0-alpha-SNAPSHOT" : '1.0.0-alpha',
'mockito' : '3.8.0',
'jupiter' : '5.7.1'
]

subprojects {
Expand Down
4 changes: 2 additions & 2 deletions custom/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ dependencies {
compileOnly(project(":bootstrap"))
implementation("io.opentelemetry:opentelemetry-sdk:${versions["opentelemetry"]}")
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${versions.opentelemetryAlpha}")
implementation("io.opentelemetry:opentelemetry-exporter-jaeger-thrift:${versions["opentelemetry"]}")
implementation("io.opentelemetry.javaagent:opentelemetry-javaagent-spi:${versions["opentelemetryJavaagent"]}")
implementation("io.opentelemetry:opentelemetry-exporter-jaeger-thrift:${versions.opentelemetry}")
implementation("io.opentelemetry.javaagent:opentelemetry-javaagent-spi:${versions.opentelemetryJavaagentAlpha}")
implementation("io.jaegertracing:jaeger-client:1.5.0")
annotationProcessor("com.google.auto.service:auto-service:1.0-rc7")
annotationProcessor("com.google.auto:auto-common:0.8")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ public void configure(SdkTracerProviderBuilder tracerProvider) {
.setMaxNumberOfLinks(1000)
.setMaxNumberOfAttributesPerEvent(Integer.MAX_VALUE)
.setMaxNumberOfAttributesPerLink(Integer.MAX_VALUE)
.setMaxLengthOfAttributeValues(SpanLimits.UNLIMITED_ATTRIBUTE_LENGTH)
.build());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import io.opentelemetry.api.common.AttributeType;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.javaagent.spi.ComponentInstaller;
import io.opentelemetry.sdk.resources.Resource;
import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;

/**
* This component exposes String resource attributes as system properties with <code>otel.resource.
Expand All @@ -36,7 +36,7 @@ public void beforeByteBuddyAgent() {}

@Override
public void afterByteBuddyAgent() {
Attributes attributes = Resource.getDefault().getAttributes();
Attributes attributes = OpenTelemetrySdkAutoConfiguration.getResource().getAttributes();
attributes.forEach(
(k, v) -> {
if (k.getType() == AttributeType.STRING) {
Expand Down
19 changes: 11 additions & 8 deletions gradle/instrumentation.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ configurations {

dependencies {
compileOnly("io.opentelemetry:opentelemetry-sdk:${versions.opentelemetry}")
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:${versions.opentelemetryJavaagent}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:${versions.opentelemetryJavaagent}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-api:${versions.opentelemetryJavaagent}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-spi:${versions.opentelemetryJavaagent}")
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:${versions.opentelemetryJavaagentAlpha}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:${versions.opentelemetryJavaagentAlpha}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-api:${versions.opentelemetryJavaagentAlpha}")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-spi:${versions.opentelemetryJavaagentAlpha}")
compileOnly("net.bytebuddy:byte-buddy:1.10.10")
annotationProcessor("com.google.auto.service:auto-service:1.0-rc3")
annotationProcessor("com.google.auto:auto-common:0.8")
Expand All @@ -24,8 +24,8 @@ dependencies {
compileOnly(project(":bootstrap"))

// test
testAgent("io.opentelemetry.javaagent:opentelemetry-agent-for-testing:${versions.opentelemetryJavaagent}")
testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagent}")
testAgent("io.opentelemetry.javaagent:opentelemetry-agent-for-testing:${versions.opentelemetryJavaagentAlpha}")
testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagentAlpha}")
}

shadowJar {
Expand All @@ -40,8 +40,11 @@ shadowJar {
tasks.withType(Test).configureEach {
jvmArgs "-Dotel.javaagent.debug=true"
jvmArgs "-javaagent:${configurations.testAgent.files.first().absolutePath}"
jvmArgs "-Dotel.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}"
jvmArgs "-Dinternal.testing.disable.global.library.ignores=true"
jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}"
jvmArgs "-Dotel.javaagent.testing.additional-library-ignores.enabled=false"
jvmArgs "-Dotel.javaagent.testing.fail-on-context-leak=true"
// prevent sporadic gradle deadlocks, see SafeLogger for more details
jvmArgs "-Dotel.javaagent.testing.transform-safe-logging.enabled=true"

dependsOn shadowJar

Expand Down
4 changes: 2 additions & 2 deletions instrumentation/common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ plugins {
}

dependencies {
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:${versions.opentelemetryJavaagent}")
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:${versions.opentelemetryJavaagentAlpha}")
compileOnly("io.opentelemetry:opentelemetry-api:${versions.opentelemetry}")

testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagent}")
testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagentAlpha}")
}

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
import io.opentelemetry.context.propagation.TextMapSetter;
import io.opentelemetry.instrumentation.api.config.Config;
import java.util.HashMap;
import java.util.Map;
Expand All @@ -36,7 +36,7 @@ public static boolean shouldEmitServerTimingHeader() {
return Config.get().getBooleanProperty("splunk.context.server-timing.enabled", false);
}

public static <RS> void setHeaders(Context context, RS response, Setter<RS> headerSetter) {
public static <RS> void setHeaders(Context context, RS response, TextMapSetter<RS> headerSetter) {
if (!Span.fromContext(context).getSpanContext().isValid()) {
return;
}
Expand Down
8 changes: 4 additions & 4 deletions instrumentation/netty-3.8/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ apply from: "$rootDir/gradle/instrumentation.gradle"

dependencies {
compileOnly group: 'io.netty', name: 'netty', version: '3.8.0.Final'
compileOnly group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagent
compileOnly group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagentAlpha

implementation project(':instrumentation:common')

testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.1', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.1', version: versions.opentelemetryJavaagentAlpha
testInstrumentation project(':instrumentation:netty-4.0')

testImplementation group: 'io.netty', name: 'netty', version: '3.8.0.Final'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import com.splunk.opentelemetry.servertiming.ServerTimingHeader;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
import io.opentelemetry.context.propagation.TextMapSetter;
import io.opentelemetry.javaagent.instrumentation.api.ContextStore;
import io.opentelemetry.javaagent.instrumentation.netty.v3_8.ChannelTraceContext;
import org.jboss.netty.channel.Channel;
Expand Down Expand Up @@ -53,7 +53,7 @@ public void writeRequested(ChannelHandlerContext ctx, MessageEvent msg) {
ctx.sendDownstream(msg);
}

public static final class HeadersSetter implements Setter<HttpHeaders> {
public static final class HeadersSetter implements TextMapSetter<HttpHeaders> {
private static final HeadersSetter INSTANCE = new HeadersSetter();

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
import static org.junit.jupiter.api.Assertions.assertTrue;

import com.splunk.opentelemetry.servertiming.ServerTimingHeader;
import io.opentelemetry.instrumentation.test.InMemoryExporter;
import io.opentelemetry.instrumentation.test.utils.OkHttpUtils;
import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeoutException;
import okhttp3.HttpUrl;
Expand All @@ -50,14 +50,17 @@
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

class NettyInstrumentationTest {
@RegisterExtension
static final AgentInstrumentationExtension instrumentation =
AgentInstrumentationExtension.create();

private static final OkHttpClient httpClient = OkHttpUtils.client();
static final OkHttpClient httpClient = OkHttpUtils.client();

private static int port;
private static ServerBootstrap server;
private static final InMemoryExporter exporter = new InMemoryExporter();
static int port;
static ServerBootstrap server;

@BeforeAll
static void startServer() {
Expand Down Expand Up @@ -125,9 +128,7 @@ private static void assertHeaders(Response response, String serverTimingHeader)

private static void assertServerTimingHeaderContainsTraceId(String serverTimingHeader)
throws InterruptedException, TimeoutException {
exporter.waitForTraces(1);

var traces = exporter.getTraces();
var traces = instrumentation.waitForTraces(1);
assertEquals(1, traces.size());

var spans = traces.get(0);
Expand Down
8 changes: 4 additions & 4 deletions instrumentation/netty-4.0/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ apply from: "$rootDir/gradle/instrumentation.gradle"

dependencies {
compileOnly group: 'io.netty', name: 'netty-codec-http', version: '4.0.0.Final'
compileOnly group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagent
compileOnly group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagentAlpha

implementation project(':instrumentation:common')

testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.1', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-3.8', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.0', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-netty-4.1', version: versions.opentelemetryJavaagentAlpha
testInstrumentation project(':instrumentation:netty-3.8')

testImplementation group: 'io.netty', name: 'netty-codec-http', version: '4.0.0.Final'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpResponse;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.context.propagation.TextMapSetter;

public class ServerTimingHandler extends ChannelOutboundHandlerAdapter {
@Override
Expand All @@ -41,7 +41,7 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) {
ctx.write(msg, prm);
}

public static final class HeadersSetter implements TextMapPropagator.Setter<HttpHeaders> {
public static final class HeadersSetter implements TextMapSetter<HttpHeaders> {
private static final HeadersSetter INSTANCE = new HeadersSetter();

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@
import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpServerCodec;
import io.opentelemetry.instrumentation.test.InMemoryExporter;
import io.opentelemetry.instrumentation.test.utils.OkHttpUtils;
import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import java.util.concurrent.TimeoutException;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
Expand All @@ -50,13 +50,17 @@
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

public class NettyInstrumentationTest {
private static final OkHttpClient httpClient = OkHttpUtils.client();
@RegisterExtension
static final AgentInstrumentationExtension instrumentation =
AgentInstrumentationExtension.create();

private static int port;
private static EventLoopGroup server;
private static final InMemoryExporter exporter = new InMemoryExporter();
static final OkHttpClient httpClient = OkHttpUtils.client();

static int port;
static EventLoopGroup server;

@BeforeAll
static void startServer() throws InterruptedException {
Expand Down Expand Up @@ -120,9 +124,7 @@ private static void assertHeaders(Response response, String serverTimingHeader)

private static void assertServerTimingHeaderContainsTraceId(String serverTimingHeader)
throws InterruptedException, TimeoutException {
exporter.waitForTraces(1);

var traces = exporter.getTraces();
var traces = instrumentation.waitForTraces(1);
assertEquals(1, traces.size());

var spans = traces.get(0);
Expand Down
8 changes: 4 additions & 4 deletions instrumentation/servlet-3-testing/build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
apply from: "$rootDir/gradle/instrumentation.gradle"

dependencies {
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-common', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-2.2', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-3.0', version: versions.opentelemetryJavaagent
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-common', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-2.2', version: versions.opentelemetryJavaagentAlpha
testInstrumentation group: 'io.opentelemetry.javaagent.instrumentation', name: 'opentelemetry-javaagent-servlet-3.0', version: versions.opentelemetryJavaagentAlpha
testInstrumentation project(':instrumentation:servlet')

testImplementation project(':instrumentation:common')
testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagent}") {
testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common:${versions.opentelemetryJavaagentAlpha}") {
exclude group: 'org.eclipse.jetty', module: 'jetty-server'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
import static org.junit.jupiter.api.Assertions.assertTrue;

import com.splunk.opentelemetry.servertiming.ServerTimingHeader;
import io.opentelemetry.instrumentation.test.InMemoryExporter;
import io.opentelemetry.instrumentation.test.utils.OkHttpUtils;
import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import java.io.IOException;
import java.io.Writer;
import java.util.EnumSet;
Expand All @@ -45,17 +45,19 @@
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

class Servlet3InstrumentationTest {
@RegisterExtension
static final AgentInstrumentationExtension instrumentation =
AgentInstrumentationExtension.create();

private static final OkHttpClient httpClient = OkHttpUtils.client();
static final OkHttpClient httpClient = OkHttpUtils.client();

private static int port;
private static Server server;
private static final InMemoryExporter exporter = new InMemoryExporter();
static int port;
static Server server;

@BeforeAll
static void startServer() throws Exception {
Expand All @@ -80,11 +82,6 @@ static void stopServer() throws Exception {
server.destroy();
}

@AfterEach
void clearTraces() {
exporter.clear();
}

@Test
void shouldHttpServletAddServerTimingHeader() throws Exception {
// given
Expand Down Expand Up @@ -135,9 +132,7 @@ private static void assertHeaders(Response response, String serverTimingHeader)

private static void assertServerTimingHeaderContainsTraceId(String serverTimingHeader)
throws InterruptedException, TimeoutException {
exporter.waitForTraces(1);

var traces = exporter.getTraces();
var traces = instrumentation.waitForTraces(1);
assertEquals(1, traces.size());

var spans = traces.get(0);
Expand Down
Loading

0 comments on commit 9f83ee6

Please sign in to comment.