ListenableFuture<?> storeSpanName(String serviceName, String spanName) { BoundStatement bound = bindWithName(insertSpanName, "insert-span-name") .setString("service_name", serviceName) .setString("span_name", spanName); if (indexTtl != null) bound.setInt("ttl_", indexTtl); return deduplicatingExecutor.maybeExecuteAsync(bound, Pair.create(serviceName, spanName)); }
if (oldRange == null) { oldRange = sharedState.putIfAbsent(key, Pair.create(timestamp, timestamp)); long last = timestamp > oldRange._2 ? timestamp : oldRange._2; Pair<Long> newRange = Pair.create(first, last); if (oldRange.equals(newRange)) { break; // the current timestamp is contained } else if (sharedState.replace(key, oldRange, newRange)) {
.orderBy(ZIPKIN_ANNOTATIONS.A_TIMESTAMP.asc(), ZIPKIN_ANNOTATIONS.A_KEY.asc()) .stream() .collect(groupingBy((Record a) -> Pair.create( a.getValue(ZIPKIN_ANNOTATIONS.TRACE_ID), a.getValue(ZIPKIN_ANNOTATIONS.SPAN_ID) for (Span s : spans) { Span.Builder span = new Span.Builder(s); Pair<?> key = Pair.create(s.traceId, s.id);
.orderBy(ZIPKIN_ANNOTATIONS.A_TIMESTAMP.asc(), ZIPKIN_ANNOTATIONS.A_KEY.asc()) .stream() .collect(groupingBy((Record a) -> Pair.create( a.getValue(ZIPKIN_ANNOTATIONS.TRACE_ID), a.getValue(ZIPKIN_ANNOTATIONS.SPAN_ID) for (Span s : spans) { Span.Builder span = new Span.Builder(s); Pair<?> key = Pair.create(s.traceId, s.id);
.orderBy(ZIPKIN_ANNOTATIONS.A_TIMESTAMP.asc(), ZIPKIN_ANNOTATIONS.A_KEY.asc()) .stream() .collect(groupingBy((Record a) -> Pair.create( a.getValue(ZIPKIN_ANNOTATIONS.TRACE_ID), a.getValue(ZIPKIN_ANNOTATIONS.SPAN_ID) for (Span s : spans) { Span.Builder span = s.toBuilder(); Pair<?> key = Pair.create(s.traceId, s.id);
.build()) .collect( groupingBy((zipkin.Span s) -> Pair.create(s.traceIdHigh, s.traceId), LinkedHashMap::new, Collectors.<zipkin.Span>toList()));