use of com.twitter.zipkin.gen.Span in project zipkin by openzipkin.
the class TracedSession method update.
@Override
public void update(Host host, Statement statement, Exception e, long nanos) {
if (!(statement instanceof NamedBoundStatement))
return;
Span span = cache.remove(statement);
if (span == null) {
if (statement.isTracing()) {
LOG.warn("{} not in the cache eventhough tracing is on", statement);
}
return;
}
Span previous = brave.clientSpanThreadBinder().getCurrentClientSpan();
brave.clientSpanThreadBinder().setCurrentSpan(span);
try {
if (e != null) {
brave.clientTracer().submitBinaryAnnotation(Constants.ERROR, e.getMessage());
}
} finally {
// TODO: on brave 4, set host to remote address
brave.clientTracer().setClientReceived();
brave.clientSpanThreadBinder().setCurrentSpan(previous);
}
}
use of com.twitter.zipkin.gen.Span in project camel by apache.
the class ZipkinTracer method clientResponse.
private void clientResponse(Brave brave, String serviceName, ExchangeSentEvent event) {
Span span = null;
ZipkinState state = event.getExchange().getProperty(ZipkinState.KEY, ZipkinState.class);
if (state != null) {
// only process if it was a zipkin client event
span = state.popClientSpan();
}
if (span != null) {
ClientSpanThreadBinder clientBinder = brave.clientSpanThreadBinder();
clientBinder.setCurrentSpan(span);
brave.clientResponseInterceptor().handle(new ZipkinClientResponseAdaptor(this, event.getExchange(), event.getEndpoint()));
// and reset binder
clientBinder.setCurrentSpan(null);
if (LOG.isDebugEnabled()) {
String traceId = "" + span.getTrace_id();
String spanId = "" + span.getId();
String parentId = span.getParent_id() != null ? "" + span.getParent_id() : null;
if (LOG.isDebugEnabled()) {
if (parentId != null) {
LOG.debug(String.format("clientResponse[service=%s, traceId=%20s, spanId=%20s, parentId=%20s]", serviceName, traceId, spanId, parentId));
} else {
LOG.debug(String.format("clientResponse[service=%s, traceId=%20s, spanId=%20s]", serviceName, traceId, spanId));
}
}
}
}
}
use of com.twitter.zipkin.gen.Span in project camel by apache.
the class ZipkinTracer method clientRequest.
private void clientRequest(Brave brave, String serviceName, ExchangeSendingEvent event) {
ClientSpanThreadBinder clientBinder = brave.clientSpanThreadBinder();
ServerSpanThreadBinder serverBinder = brave.serverSpanThreadBinder();
// reuse existing span if we do multiple requests from the same
ZipkinState state = event.getExchange().getProperty(ZipkinState.KEY, ZipkinState.class);
if (state == null) {
state = new ZipkinState();
event.getExchange().setProperty(ZipkinState.KEY, state);
}
// if we started from a server span then lets reuse that when we call a downstream service
ServerSpan last = state.peekServerSpan();
if (last != null) {
serverBinder.setCurrentSpan(last);
}
brave.clientRequestInterceptor().handle(new ZipkinClientRequestAdapter(this, serviceName, event.getExchange(), event.getEndpoint()));
// store span after request
Span span = clientBinder.getCurrentClientSpan();
state.pushClientSpan(span);
// and reset binder
clientBinder.setCurrentSpan(null);
serverBinder.setCurrentSpan(null);
if (span != null && LOG.isDebugEnabled()) {
String traceId = "" + span.getTrace_id();
String spanId = "" + span.getId();
String parentId = span.getParent_id() != null ? "" + span.getParent_id() : null;
if (LOG.isDebugEnabled()) {
if (parentId != null) {
LOG.debug(String.format("clientRequest [service=%s, traceId=%20s, spanId=%20s, parentId=%20s]", serviceName, traceId, spanId, parentId));
} else {
LOG.debug(String.format("clientRequest [service=%s, traceId=%20s, spanId=%20s]", serviceName, traceId, spanId));
}
}
}
}
use of com.twitter.zipkin.gen.Span in project zipkin by openzipkin.
the class TracedSession method update.
@Override
public void update(Host host, Statement statement, Exception e, long nanos) {
if (!(statement instanceof BoundStatement))
return;
Span span = cache.remove(statement);
if (span == null) {
if (statement.isTracing()) {
LOG.warn("{} not in the cache eventhough tracing is on", statement);
}
return;
}
Span previous = brave.clientSpanThreadBinder().getCurrentClientSpan();
brave.clientSpanThreadBinder().setCurrentSpan(span);
try {
if (e != null) {
brave.clientTracer().submitBinaryAnnotation(Constants.ERROR, e.getMessage());
}
} finally {
// TODO: on brave 4, set host to remote address
brave.clientTracer().setClientReceived();
brave.clientSpanThreadBinder().setCurrentSpan(previous);
}
}
Aggregations