Prevent exchange name being overwritten in publish resource name.

This commit is contained in:
Tyler Benson 2018-10-19 10:25:32 +10:00
parent 8ff5c7c36c
commit 7ece2fe2a6
2 changed files with 35 additions and 6 deletions

View File

@ -52,7 +52,10 @@ public class RabbitCommandInstrumentation extends Instrumenter.Default {
final Method method = command.getMethod(); final Method method = command.getMethod();
if (span != null && method != null) { if (span != null && method != null) {
final String name = method.protocolMethodName(); final String name = method.protocolMethodName();
span.setTag(DDTags.RESOURCE_NAME, name); if (!name.equals("basic.publish")) {
// Don't overwrite the name already set.
span.setTag(DDTags.RESOURCE_NAME, name);
}
span.setTag("amqp.command", name); span.setTag("amqp.command", name);
} }
} }

View File

@ -106,7 +106,7 @@ class RabbitMQTest extends AgentTestRunner {
rabbitSpan(it, "queue.bind") rabbitSpan(it, "queue.bind")
} }
trace(3, 1) { trace(3, 1) {
rabbitSpan(it, "basic.publish") rabbitSpan(it, "basic.publish $exchangeName")
} }
trace(4, 1) { trace(4, 1) {
rabbitSpan(it, "basic.get <generated>", TEST_WRITER[3][0]) rabbitSpan(it, "basic.get <generated>", TEST_WRITER[3][0])
@ -114,8 +114,34 @@ class RabbitMQTest extends AgentTestRunner {
} }
where: where:
exchangeName = "some-exchange" exchangeName | routingKey
routingKey = "some-routing-key" "some-exchange" | "some-routing-key"
}
def "test rabbit publish/get default exchange"() {
setup:
String queueName = channel.queueDeclare("some-routing-queue", false, true, true, null).getQueue()
String routingKey = queueName
channel.basicPublish("", routingKey, null, "Hello, world!".getBytes())
GetResponse response = channel.basicGet(queueName, true)
expect:
new String(response.getBody()) == "Hello, world!"
and:
assertTraces(3) {
trace(0, 1) {
rabbitSpan(it, "queue.declare")
}
trace(1, 1) {
rabbitSpan(it, "basic.publish <default>")
}
trace(2, 1) {
rabbitSpan(it, "basic.get some-routing-queue", TEST_WRITER[1][0])
}
}
} }
def "test rabbit consume #messageCount messages"() { def "test rabbit consume #messageCount messages"() {
@ -167,7 +193,7 @@ class RabbitMQTest extends AgentTestRunner {
def publishSpan = null def publishSpan = null
trace(2 + (it * 2), 1) { trace(2 + (it * 2), 1) {
publishSpan = span(0) publishSpan = span(0)
rabbitSpan(it, "basic.publish") rabbitSpan(it, "basic.publish $exchangeName")
} }
trace(3 + (it * 2), 1) { trace(3 + (it * 2), 1) {
rabbitSpan(it, resource, publishSpan) rabbitSpan(it, resource, publishSpan)
@ -229,7 +255,7 @@ class RabbitMQTest extends AgentTestRunner {
rabbitSpan(it, "queue.declare") rabbitSpan(it, "queue.declare")
} }
trace(1, 1) { trace(1, 1) {
rabbitSpan(it, "basic.publish") rabbitSpan(it, "basic.publish <default>")
} }
trace(2, 1) { trace(2, 1) {
rabbitSpan(it, "basic.get $queue.name", TEST_WRITER[1][0]) rabbitSpan(it, "basic.get $queue.name", TEST_WRITER[1][0])