Skip to content

Commit

Permalink
Support for TracingConfiguration with opentracing-redis-redisson (#36)
Browse files Browse the repository at this point in the history
  • Loading branch information
rjricken authored and malafeev committed May 28, 2019
1 parent f80323a commit a44f7b7
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,17 +179,14 @@ RedisAsyncCommands<String, String> commandsAsync = connection.async();
### Redisson

```java
// Instantiate tracer
Tracer tracer = ...

// Create Redisson config object
Config = ...

// Create Redisson instance
RedissonClient redissonClient = Redisson.create(config);

// Decorate RedissonClient with TracingRedissonClient
RedissonClient tracingRedissonClient = new TracingRedissonClient(redissonClient, tracer);
RedissonClient tracingRedissonClient = new TracingRedissonClient(redissonClient, tracingConfiguration);

// Get object you need using TracingRedissonClient
RMap<MyKey, MyValue> map = tracingRedissonClient.getMap("myMap");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ public TracingRedissonClient(RedissonClient redissonClient, Tracer tracer,
.build());
}

public TracingRedissonClient(RedissonClient redissonClient, TracingConfiguration configuration) {
this.redissonClient = redissonClient;
this.tracingRedissonHelper = new TracingRedissonHelper(configuration);
}

@Override
public <K, V> RStream<K, V> getStream(String name) {
return redissonClient.getStream(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

import io.opentracing.Scope;
import io.opentracing.Span;
import io.opentracing.contrib.redis.common.TracingConfiguration;
import io.opentracing.contrib.redis.common.TracingHelper;
import io.opentracing.mock.MockSpan;
import io.opentracing.mock.MockTracer;
Expand Down Expand Up @@ -188,6 +189,33 @@ public void async_continue_span() throws Exception {
assertNull(tracer.activeSpan());
}

@Test
public void test_config_span_name() throws Exception {
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");

RedissonClient customClient = new TracingRedissonClient(Redisson.create(config),
new TracingConfiguration.Builder(tracer)
.traceWithActiveSpanOnly(true)
.withSpanNameProvider(operation -> "Redis." + operation)
.build());

try (Scope ignore = tracer.buildSpan("test").startActive(true)) {
RMap<String, String> map = customClient.getMap("map");
map.getAsync("key").get(15, TimeUnit.SECONDS);
}

await().atMost(15, TimeUnit.SECONDS).until(reportedSpansSize(), equalTo(2));

List<MockSpan> spans = tracer.finishedSpans();
assertEquals(2, spans.size());
MockSpan redisSpan = spans.get(0);
assertEquals("Redis.getAsync", redisSpan.operationName());

assertNull(tracer.activeSpan());
customClient.shutdown();
}

private void checkSpans(List<MockSpan> spans) {
for (MockSpan span : spans) {
assertEquals(span.tags().get(Tags.SPAN_KIND.getKey()), Tags.SPAN_KIND_CLIENT);
Expand Down

0 comments on commit a44f7b7

Please sign in to comment.