in folsom-opencensus/src/main/java/com/spotify/folsom/opencensus/OpenCensusTracer.java [69:111]
private Span internalSpan(
final String name,
final CompletionStage<?> future,
final String operation,
final String key,
final byte[] value) {
requireNonNull(name);
requireNonNull(future);
requireNonNull(operation);
final io.opencensus.trace.Span ocSpan =
TRACER.spanBuilder(name).setSpanKind(CLIENT).startSpan();
ocSpan.putAttribute("component", stringAttributeValue("folsom"));
ocSpan.putAttribute("peer.service", stringAttributeValue("memcache"));
ocSpan.putAttribute("operation", stringAttributeValue(operation));
if (key != null && includeKeys) {
ocSpan.putAttribute("key", stringAttributeValue(key));
}
final Span span = new OpenCensusSpan(ocSpan, includeValues);
if (value != null) {
span.value(value);
}
future.whenComplete(
(result, t) -> {
if (result instanceof GetResult) {
final GetResult<byte[]> getResult = (GetResult) result;
span.value(getResult.getValue());
}
if (t == null) {
span.success();
} else {
span.failure();
}
span.close();
});
return span;
}