Group Elasticsearch instrumentation into common folder
Also migrate to decorator.
This commit is contained in:
parent
0f55c9f951
commit
db47fde8d1
|
@ -0,0 +1,7 @@
|
|||
apply from: "${rootDir}/gradle/java.gradle"
|
||||
|
||||
dependencies {
|
||||
compileOnly group: 'org.elasticsearch.client', name: 'rest', version: '5.0.0'
|
||||
compileOnly group: 'org.elasticsearch', name: 'elasticsearch', version: '2.0.0'
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
}
|
|
@ -30,6 +30,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch.client', name: 'rest', version: '5.0.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
|
@ -88,6 +88,7 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
|
|||
parent()
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.HTTP_METHOD.key" "GET"
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -11,13 +11,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -34,7 +30,13 @@ public class Elasticsearch5RestClientInstrumentation extends Instrumenter.Defaul
|
|||
|
||||
@Override
|
||||
public String[] helperClassNames() {
|
||||
return new String[] {"datadog.trace.instrumentation.elasticsearch5.RestResponseListener"};
|
||||
return new String[] {
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator",
|
||||
packageName + ".RestResponseListener",
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -63,15 +65,9 @@ public class Elasticsearch5RestClientInstrumentation extends Instrumenter.Defaul
|
|||
@Advice.Argument(value = 5, readOnly = false) ResponseListener responseListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.rest.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.HTTP_METHOD.getKey(), method)
|
||||
.withTag(Tags.HTTP_URL.getKey(), endpoint)
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.startActive(false);
|
||||
GlobalTracer.get().buildSpan("elasticsearch.rest.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), method, endpoint);
|
||||
|
||||
responseListener = new RestResponseListener(responseListener, scope.span());
|
||||
return scope;
|
||||
|
@ -82,8 +78,8 @@ public class Elasticsearch5RestClientInstrumentation extends Instrumenter.Defaul
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,10 +1,8 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator.DECORATE;
|
||||
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.client.Response;
|
||||
import org.elasticsearch.client.ResponseListener;
|
||||
|
||||
|
@ -21,24 +19,25 @@ public class RestResponseListener implements ResponseListener {
|
|||
@Override
|
||||
public void onSuccess(final Response response) {
|
||||
if (response.getHost() != null) {
|
||||
Tags.PEER_HOSTNAME.set(span, response.getHost().getHostName());
|
||||
Tags.PEER_PORT.set(span, response.getHost().getPort());
|
||||
DECORATE.onResponse(span, response);
|
||||
}
|
||||
|
||||
try {
|
||||
listener.onSuccess(response);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Exception e) {
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
|
@ -93,6 +93,7 @@ class Elasticsearch5RestClientTest extends AgentTestRunner {
|
|||
parent()
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.HTTP_METHOD.key" "GET"
|
|
@ -31,6 +31,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client', version: '6.4.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
|
@ -92,6 +92,7 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
|
|||
parent()
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.HTTP_METHOD.key" "GET"
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch6_4;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -11,13 +11,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -35,7 +31,13 @@ public class Elasticsearch6RestClientInstrumentation extends Instrumenter.Defaul
|
|||
|
||||
@Override
|
||||
public String[] helperClassNames() {
|
||||
return new String[] {"datadog.trace.instrumentation.elasticsearch6_4.RestResponseListener"};
|
||||
return new String[] {
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator",
|
||||
packageName + ".RestResponseListener",
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -62,15 +64,9 @@ public class Elasticsearch6RestClientInstrumentation extends Instrumenter.Defaul
|
|||
@Advice.Argument(value = 1, readOnly = false) ResponseListener responseListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.rest.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.HTTP_METHOD.getKey(), request.getMethod())
|
||||
.withTag(Tags.HTTP_URL.getKey(), request.getEndpoint())
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.startActive(false);
|
||||
GlobalTracer.get().buildSpan("elasticsearch.rest.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), request.getMethod(), request.getEndpoint());
|
||||
|
||||
responseListener = new RestResponseListener(responseListener, scope.span());
|
||||
return scope;
|
||||
|
@ -81,8 +77,8 @@ public class Elasticsearch6RestClientInstrumentation extends Instrumenter.Defaul
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,10 +1,7 @@
|
|||
package datadog.trace.instrumentation.elasticsearch6_4;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
|
||||
import datadog.trace.instrumentation.elasticsearch.ElasticsearchRestClientDecorator;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.client.Response;
|
||||
import org.elasticsearch.client.ResponseListener;
|
||||
|
||||
|
@ -21,24 +18,25 @@ public class RestResponseListener implements ResponseListener {
|
|||
@Override
|
||||
public void onSuccess(final Response response) {
|
||||
if (response.getHost() != null) {
|
||||
Tags.PEER_HOSTNAME.set(span, response.getHost().getHostName());
|
||||
Tags.PEER_PORT.set(span, response.getHost().getPort());
|
||||
ElasticsearchRestClientDecorator.DECORATE.onResponse(span, response);
|
||||
}
|
||||
|
||||
try {
|
||||
listener.onSuccess(response);
|
||||
} finally {
|
||||
ElasticsearchRestClientDecorator.DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Exception e) {
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
ElasticsearchRestClientDecorator.DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
||||
} finally {
|
||||
ElasticsearchRestClientDecorator.DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
|
@ -88,6 +88,7 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
|
|||
parent()
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.HTTP_METHOD.key" "GET"
|
|
@ -0,0 +1,61 @@
|
|||
package datadog.trace.instrumentation.elasticsearch;
|
||||
|
||||
import datadog.trace.agent.decorator.DatabaseClientDecorator;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import org.elasticsearch.client.Response;
|
||||
|
||||
public class ElasticsearchRestClientDecorator extends DatabaseClientDecorator {
|
||||
public static final ElasticsearchRestClientDecorator DECORATE =
|
||||
new ElasticsearchRestClientDecorator();
|
||||
|
||||
@Override
|
||||
protected String[] instrumentationNames() {
|
||||
return new String[] {"elasticsearch"};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String service() {
|
||||
return "elasticsearch";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String component() {
|
||||
return "elasticsearch-java";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String spanType() {
|
||||
return DDSpanTypes.ELASTICSEARCH;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbType() {
|
||||
return "elasticsearch";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbUser(final Object o) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbInstance(final Object o) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Span onRequest(final Span span, final String method, final String endpoint) {
|
||||
Tags.HTTP_METHOD.set(span, method);
|
||||
Tags.HTTP_URL.set(span, endpoint);
|
||||
return span;
|
||||
}
|
||||
|
||||
public Span onResponse(final Span span, final Response response) {
|
||||
if (response != null && response.getHost() != null) {
|
||||
Tags.PEER_HOSTNAME.set(span, response.getHost().getHostName());
|
||||
Tags.PEER_PORT.set(span, response.getHost().getPort());
|
||||
}
|
||||
return span;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package datadog.trace.instrumentation.elasticsearch;
|
||||
|
||||
import datadog.trace.agent.decorator.DatabaseClientDecorator;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Span;
|
||||
|
||||
public class ElasticsearchTransportClientDecorator extends DatabaseClientDecorator {
|
||||
public static final ElasticsearchTransportClientDecorator DECORATE =
|
||||
new ElasticsearchTransportClientDecorator();
|
||||
|
||||
@Override
|
||||
protected String[] instrumentationNames() {
|
||||
return new String[] {"elasticsearch"};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String service() {
|
||||
return "elasticsearch";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String component() {
|
||||
return "elasticsearch-java";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String spanType() {
|
||||
return DDSpanTypes.ELASTICSEARCH;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbType() {
|
||||
return "elasticsearch";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbUser(final Object o) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String dbInstance(final Object o) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Span onRequest(final Span span, final Class action, final Class request) {
|
||||
if (action != null) {
|
||||
span.setTag(DDTags.RESOURCE_NAME, action.getSimpleName());
|
||||
span.setTag("elasticsearch.action", action.getSimpleName());
|
||||
}
|
||||
if (request != null) {
|
||||
span.setTag("elasticsearch.request", request.getSimpleName());
|
||||
}
|
||||
return span;
|
||||
}
|
||||
}
|
|
@ -80,6 +80,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -109,6 +110,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -181,6 +183,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -198,6 +201,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -214,6 +218,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -234,6 +239,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -251,6 +257,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -269,6 +276,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
|
@ -91,6 +91,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -123,6 +124,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -195,6 +197,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -215,6 +218,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -234,6 +238,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -257,6 +262,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -274,6 +280,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -295,6 +302,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
|
@ -46,6 +46,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
errored false
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -78,6 +79,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -95,6 +97,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -123,6 +126,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -154,6 +158,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -171,6 +176,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -191,6 +197,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -221,6 +228,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "DeleteAction"
|
||||
|
@ -238,6 +246,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -258,6 +267,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -86,6 +86,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -149,6 +150,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -166,6 +168,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -182,6 +185,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -200,6 +204,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -217,6 +222,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -235,6 +241,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -255,6 +262,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -338,6 +346,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
operationName "elasticsearch.query"
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch2;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -10,13 +10,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -49,7 +45,11 @@ public class Elasticsearch2TransportClientInstrumentation extends Instrumenter.D
|
|||
"com.google.common.base.Joiner$1",
|
||||
"com.google.common.base.Joiner$2",
|
||||
"com.google.common.base.Joiner$MapJoiner",
|
||||
"datadog.trace.instrumentation.elasticsearch2.TransportActionListener"
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator",
|
||||
packageName + ".TransportActionListener",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -73,17 +73,9 @@ public class Elasticsearch2TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Argument(value = 2, readOnly = false)
|
||||
ActionListener<ActionResponse> actionListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.RESOURCE_NAME, action.getClass().getSimpleName())
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.withTag("elasticsearch.action", action.getClass().getSimpleName())
|
||||
.withTag("elasticsearch.request", actionRequest.getClass().getSimpleName())
|
||||
.startActive(false);
|
||||
final Scope scope = GlobalTracer.get().buildSpan("elasticsearch.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), action.getClass(), actionRequest.getClass());
|
||||
|
||||
actionListener = new TransportActionListener<>(actionRequest, actionListener, scope.span());
|
||||
return scope;
|
||||
|
@ -94,8 +86,8 @@ public class Elasticsearch2TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,11 +1,10 @@
|
|||
package datadog.trace.instrumentation.elasticsearch2;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
import org.elasticsearch.action.ActionResponse;
|
||||
|
@ -86,18 +85,19 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
try {
|
||||
listener.onResponse(response);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Throwable e) {
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
|
@ -80,6 +80,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -109,6 +110,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -181,6 +183,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -198,6 +201,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -214,6 +218,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -237,6 +242,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -254,6 +260,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -275,6 +282,7 @@ class Elasticsearch2NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
|
@ -91,6 +91,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "127.0.0.1"
|
||||
|
@ -123,6 +124,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -195,6 +197,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -215,6 +218,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -234,6 +238,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "127.0.0.1"
|
||||
|
@ -257,6 +262,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -274,6 +280,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "127.0.0.1"
|
||||
|
@ -295,6 +302,7 @@ class Elasticsearch2TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "127.0.0.1"
|
|
@ -46,6 +46,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
errored false
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -78,6 +79,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -98,6 +100,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -126,6 +129,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -160,6 +164,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -180,6 +185,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -200,6 +206,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -233,6 +240,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -253,6 +261,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -273,6 +282,7 @@ class Elasticsearch2SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -86,6 +86,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -149,6 +150,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -166,6 +168,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -182,6 +185,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -200,6 +204,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -217,6 +222,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "local"
|
||||
|
@ -238,6 +244,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -258,6 +265,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -338,6 +346,7 @@ class Elasticsearch2SpringTemplateTest extends AgentTestRunner {
|
|||
operationName "elasticsearch.query"
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -25,6 +25,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch', name: 'elasticsearch', version: '2.0.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
||||
|
@ -33,9 +34,8 @@ dependencies {
|
|||
|
||||
testCompile project(':dd-java-agent:testing')
|
||||
// Ensure no cross interference
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch-rest-5')
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch-transport-5')
|
||||
// TODO: add netty instrumentation when that is complete.
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch:rest-5')
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch:transport-5')
|
||||
|
||||
testCompile group: 'org.elasticsearch', name: 'elasticsearch', version: '2.0.0'
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5_3;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -10,13 +10,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -50,7 +46,11 @@ public class Elasticsearch53TransportClientInstrumentation extends Instrumenter.
|
|||
"com.google.common.base.Joiner$1",
|
||||
"com.google.common.base.Joiner$2",
|
||||
"com.google.common.base.Joiner$MapJoiner",
|
||||
"datadog.trace.instrumentation.elasticsearch5_3.TransportActionListener"
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator",
|
||||
packageName + ".TransportActionListener",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -74,17 +74,9 @@ public class Elasticsearch53TransportClientInstrumentation extends Instrumenter.
|
|||
@Advice.Argument(value = 2, readOnly = false)
|
||||
ActionListener<ActionResponse> actionListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.RESOURCE_NAME, action.getClass().getSimpleName())
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.withTag("elasticsearch.action", action.getClass().getSimpleName())
|
||||
.withTag("elasticsearch.request", actionRequest.getClass().getSimpleName())
|
||||
.startActive(false);
|
||||
final Scope scope = GlobalTracer.get().buildSpan("elasticsearch.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), action.getClass(), actionRequest.getClass());
|
||||
|
||||
actionListener = new TransportActionListener<>(actionRequest, actionListener, scope.span());
|
||||
return scope;
|
||||
|
@ -95,8 +87,8 @@ public class Elasticsearch53TransportClientInstrumentation extends Instrumenter.
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,11 +1,10 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5_3;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
import org.elasticsearch.action.ActionResponse;
|
||||
|
@ -101,18 +100,19 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
try {
|
||||
listener.onResponse(response);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Exception e) {
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
|
@ -86,6 +86,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -115,6 +116,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -188,6 +190,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -205,6 +208,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -221,6 +225,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -241,6 +246,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -257,6 +263,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -280,6 +287,7 @@ class Elasticsearch53NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
|
@ -98,6 +98,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -130,6 +131,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -202,6 +204,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -222,6 +225,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -245,6 +249,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -261,6 +266,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -287,6 +293,7 @@ class Elasticsearch53TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
|
@ -46,6 +46,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
errored false
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -78,6 +79,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -100,6 +102,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -128,6 +131,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -159,6 +163,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -181,6 +186,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -201,6 +207,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -231,6 +238,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "DeleteAction"
|
||||
|
@ -252,6 +260,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -272,6 +281,7 @@ class Elasticsearch53SpringRepositoryTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -106,6 +106,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -173,6 +174,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -190,6 +192,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -206,6 +209,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -224,6 +228,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -240,6 +245,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -263,6 +269,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "RefreshAction"
|
||||
|
@ -283,6 +290,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
||||
|
@ -366,6 +374,7 @@ class Elasticsearch53SpringTemplateTest extends AgentTestRunner {
|
|||
operationName "elasticsearch.query"
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "SearchAction"
|
|
@ -32,6 +32,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch.client', name: 'transport', version: '5.3.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
|
@ -86,6 +86,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -115,6 +116,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -188,6 +190,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -205,6 +208,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -221,6 +225,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -241,6 +246,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -257,6 +263,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -279,6 +286,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
|
@ -98,6 +98,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -130,6 +131,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -202,6 +204,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -222,6 +225,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -245,6 +249,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -261,6 +266,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -286,6 +292,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -10,13 +10,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -49,7 +45,11 @@ public class Elasticsearch5TransportClientInstrumentation extends Instrumenter.D
|
|||
"com.google.common.base.Joiner$1",
|
||||
"com.google.common.base.Joiner$2",
|
||||
"com.google.common.base.Joiner$MapJoiner",
|
||||
"datadog.trace.instrumentation.elasticsearch5.TransportActionListener"
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator",
|
||||
packageName + ".TransportActionListener",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -73,17 +73,9 @@ public class Elasticsearch5TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Argument(value = 2, readOnly = false)
|
||||
ActionListener<ActionResponse> actionListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.RESOURCE_NAME, action.getClass().getSimpleName())
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.withTag("elasticsearch.action", action.getClass().getSimpleName())
|
||||
.withTag("elasticsearch.request", actionRequest.getClass().getSimpleName())
|
||||
.startActive(false);
|
||||
final Scope scope = GlobalTracer.get().buildSpan("elasticsearch.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), action.getClass(), actionRequest.getClass());
|
||||
|
||||
actionListener = new TransportActionListener<>(actionRequest, actionListener, scope.span());
|
||||
return scope;
|
||||
|
@ -94,8 +86,8 @@ public class Elasticsearch5TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,11 +1,10 @@
|
|||
package datadog.trace.instrumentation.elasticsearch5;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
import org.elasticsearch.action.ActionResponse;
|
||||
|
@ -100,14 +99,14 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
try {
|
||||
listener.onResponse(response);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Exception e) {
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
|
@ -86,6 +86,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -115,6 +116,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -188,6 +190,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -205,6 +208,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -221,6 +225,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -241,6 +246,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -257,6 +263,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -279,6 +286,7 @@ class Elasticsearch5NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
|
@ -98,6 +98,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" String
|
||||
|
@ -130,6 +131,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -202,6 +204,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -222,6 +225,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" String
|
||||
|
@ -245,6 +249,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -261,6 +266,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" String
|
||||
|
@ -286,6 +292,7 @@ class Elasticsearch5TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" String
|
|
@ -32,6 +32,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch.client', name: 'transport', version: '5.0.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
||||
|
@ -40,7 +41,7 @@ dependencies {
|
|||
|
||||
testCompile project(':dd-java-agent:testing')
|
||||
// Ensure no cross interference
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch-rest-5')
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch:rest-5')
|
||||
// Include httpclient instrumentation for testing because it is a dependency for elasticsearch-rest-client.
|
||||
// It doesn't actually work though. They use HttpAsyncClient, which isn't currently instrumented.
|
||||
// TODO: add HttpAsyncClient instrumentation when that is complete.
|
|
@ -1,6 +1,6 @@
|
|||
package datadog.trace.instrumentation.elasticsearch6;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
|
||||
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
|
||||
|
@ -10,13 +10,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
|||
|
||||
import com.google.auto.service.AutoService;
|
||||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.api.DDSpanTypes;
|
||||
import datadog.trace.api.DDTags;
|
||||
import io.opentracing.Scope;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
@ -53,7 +49,11 @@ public class Elasticsearch6TransportClientInstrumentation extends Instrumenter.D
|
|||
"com.google.common.base.Joiner$1",
|
||||
"com.google.common.base.Joiner$2",
|
||||
"com.google.common.base.Joiner$MapJoiner",
|
||||
"datadog.trace.instrumentation.elasticsearch6.TransportActionListener"
|
||||
"datadog.trace.agent.decorator.BaseDecorator",
|
||||
"datadog.trace.agent.decorator.ClientDecorator",
|
||||
"datadog.trace.agent.decorator.DatabaseClientDecorator",
|
||||
"datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator",
|
||||
packageName + ".TransportActionListener",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -77,17 +77,9 @@ public class Elasticsearch6TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Argument(value = 2, readOnly = false)
|
||||
ActionListener<ActionResponse> actionListener) {
|
||||
|
||||
final Scope scope =
|
||||
GlobalTracer.get()
|
||||
.buildSpan("elasticsearch.query")
|
||||
.withTag(DDTags.SERVICE_NAME, "elasticsearch")
|
||||
.withTag(DDTags.RESOURCE_NAME, action.getClass().getSimpleName())
|
||||
.withTag(DDTags.SPAN_TYPE, DDSpanTypes.ELASTICSEARCH)
|
||||
.withTag(Tags.COMPONENT.getKey(), "elasticsearch-java")
|
||||
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
|
||||
.withTag("elasticsearch.action", action.getClass().getSimpleName())
|
||||
.withTag("elasticsearch.request", actionRequest.getClass().getSimpleName())
|
||||
.startActive(false);
|
||||
final Scope scope = GlobalTracer.get().buildSpan("elasticsearch.query").startActive(false);
|
||||
DECORATE.afterStart(scope.span());
|
||||
DECORATE.onRequest(scope.span(), action.getClass(), actionRequest.getClass());
|
||||
|
||||
actionListener = new TransportActionListener<>(actionRequest, actionListener, scope.span());
|
||||
return scope;
|
||||
|
@ -98,8 +90,8 @@ public class Elasticsearch6TransportClientInstrumentation extends Instrumenter.D
|
|||
@Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) {
|
||||
if (throwable != null) {
|
||||
final Span span = scope.span();
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, throwable));
|
||||
DECORATE.onError(span, throwable);
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
scope.close();
|
|
@ -1,11 +1,10 @@
|
|||
package datadog.trace.instrumentation.elasticsearch6;
|
||||
|
||||
import static io.opentracing.log.Fields.ERROR_OBJECT;
|
||||
import static datadog.trace.instrumentation.elasticsearch.ElasticsearchTransportClientDecorator.DECORATE;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import io.opentracing.Span;
|
||||
import io.opentracing.tag.Tags;
|
||||
import java.util.Collections;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
import org.elasticsearch.action.ActionResponse;
|
||||
|
@ -105,18 +104,19 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
try {
|
||||
listener.onResponse(response);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(final Exception e) {
|
||||
Tags.ERROR.set(span, true);
|
||||
span.log(Collections.singletonMap(ERROR_OBJECT, e));
|
||||
DECORATE.onError(span, e);
|
||||
|
||||
try {
|
||||
listener.onFailure(e);
|
||||
} finally {
|
||||
DECORATE.beforeFinish(span);
|
||||
span.finish();
|
||||
}
|
||||
}
|
|
@ -83,6 +83,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "ClusterHealthAction"
|
||||
|
@ -112,6 +113,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -184,6 +186,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "CreateIndexAction"
|
||||
|
@ -201,6 +204,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -221,6 +225,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -237,6 +242,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "IndexAction"
|
||||
|
@ -260,6 +266,7 @@ class Elasticsearch6NodeClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
|
@ -95,6 +95,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -127,6 +128,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
errored true
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "GetAction"
|
||||
|
@ -199,6 +201,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -219,6 +222,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -242,6 +246,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"elasticsearch.action" "PutMappingAction"
|
||||
|
@ -258,6 +263,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
||||
|
@ -284,6 +290,7 @@ class Elasticsearch6TransportClientTest extends AgentTestRunner {
|
|||
spanType DDSpanTypes.ELASTICSEARCH
|
||||
tags {
|
||||
"$Tags.COMPONENT.key" "elasticsearch-java"
|
||||
"$Tags.DB_TYPE.key" "elasticsearch"
|
||||
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT
|
||||
"$DDTags.SPAN_TYPE" DDSpanTypes.ELASTICSEARCH
|
||||
"$Tags.PEER_HOSTNAME.key" "localhost"
|
|
@ -32,6 +32,7 @@ dependencies {
|
|||
compileOnly group: 'org.elasticsearch.client', name: 'transport', version: '6.0.0'
|
||||
|
||||
compile project(':dd-java-agent:agent-tooling')
|
||||
compile project(':dd-java-agent:instrumentation:elasticsearch')
|
||||
|
||||
compile deps.bytebuddy
|
||||
compile deps.opentracing
|
||||
|
@ -40,12 +41,11 @@ dependencies {
|
|||
|
||||
testCompile project(':dd-java-agent:testing')
|
||||
// Ensure no cross interference
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch-rest-5')
|
||||
testCompile project(':dd-java-agent:instrumentation:elasticsearch:rest-5')
|
||||
// Include httpclient instrumentation for testing because it is a dependency for elasticsearch-rest-client.
|
||||
// It doesn't actually work though. They use HttpAsyncClient, which isn't currently instrumented.
|
||||
// TODO: add HttpAsyncClient instrumentation when that is complete.
|
||||
testCompile project(':dd-java-agent:instrumentation:apache-httpclient-4')
|
||||
// TODO: add netty instrumentation when that is complete.
|
||||
|
||||
testCompile group: 'org.elasticsearch.plugin', name: 'transport-netty4-client', version: '6.0.0'
|
||||
testCompile group: 'org.elasticsearch.client', name: 'transport', version: '6.0.0'
|
|
@ -22,8 +22,8 @@ public class DBTypeDecorator extends AbstractDecorator {
|
|||
|
||||
// Assign service name
|
||||
if (!super.shouldSetTag(context, tag, value)) {
|
||||
if ("couchbase".equals(value)) {
|
||||
// Couchbase instrumentation has different behavior.
|
||||
if ("couchbase".equals(value) || "elasticsearch".equals(value)) {
|
||||
// these instrumentation have different behavior.
|
||||
return true;
|
||||
}
|
||||
// Assign span type to DB
|
||||
|
|
|
@ -32,12 +32,13 @@ include ':dd-java-agent:instrumentation:couchbase-2.0'
|
|||
include ':dd-java-agent:instrumentation:datastax-cassandra-2.3'
|
||||
include ':dd-java-agent:instrumentation:dropwizard'
|
||||
include ':dd-java-agent:instrumentation:dropwizard:dropwizard-views'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-rest-5'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-rest-6.4'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-transport-2'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-transport-5'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-transport-5.3'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch-transport-6'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:rest-5'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:rest-6.4'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:transport-2'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:transport-5'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:transport-5.3'
|
||||
include ':dd-java-agent:instrumentation:elasticsearch:transport-6'
|
||||
include ':dd-java-agent:instrumentation:grpc-1.5'
|
||||
include ':dd-java-agent:instrumentation:http-url-connection'
|
||||
include ':dd-java-agent:instrumentation:hystrix-1.4'
|
||||
|
|
Loading…
Reference in New Issue