チュートリアル: Instana トレースSDKを使用したカスタム中間関数の計測
Instana Tracing SDK を使用すると、カスタム中間関数を計測対象に追加し、 Instana によって自動的に計測されないアプリケーションロジックを可視化できます。
サンプル・コード
チュートリア custom-intermediate-span-samplee ルのサンプルコードについては、 「カスタム中間スパン サンプル」 を参照してください。 これは、 Instana Java SDK を使用して、 MongoDB を備えた Spring Boot アプリケーション内でカスタム中間スパンを作成する方法を示しています。
カスタム中間関数の計測
InstanaJava トレーサー SDK を有効化し、カスタム中間関数を計測するには、次の手順に従ってください:
- Java Trace SDK を依存関係として追加します。 Maven を使用している場合は、次の依存関係を追加
.xmlしてください:<dependency> <groupId>com.instana</groupId> <artifactId>instana-java-sdk</artifactId> <version>1.2.0</version> </dependency> SDKアノテーションの検出を有効にするには、 Java
configuration.yamlパッケージ名をSDKアノテーション付きでファイルに指定してください。# Java Tracing com.instana.plugin.javatrace: instrumentation: # By default no packages are scanned for SDK annotations. sdk: packages: - 'com.instana.sample.application'注: 指定されたパッケージは再帰的にスキャンされるため、最も一般的なパッケージ名のみを指定すれば十分です。関数にスパン注釈を追加して、トレースでそれをキャプチャします。
Instana の Java Tracer SDKを使用すると、メソッドに3つのスパンタイプのいずれかを割り当て、トレースにおけるその役割を定義できます。 特定の関数をキャプチャするには、関数定義に適切なスパン注釈を追加します。
@Span(type = Type.INTERMEDIATE, value = "custom-instana-java-sdk")サンプル・コード:
@Span(type = Span.Type.INTERMEDIATE, value = SPAN_NAME) public List<Profile> all(Boolean error) { try { if (error) { throw new Exception(); } SpanSupport.annotate(Span.Type.INTERMEDIATE, SPAN_NAME, "tags.instana.java.sdk", "Success"); return getAll(); } catch (Exception e) { SpanSupport.annotate(Span.Type.INTERMEDIATE, SPAN_NAME, "tags.error", "true"); SpanSupport.annotate(Span.Type.INTERMEDIATE, SPAN_NAME, "tags.instana.java.sdk", "Fail"); } return Collections.emptyList(); } private List<Profile> getAll() { return profileRepository.findAll(); }オプション: スパンに追加情報を注釈として付加する。
特定の状況では、SDKスパンに関連情報を追加することで、その発生元をより適切に表現できます。 span属性に追加するには、変換タグをspan内に組み込みます。 これらのタグは、メソッド
SpanSupport.annotate(type, name, key, value)を使用して設定できます。SpanSupport.annotate(Span.Type.INTERMEDIATE, SPAN_NAME, "tags.instana.java.sdk","Success");図 1. 成功したスパンの詳細 
オプション: スパンを誤りとマークする。
呼び出しを誤りとして指定するには、`<tag>`
errorを組み込みます:SpanSupport.annotate(Span.Type.INTERMEDIATE, SPAN_NAME, "tags.error","true");Instana UIでカスタム中間スパンとその注釈を含む完全なトレースを表示するには、次のコマンドを実行します。
正常なトレースを表示するには、以下を実行してください:
curl -X 'GET' 'http://localhost:8081/v1/instana/profile?error=false' -H 'accept: application/json'図 2. 成功したスパン 
エラートレースを表示するには、以下を実行してください:
curl -X 'GET' 'http://localhost:8081/v1/instana/profile?error=true' -H 'accept: application/json'図 3. エラー範囲 
図 4. エラー範囲の詳細 
サマリーと展望
このチュートリアルでは、カスタム中間関数用に新しいトレースコンテキストを作成します。これにより、 Instana において、この関数の実行が中間スパンとして認識されるようになります。
スパン概念は観測の粒度を高め、通話を着信、発信、内部通話に分類することで詳細な洞察を提供します。 SDKの直感的な統合プロセスは、 Maven の依存関係と設定ファイルによって示されており、アプリケーションへのシームレスな組み込みを容易にします。
InstanaJava SDK の完全なリファレンスは、 Java Trace SDK を参照してください。 例えば、`@ @SpanParam `および @SpanReturn `@`アノテーションを使用すると、パラメータや戻り値を追加情報としてスパンに簡単にキャプチャできます。これは、特定のシナリオでは SpanSupport.annotate() 明示的に`@`を呼び出すよりも便利な場合があります。