本文整理汇总了Java中org.springframework.cloud.sleuth.Span.logEvent方法的典型用法代码示例。如果您正苦于以下问题:Java Span.logEvent方法的具体用法?Java Span.logEvent怎么用?Java Span.logEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.springframework.cloud.sleuth.Span
的用法示例。
在下文中一共展示了Span.logEvent方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onAfterCommit
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public void onAfterCommit(ConnectionInformation connectionInformation, long timeElapsedNanos, SQLException e) {
Span connectionSpan = connectionSpans.get(connectionInformation);
if (e != null) {
connectionSpan.tag(Span.SPAN_ERROR_TAG_NAME, ExceptionUtils.getExceptionMessage(e));
}
connectionSpan.logEvent("commit");
}
开发者ID:gavlyukovskiy,项目名称:spring-boot-data-source-decorator,代码行数:9,代码来源:TracingJdbcEventListener.java
示例2: onAfterRollback
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public void onAfterRollback(ConnectionInformation connectionInformation, long timeElapsedNanos, SQLException e) {
Span connectionSpan = connectionSpans.get(connectionInformation);
if (e != null) {
connectionSpan.tag(Span.SPAN_ERROR_TAG_NAME, ExceptionUtils.getExceptionMessage(e));
}
else {
connectionSpan.tag(Span.SPAN_ERROR_TAG_NAME, "Transaction rolled back");
}
connectionSpan.logEvent("rollback");
}
开发者ID:gavlyukovskiy,项目名称:spring-boot-data-source-decorator,代码行数:12,代码来源:TracingJdbcEventListener.java
示例3: afterHandle
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public void afterHandle(Exception ex) {
final Span currentSpan = tracer.getCurrentSpan();
if (currentSpan != null) {
currentSpan.logEvent(Span.SERVER_SEND);
addErrorTag(ex);
}
if (tracer.isTracing()) {
tracer.detach(currentSpan);
}
}
示例4: beforeHandle
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public Span beforeHandle(Message message, String[] queues) {
final Span span = extractor.joinTrace(message);
if (span != null) {
span.logEvent(Span.SERVER_RECV);
}
return tracer.continueSpan(span);
}
示例5: beforeSend
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public Span beforeSend(Message message, String spanName) {
final Span parentSpan = tracer.isTracing() ? tracer.getCurrentSpan() : buildSpan(message);
final Span span = tracer.createSpan(spanName, parentSpan);
final AmqpMessageHeaderAccessor accessor = AmqpMessageHeaderAccessor.getAccessor(message);
if (accessor.hasHeader(MESSAGE_SENT_FROM_CLIENT)) {
span.logEvent(Span.SERVER_RECV);
} else {
span.logEvent(Span.CLIENT_SEND);
accessor.setHeader(MESSAGE_SENT_FROM_CLIENT, Boolean.TRUE.toString());
}
injector.inject(span, message);
return span;
}
示例6: afterSend
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@Override
public void afterSend(Exception ex) {
final Span currentSpan = tracer.getCurrentSpan();
if (containsServerReceived(currentSpan)) {
currentSpan.logEvent(Span.SERVER_SEND);
} else if (currentSpan != null) {
currentSpan.logEvent(Span.CLIENT_RECV);
}
addErrorTag(ex);
tracer.close(currentSpan);
}
示例7: invoke
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
boolean isTraceDubbo = false;
Tracer tracer = null;
SpanInjector spanInjector = null;
try {
tracer = ApplicationContextAwareBean.CONTEXT.getBean(Tracer.class);
spanInjector = ApplicationContextAwareBean.CONTEXT.getBean(DubboSpanInjector.class);
isTraceDubbo = (tracer != null && spanInjector != null);
if (isTraceDubbo) {
String spanName = invoker.getUrl().getParameter("interface") + ":" + invocation.getMethodName() + ":" + invoker.getUrl().getParameter("version") + "(" + invoker.getUrl().getHost() + ")";
Span newSpan = tracer.createSpan(spanName);
spanInjector.inject(newSpan, RpcContext.getContext());
newSpan.logEvent(Span.CLIENT_SEND);
}
Result result = invoker.invoke(invocation);
return result;
} finally {
if (isTraceDubbo) {
if (tracer.isTracing()) {
tracer.getCurrentSpan().logEvent(Span.CLIENT_RECV);
tracer.close(tracer.getCurrentSpan());
}
}
}
}
示例8: checkoutOrder
import org.springframework.cloud.sleuth.Span; //导入方法依赖的package包/类
@RequestMapping(method = RequestMethod.POST, value = "/checkout")
public ShoppingCart checkoutOrder(@RequestBody ShoppingCart cart) throws InterruptedException {
Span newSpan = this.tracer.createSpan("orderCheckout");
try {
System.out.println(cart);
LOG.info("order chechout for cart id: {}",cart.getId());
Map<String, String> params = new HashMap<String, String>();
params.put("cartId", Long.toString(cart.getId()));
// ...
// You can tag a span
this.tracer.addTag("cartId", Long.toString(cart.getId()));
// Place order
String orderId = restTemplate().getForObject("http://localhost:9001/placeOrder/{cartId}", String.class,params);
this.tracer.addTag("orderId", orderId);
newSpan.logEvent("order creation complete");
cart.setCheckedOut(true);
cart.setOrderId(orderId);
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
// Introduce Sleep
/* newSpan.logEvent("Added delay start");
Thread.sleep(500);
newSpan.logEvent("Added delay end");*/
// Save cart state
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
restTemplate().postForObject("http://localhost:9002/saveCart", cart, ShoppingCart.class);
// ...
// You can log an event on a span
newSpan.logEvent("cart checkout complete");
} finally {
// Once done remember to close the span. This will allow collecting
// the span to send it to Zipkin
this.tracer.close(newSpan);
}
return cart;
}