モチベーション
OpenTelemetry でトレースを取得するにあたって、設定は環境変数で行い、基本的には自動計装にまかせつつ、自動計装で取れない(外部通信を行っていない)ところにだけ手動でspanを追加したかった。
方法
Java OpenTelemetry agentによる自動計装 でjavaagent、OTELの設定をする
アプリケーションコード内のトレースを取得したい箇所で
APIハンドラーでは、自動計装によりSpanが作成されているのでそれを使う。
よくわかっていなかったが、 Scope scope = span.makeCurrent()
をすると scope.close()
するまでは Context.current()
や Span.current()
で現在のcontextを取得できるので、別メソッドを呼び出すときにSpanオブジェクトを渡す必要はない。
参考