Skip to content

Commit 98b546e

Browse files
committed
dubbo
1 parent e8fb30e commit 98b546e

File tree

5 files changed

+88
-0
lines changed

5 files changed

+88
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.apachedubbo.v2_7;
7+
8+
import io.opentelemetry.api.GlobalOpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceAttributesExtractor;
10+
import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceResolver;
11+
import io.opentelemetry.instrumentation.apachedubbo.v2_7.internal.DubboClientNetworkAttributesGetter;
12+
import java.util.HashMap;
13+
import java.util.Map;
14+
import org.apache.dubbo.common.extension.Activate;
15+
import org.apache.dubbo.rpc.Filter;
16+
import org.apache.dubbo.rpc.Invocation;
17+
import org.apache.dubbo.rpc.Invoker;
18+
import org.apache.dubbo.rpc.Result;
19+
20+
@Activate(
21+
group = {"consumer"},
22+
order = -1)
23+
public final class TestOpenTelemetryClientFilter implements Filter {
24+
25+
private final Filter delegate;
26+
27+
public TestOpenTelemetryClientFilter() {
28+
// Create peer service mapping for testing
29+
Map<String, String> peerServiceMapping = new HashMap<>();
30+
peerServiceMapping.put("127.0.0.1", "test-peer-service");
31+
peerServiceMapping.put("localhost", "test-peer-service");
32+
peerServiceMapping.put("192.0.2.1", "test-peer-service");
33+
34+
delegate =
35+
DubboTelemetry.builder(GlobalOpenTelemetry.get())
36+
.addAttributesExtractor(
37+
PeerServiceAttributesExtractor.create(
38+
new DubboClientNetworkAttributesGetter(),
39+
PeerServiceResolver.create(peerServiceMapping)))
40+
.build()
41+
.newClientFilter();
42+
}
43+
44+
@Override
45+
public Result invoke(Invoker<?> invoker, Invocation invocation) {
46+
return delegate.invoke(invoker, invocation);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.apachedubbo.v2_7;
7+
8+
import io.opentelemetry.api.GlobalOpenTelemetry;
9+
import org.apache.dubbo.common.extension.Activate;
10+
import org.apache.dubbo.rpc.Filter;
11+
import org.apache.dubbo.rpc.Invocation;
12+
import org.apache.dubbo.rpc.Invoker;
13+
import org.apache.dubbo.rpc.Result;
14+
15+
@Activate(
16+
group = {"provider"},
17+
order = -1)
18+
public final class TestOpenTelemetryServerFilter implements Filter {
19+
20+
private final Filter delegate;
21+
22+
public TestOpenTelemetryServerFilter() {
23+
// Server filter doesn't need peer service configuration
24+
delegate = DubboTelemetry.create(GlobalOpenTelemetry.get()).newServerFilter();
25+
}
26+
27+
@Override
28+
public Result invoke(Invoker<?> invoker, Invocation invocation) {
29+
return delegate.invoke(invoker, invocation);
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
io.opentelemetry.instrumentation.apachedubbo.v2_7.TestOpenTelemetryClientFilter
2+
io.opentelemetry.instrumentation.apachedubbo.v2_7.TestOpenTelemetryServerFilter

instrumentation/apache-dubbo-2.7/testing/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/AbstractDubboTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TYPE;
1515
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
1616
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
17+
import static io.opentelemetry.semconv.incubating.PeerIncubatingAttributes.PEER_SERVICE;
1718
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_METHOD;
1819
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SERVICE;
1920
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM;
@@ -141,6 +142,7 @@ void testApacheDubboBase() throws ReflectiveOperationException {
141142
RpcIncubatingAttributes.RpcSystemIncubatingValues.APACHE_DUBBO),
142143
equalTo(RPC_SERVICE, "org.apache.dubbo.rpc.service.GenericService"),
143144
equalTo(RPC_METHOD, "$invoke"),
145+
equalTo(PEER_SERVICE, "test-peer-service"),
144146
equalTo(SERVER_ADDRESS, "localhost"),
145147
satisfies(SERVER_PORT, k -> k.isInstanceOf(Long.class)),
146148
satisfies(
@@ -272,6 +274,7 @@ void testApacheDubboTest()
272274
RpcIncubatingAttributes.RpcSystemIncubatingValues.APACHE_DUBBO),
273275
equalTo(RPC_SERVICE, "org.apache.dubbo.rpc.service.GenericService"),
274276
equalTo(RPC_METHOD, "$invokeAsync"),
277+
equalTo(PEER_SERVICE, "test-peer-service"),
275278
equalTo(SERVER_ADDRESS, "localhost"),
276279
satisfies(SERVER_PORT, k -> k.isInstanceOf(Long.class)),
277280
satisfies(

instrumentation/apache-dubbo-2.7/testing/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/AbstractDubboTraceChainTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TYPE;
1616
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
1717
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
18+
import static io.opentelemetry.semconv.incubating.PeerIncubatingAttributes.PEER_SERVICE;
1819
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_METHOD;
1920
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SERVICE;
2021
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM;
@@ -183,6 +184,7 @@ void testDubboChain() throws ReflectiveOperationException {
183184
RpcIncubatingAttributes.RpcSystemIncubatingValues.APACHE_DUBBO),
184185
equalTo(RPC_SERVICE, "org.apache.dubbo.rpc.service.GenericService"),
185186
equalTo(RPC_METHOD, "$invoke"),
187+
equalTo(PEER_SERVICE, "test-peer-service"),
186188
equalTo(SERVER_ADDRESS, "localhost"),
187189
satisfies(SERVER_PORT, k -> k.isInstanceOf(Long.class)),
188190
satisfies(
@@ -217,6 +219,7 @@ void testDubboChain() throws ReflectiveOperationException {
217219
RpcIncubatingAttributes.RpcSystemIncubatingValues.APACHE_DUBBO),
218220
equalTo(RPC_SERVICE, "org.apache.dubbo.rpc.service.GenericService"),
219221
equalTo(RPC_METHOD, "$invoke"),
222+
equalTo(PEER_SERVICE, "test-peer-service"),
220223
equalTo(SERVER_ADDRESS, "localhost"),
221224
satisfies(SERVER_PORT, k -> k.isInstanceOf(Long.class)),
222225
satisfies(
@@ -380,6 +383,7 @@ void testDubboChainInJvm() throws ReflectiveOperationException {
380383
RpcIncubatingAttributes.RpcSystemIncubatingValues.APACHE_DUBBO),
381384
equalTo(RPC_SERVICE, "org.apache.dubbo.rpc.service.GenericService"),
382385
equalTo(RPC_METHOD, "$invoke"),
386+
equalTo(PEER_SERVICE, "test-peer-service"),
383387
equalTo(SERVER_ADDRESS, "localhost"),
384388
satisfies(SERVER_PORT, k -> k.isInstanceOf(Long.class)),
385389
satisfies(

0 commit comments

Comments
 (0)