检测来自Hibernate的数据库调用

时间:2018-08-15 09:07:07

标签: hibernate instrumentation zipkin

我想在数据库事务之前和之后检测我的代码。我扩展了org.hibernate.EmptyInterceptor并在其中添加了检测逻辑。

我想知道它是否在正确的地方,或者我可以使用其他任何SPI来做到这一点?

示例代码

public class TxnInterceptor extends EmptyInterceptor {

  @Override
  public void afterTransactionBegin(Transaction tx) {
    Span span = ThreadLocalSpan.CURRENT_TRACER.next();
     if (span != null || !span.isNoop()) {
      span.kind(Span.Kind.CLIENT).name("db.transaction");
      span.start();
    }
  }

  @Override
  public void afterTransactionCompletion(Transaction tx) {
    Span span = ThreadLocalSpan.CURRENT_TRACER.remove();
    if (span != null || !span.isNoop()) {
      span.finish();
    }
  }
}

注意:使用Zipkin Brave进行检测

0 个答案:

没有答案