Skip to content

Commit 4000478

Browse files
committed
IT to verify actor tracing
Signed-off-by: Artur Souza <[email protected]>
1 parent b683fce commit 4000478

File tree

3 files changed

+75
-13
lines changed

3 files changed

+75
-13
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package io.dapr.it.actors;
2+
3+
import io.dapr.actors.ActorId;
4+
import io.dapr.actors.client.ActorProxyBuilder;
5+
import io.dapr.client.DaprClient;
6+
import io.dapr.it.BaseIT;
7+
import io.dapr.it.actors.app.MyActor;
8+
import io.dapr.it.actors.app.MyActorService;
9+
import io.dapr.it.tracing.Validation;
10+
import io.dapr.it.tracing.http.OpenTelemetryConfig;
11+
import io.opentelemetry.api.OpenTelemetry;
12+
import io.opentelemetry.api.trace.Span;
13+
import io.opentelemetry.api.trace.SpanKind;
14+
import io.opentelemetry.api.trace.Tracer;
15+
import io.opentelemetry.context.Scope;
16+
import org.junit.jupiter.api.Test;
17+
18+
import java.util.UUID;
19+
20+
import static io.dapr.it.tracing.OpenTelemetry.createOpenTelemetry;
21+
import static io.dapr.it.tracing.OpenTelemetry.getReactorContext;
22+
23+
public class ActorTracingIT extends BaseIT {
24+
25+
@Test
26+
public void testInvoke() throws Exception {
27+
var run = startDaprApp(
28+
ActorTracingIT.class.getSimpleName(),
29+
MyActorService.SUCCESS_MESSAGE,
30+
MyActorService.class,
31+
true,
32+
60000);
33+
var clientRun = startDaprApp(
34+
ActorTracingIT.class.getSimpleName()+"Client",
35+
60000);
36+
37+
OpenTelemetry openTelemetry = createOpenTelemetry(OpenTelemetryConfig.SERVICE_NAME);
38+
Tracer tracer = openTelemetry.getTracer(OpenTelemetryConfig.TRACER_NAME);
39+
String spanName = UUID.randomUUID().toString();
40+
Span span = tracer.spanBuilder(spanName).setSpanKind(SpanKind.CLIENT).startSpan();
41+
42+
try (DaprClient client = run.newDaprClientBuilder().build()) {
43+
client.waitForSidecar(10000).block();
44+
MyActor myActor =
45+
new ActorProxyBuilder<>(
46+
"MyActorTest",
47+
MyActor.class,
48+
clientRun.newActorClient()).build(new ActorId("123456"));
49+
try (Scope scope = span.makeCurrent()) {
50+
myActor.say("hello world").contextWrite(getReactorContext(openTelemetry)).block();
51+
}
52+
}
53+
54+
span.end();
55+
56+
Validation.validate(spanName, "calllocal/tracingithttp-service/say");
57+
}
58+
59+
}

sdk-tests/src/test/java/io/dapr/it/actors/app/MyActor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
package io.dapr.it.actors.app;
1515

1616
import io.dapr.actors.ActorMethod;
17+
import reactor.core.publisher.Mono;
1718

1819
import java.util.ArrayList;
1920
import java.util.List;
2021

2122
public interface MyActor {
22-
String say(String something);
23+
Mono<String> say(String something);
2324

2425
List<String> retrieveActiveActors();
2526

sdk-tests/src/test/java/io/dapr/it/actors/app/MyActorBase.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,21 @@ public MyActorBase(ActorRuntimeContext runtimeContext, ActorId id, TypeRef<T> re
6060
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
6161

6262
@Override
63-
public String say(String something) {
64-
String reversedString = "";
65-
try {
66-
this.formatAndLog(true, "say");
67-
reversedString = new StringBuilder(something).reverse().toString();
68-
69-
this.formatAndLog(false, "say");
70-
} catch(Exception e) {
71-
// We don't throw, but the proxy side will know it failed because it expects a reversed input
72-
System.out.println("Caught " + e);
73-
}
63+
public Mono<String> say(String something) {
64+
return Mono.fromCallable(() -> {
65+
String reversedString = "";
66+
try {
67+
this.formatAndLog(true, "say");
68+
reversedString = new StringBuilder(something).reverse().toString();
69+
70+
this.formatAndLog(false, "say");
71+
} catch(Exception e) {
72+
// We don't throw, but the proxy side will know it failed because it expects a reversed input
73+
System.out.println("Caught " + e);
74+
}
7475

75-
return reversedString;
76+
return reversedString;
77+
});
7678
}
7779

7880
@Override

0 commit comments

Comments
 (0)