Use default service name for RabbitMQ consumer

So spans parented by consumer span had reasonable service name
This commit is contained in:
Nikolay Martynov 2019-05-23 20:24:01 -04:00
parent 200a9063fa
commit a7271ed2b2
2 changed files with 18 additions and 1 deletions

View File

@ -27,6 +27,16 @@ public class RabbitDecorator extends ClientDecorator {
public static final RabbitDecorator CONSUMER_DECORATE =
new RabbitDecorator() {
@Override
protected String service() {
/*
Use default service name. Common use-case here is to have consumer span parent
children spans in instrumented application. Since service name is inherited it makes
sense to default that to application service name rather than 'rabbitmq'.
*/
return null;
}
@Override
protected String spanKind() {
return Tags.SPAN_KIND_CONSUMER;

View File

@ -341,7 +341,14 @@ class RabbitMQTest extends AgentTestRunner {
String errorMsg = null
) {
trace.span(index) {
serviceName "rabbitmq"
switch (span.tags["amqp.command"]) {
case "basic.get":
case "basic.deliver":
serviceName "unnamed-java-app"
break
default:
serviceName "rabbitmq"
}
operationName "amqp.command"
resourceName resource
switch (span.tags["amqp.command"]) {