Tracer インターフェイス

public interface Tracer

すべてのトレーサーが SDK にプラグインできるように実装する必要があるコントラクト。

フィールドの概要

修飾子と型 フィールドと説明
static final String AZ_TRACING_NAMESPACE_KEY

非推奨

Azure リソース プロバイダー名前空間を Tracer ファクトリ メソッドに渡す createTracer(String libraryName, String libraryVersion, String azNamespace, TracingOptions options)

コンテキストに Context Azure リソース プロバイダー名前空間が含まれていることを示す キー。

static final String DIAGNOSTIC_ID_KEY

非推奨

サービス呼び出しの Context "診断 ID" がコンテキストに含まれていることを示す キー。

static final String DISABLE_TRACING_KEY

現在のコンテキストに Context 関連付けられている要求のトレースを無効にするキー。

static final String ENTITY_PATH_KEY

コンテキストに Context エンティティ パスが含まれていることを示す キー。

static final String HOST_NAME_KEY

コンテキストに Context ホスト名が含まれていることを示す キー。

static final String MESSAGE_ENQUEUED_TIME

非推奨

リンクの属性としてエンキューされた時間を使用 addLink(TracingLink link) して渡します。

パーティションの Context ストリーム内の最後にエンキューされたメッセージの時刻を示す キー。

static final String PARENT_SPAN_KEY

非推奨

PARENT_TRACE_CONTEXT_KEYを優先して非推奨となり、完全な io を伝達するために使用します。opentelemetry。コンテキスト

コンテキストに Context 親スパン データが含まれていることを示す キー。

static final String PARENT_TRACE_CONTEXT_KEY

Context キーを使用してトレース コンテキストを格納します。

static final String SCOPE_KEY

非推奨

代わりに を使用 makeSpanCurrent(Context context) してください。

Context指定されたスパンが現在のコンテキストにあるコードのスコープのキー。

static final String SPAN_BUILDER_KEY

非推奨

代わりに を使用 addLink(TracingLink link) する

現在の Context コンテキストにある共有スパン ビルダーを示す キー。

static final String SPAN_CONTEXT_KEY

コンテキストに Context メッセージ スパン コンテキストが含まれていることを示すキー。

static final String USER_SPAN_NAME_KEY

非推奨

スパン名をトレーサーに渡してください。start メソッド。

Context作成されたユーザースパンの名前がコンテキストに含まれていることを示すキー。

メソッドの概要

修飾子と型 メソッドと説明
default void addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp)

非推奨

指定 timestamp された と を使用して、現在のスパンにイベントを attributes追加します。

default void addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp, Context context)

指定timestampされた と attributesを使用して、 に存在するスパンにContextイベントを追加します。

default void addLink(Context context)

非推奨

)} を使用 addLink(TracingLink link) する

複数のトレーススパンをリンクする方法を提供します。

default void end(int responseCode, Throwable error, Context context)

非推奨

特定の属性 e を設定します。g. 明示的にhttp_status_codeし、 を使用 end(String errorMessage, Throwable throwable, Context context)します。

現在のトレーススパンを完了します。

abstract void end(String errorMessage, Throwable throwable, Context context)

コンテキストのスパンを完了します。

default Context extractContext(String diagnosticId, Context context)

非推奨

アップストリームから としてスパンのコンテキストを Context 抽出します。

default Context extractContext(Function<String,String> headerGetter)

アップストリームから としてスパンのコンテキストを Context 抽出します。

default Context getSharedSpanBuilder(String spanName, Context context)

非推奨

代わりに を使用 addLink(TracingLink link) する

で指定された名前 Contextを持つスパン ビルダーを返します。

default void injectContext(BiConsumer<String,String> headerSetter, Context context)

トレース コンテキストを挿入します。

default boolean isEnabled()

トレーサーが有効になっているかどうかを確認します。

default AutoCloseable makeSpanCurrent(Context context)

スパンを最新にします。

abstract void setAttribute(String key, String value, Context context)

現在のスパンにメタデータを追加します。

default void setAttribute(String key, long value, Context context)

long 属性を設定します。

default Context setSpanName(String spanName, Context context)

非推奨

必要ありません。

作成されるスパンの名前を設定します。

abstract Context start(String methodName, Context context)

新しいトレーススパンを作成します。

default Context start(String spanName, Context context, ProcessKind processKind)

非推奨

代わりに を使用 start(String methodName, StartSpanOptions options, Context context) してください。

AMQP 呼び出しの新しいトレーススパンを作成します。

default Context start(String methodName, StartSpanOptions options, Context context)

新しいトレーススパンを作成します。

フィールドの詳細

AZ_TRACING_NAMESPACE_KEY

@Deprecated
public static final String AZ_TRACING_NAMESPACE_KEY

非推奨

Azure リソース プロバイダー名前空間を Tracer ファクトリ メソッドに渡す createTracer(String libraryName, String libraryVersion, String azNamespace, TracingOptions options)

コンテキストに Context Azure リソース プロバイダー名前空間が含まれていることを示す キー。

DIAGNOSTIC_ID_KEY

@Deprecated
public static final String DIAGNOSTIC_ID_KEY

非推奨

サービス呼び出しの Context "診断 ID" がコンテキストに含まれていることを示す キー。

DISABLE_TRACING_KEY

public static final String DISABLE_TRACING_KEY

現在のコンテキストに Context 関連付けられている要求のトレースを無効にするキー。

ENTITY_PATH_KEY

public static final String ENTITY_PATH_KEY

コンテキストに Context エンティティ パスが含まれていることを示す キー。

HOST_NAME_KEY

public static final String HOST_NAME_KEY

コンテキストに Context ホスト名が含まれていることを示す キー。

MESSAGE_ENQUEUED_TIME

@Deprecated
public static final String MESSAGE_ENQUEUED_TIME

非推奨

リンクの属性としてエンキューされた時間を使用 addLink(TracingLink link) して渡します。

パーティションの Context ストリーム内の最後にエンキューされたメッセージの時刻を示す キー。

PARENT_SPAN_KEY

@Deprecated
public static final String PARENT_SPAN_KEY

非推奨

PARENT_TRACE_CONTEXT_KEYを優先して非推奨となり、完全な io を伝達するために使用します。opentelemetry。コンテキスト

コンテキストに Context 親スパン データが含まれていることを示す キー。 このスパンは、SDK によって作成されるすべてのスパンの親スパンとして使用されます。

スパンの作成時にスパン データが一覧表示されない場合、既定では、このスパン キーが親スパンとして使用されます。

PARENT_TRACE_CONTEXT_KEY

public static final String PARENT_TRACE_CONTEXT_KEY

Context キーを使用してトレース コンテキストを格納します。 このコンテキストは、新しいスパンの親コンテキストとして使用され、発信 HTTP 呼び出しで伝達されます。

SCOPE_KEY

@Deprecated
public static final String SCOPE_KEY

非推奨

代わりに を使用 makeSpanCurrent(Context context) してください。

Context指定されたスパンが現在のコンテキストにあるコードのスコープのキー。

SPAN_BUILDER_KEY

@Deprecated
public static final String SPAN_BUILDER_KEY

非推奨

代わりに を使用 addLink(TracingLink link) する

現在の Context コンテキストにある共有スパン ビルダーを示す キー。

SPAN_CONTEXT_KEY

public static final String SPAN_CONTEXT_KEY

コンテキストに Context メッセージ スパン コンテキストが含まれていることを示すキー。

USER_SPAN_NAME_KEY

@Deprecated
public static final String USER_SPAN_NAME_KEY

非推奨

スパン名をトレーサーに渡してください。start メソッド。

Context作成されたユーザースパンの名前がコンテキストに含まれていることを示すキー。

スパンの作成時にスパン名が一覧表示されない場合、呼び出し元のメソッドの名前が既定で使用されます。

メソッドの詳細

addEvent

@Deprecated
public default void addEvent(String name, Map attributes, OffsetDateTime timestamp)

非推奨

指定 timestamp された と を使用して、現在のスパンにイベントを attributes追加します。

指定されたタイムスタンプが現在のスパンの範囲外である場合、この API は正規化を提供しませんタイムライン

サポートされている属性値には、String、double、boolean、long、String []、double []、long []が含まれます。 その他の Object 値型と null 値は無視されます。

Parameters:

name - イベントの名前。
attributes - イベントに設定する追加の属性。
timestamp - イベントがスパンに関連付けられるインスタント (UTC)。

addEvent

public default void addEvent(String name, Map attributes, OffsetDateTime timestamp, Context context)

指定timestampされた と attributesを使用して、 に存在するスパンにContextイベントを追加します。

指定されたタイムスタンプが現在のスパンの範囲外である場合、この API は正規化を提供しませんタイムライン

サポートされている属性値には、String、double、boolean、long、String []、double []、long []が含まれます。 その他の Object 値型と null 値は無視されます。

Context span = tracer.start("Cosmos.getItem", Context.NONE);
 tracer.addEvent("trying another endpoint", Collections.singletonMap("endpoint", "westus3"), OffsetDateTime.now(), span);

Parameters:

name - イベントの名前。
attributes - イベントに設定する追加の属性。
timestamp - イベントがスパンに関連付けられるインスタント (UTC)。
context - イベントを関連付ける必要があるスパンの情報を含む呼び出しメタデータ。

addLink

@Deprecated
public default void addLink(Context context)

非推奨

)} を使用 addLink(TracingLink link) する

複数のトレーススパンをリンクする方法を提供します。 バッチ処理操作で使用され、1 つのバッチで複数の要求を関連付けます。

コード サンプル

スパン コンテキスト情報を使用して複数のスパンをリンクする

Parameters:

context - 呼び出し履歴を介して渡される追加のメタデータ。

end

@Deprecated
public default void end(int responseCode, Throwable error, Context context)

非推奨

特定の属性 e を設定します。g. 明示的にhttp_status_codeし、 を使用 end(String errorMessage, Throwable throwable, Context context)します。

現在のトレーススパンを完了します。

コード サンプル

コンテキストに存在するトレーススパンを完了し、指定された応答状態コードに対応する OpenTelemetry 状態を指定します。

Parameters:

responseCode - スパンが HTTP 呼び出しコンテキストにある場合の応答状態コード。
error - Throwable スパン中、または null 例外が発生しなかった場合に発生した。
context - 呼び出し履歴を介して渡される追加のメタデータ。

end

public abstract void end(String errorMessage, Throwable throwable, Context context)

コンテキストのスパンを完了します。

コード サンプル

未設定の状態でトレーススパンを完了します

Context messageSpan = tracer.start("ServiceBus.message", new StartSpanOptions(SpanKind.PRODUCER), Context.NONE);
 tracer.end(null, null, messageSpan);

指定されたエラー メッセージを使用してトレーススパンを完了します

Context span = tracer.start("ServiceBus.send", new StartSpanOptions(SpanKind.CLIENT), Context.NONE);
 tracer.end("amqp:not-found", null, span);

指定された例外を使用してトレーススパンを完了します

Context sendSpan = tracer.start("ServiceBus.send", new StartSpanOptions(SpanKind.CLIENT), Context.NONE);
 try (AutoCloseable scope = tracer.makeSpanCurrent(sendSpan)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, sendSpan);
 }

Parameters:

errorMessage - 呼び出し中に発生したエラー メッセージ。エラー null がない場合は 。 発生。 その他の null 以外の文字列は、 で errorMessage説明が指定されたエラーを示します。
throwable - Throwable スパン中、または null 例外が発生しなかった場合に発生した。
context - 呼び出し履歴を介して渡される追加のメタデータ。

extractContext

@Deprecated
public default Context extractContext(String diagnosticId, Context context)

非推奨

アップストリームから としてスパンのコンテキストを Context 抽出します。

コード サンプル

有効な診断 ID から対応するスパン コンテキスト情報を抽出します

Parameters:

diagnosticId - スパンのトレース情報の一意識別子。
context - 呼び出し履歴を介して渡される追加のメタデータ。

Returns:

スパン コンテキストを含む更新 Context されたオブジェクト。

extractContext

public default Context extractContext(Function headerGetter)

アップストリームから としてスパンのコンテキストを Context 抽出します。

コード サンプル

有効な診断 ID から対応するスパン コンテキスト情報を抽出します

Context parentContext = tracer.extractContext(name -> {
     Object value = messageProperties.get(name);
     return value instanceof String ? (String) value : null;
 });

 StartSpanOptions remoteParentOptions = new StartSpanOptions(SpanKind.CONSUMER)
     .setRemoteParent(parentContext);

 Context spanWithRemoteParent = tracer.start("EventHubs.process", remoteParentOptions, Context.NONE);

 try (AutoCloseable scope = tracer.makeSpanCurrent(spanWithRemoteParent)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, spanWithRemoteParent);
 }

Parameters:

headerGetter - スパンと todo のトレース情報の一意識別子。

Returns:

スパン コンテキストを含む更新 Context されたオブジェクト。

getSharedSpanBuilder

@Deprecated
public default Context getSharedSpanBuilder(String spanName, Context context)

非推奨

代わりに を使用 addLink(TracingLink link) する

で指定された名前 Contextを持つスパン ビルダーを返します。

コード サンプル

指定されたスパン名を持つビルダーを返します。

Parameters:

spanName - 作成したビルダーのスパンを指定する名前。
context - 呼び出し履歴を介して渡される追加のメタデータ。

Returns:

スパン ビルダーを含む更新 Context されたオブジェクト。

injectContext

public default void injectContext(BiConsumer headerSetter, Context context)

トレース コンテキストを挿入します。

Context httpSpan = tracer.start("HTTP GET", new StartSpanOptions(SpanKind.CLIENT), methodSpan);
 tracer.injectContext((headerName, headerValue) -> request.setHeader(headerName, headerValue), httpSpan);

 try (AutoCloseable scope = tracer.makeSpanCurrent(httpSpan)) {
     HttpResponse response = getResponse(request);
     httpResponseCode = response.getStatusCode();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(httpResponseCode, throwable, httpSpan);
 }

Parameters:

headerSetter - を使用してコンテキストを設定するコールバック。
context - トレース コンテキスト インスタンス

isEnabled

public default boolean isEnabled()

トレーサーが有効になっているかどうかを確認します。

if (!tracer.isEnabled()) {
     doWork();
 } else {
     Context span = tracer.start("span", Context.NONE);
     try {
         doWork();
     } catch (Throwable ex) {
         throwable = ex;
     } finally {
         tracer.end(null, throwable, span);
     }
 }

Returns:

トレーサーが有効な場合は true、それ以外の場合は false。

makeSpanCurrent

public default AutoCloseable makeSpanCurrent(Context context)

スパンを最新にします。 実装によって ThreadLocal に配置される場合があります。 makeSpanCurrent で try-with-resource ステートメントを常に使用してください

Parameters:

context - スパンを持つコンテキスト。
 Context span = tracer.start("EventHubs.process", new StartSpanOptions(SpanKind.CONSUMER), Context.NONE);
 try (AutoCloseable scope = tracer.makeSpanCurrent(span)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, span);
 }
 

Returns:

try-with-resource ステートメントを使用して同じスレッドで閉じる必要がある Closeable。

setAttribute

public abstract void setAttribute(String key, String value, Context context)

現在のスパンにメタデータを追加します。 コンテキストでスパン情報が見つからない場合、メタデータは追加されません。

span = tracer.start("EventHubs.process", Context.NONE);
 tracer.setAttribute("bar", "baz", span);

Parameters:

key - メタデータ名。
value - メタデータの値。
context - 呼び出し履歴を介して渡される追加のメタデータ。

setAttribute

public default void setAttribute(String key, long value, Context context)

long 属性を設定します。

Context span = tracer.start("EventHubs.process", Context.NONE);
 tracer.setAttribute("foo", 42, span);

Parameters:

key - 属性名
value - atteribute 値
context - トレース コンテキスト

setSpanName

@Deprecated
public default Context setSpanName(String spanName, Context context)

非推奨

必要ありません。

作成されるスパンの名前を設定します。

コード サンプル

返されるスパンのスパン名を取得する

Parameters:

spanName - 次のスパンを指定する名前。
context - 呼び出し履歴を介して渡される追加のメタデータ。

Returns:

返されるスパンの名前を含む更新 Context されたオブジェクト。

start

public abstract Context start(String methodName, Context context)

新しいトレーススパンを作成します。

context 、親スパンに関する情報を確認します。 親スパンが見つかった場合、新しいスパンは子として追加されます。 それ以外の場合、親スパンが作成されて に context 追加され、ダウンストリーム start() 呼び出しでは作成されたスパンが親として使用されます。

コード サンプル

指定されたメソッド名と明示的な親スパンを使用してトレーススパンを開始します

// start a new tracing span with given name and parent context implicitly propagated
 // in io.opentelemetry.context.Context.current()

 Throwable throwable = null;
 Context span = tracer.start("keyvault.setsecret", Context.NONE);
 try {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, span);
 }

Parameters:

methodName - スパンの作成をトリガーするメソッドの名前。
context - 呼び出し履歴を介して渡される追加のメタデータ。

Returns:

返されたスパンを含む更新 Context されたオブジェクト。

start

@Deprecated
public default Context start(String spanName, Context context, ProcessKind processKind)

非推奨

代わりに を使用 start(String methodName, StartSpanOptions options, Context context) してください。

AMQP 呼び出しの新しいトレーススパンを作成します。

context 、親スパンに関する情報を確認します。 親スパンが見つかった場合、新しいスパンは子として追加されます。 それ以外の場合、親スパンが作成されて に context 追加され、ダウンストリーム start() 呼び出しでは作成されたスパンが親として使用されます。

SENDの場合、作成されたスパンに追加の要求属性をprocessKind設定します。

が の場合、返されるスパンの診断 ID とスパン コンテキストをprocessKindMESSAGE返します。

が の場合processKindPROCESS、リモート親を持つ新しいトレース スパンを作成し、 が の場合にそのスコープを返します。

コード サンプル

指定されたメソッド名と AMQP 操作 SEND を使用してトレーススパンを開始します

Parameters:

spanName - スパンの作成をトリガーするメソッドの名前。
context - 呼び出し履歴を介して渡される追加のメタデータ。
processKind - AMQP 操作の種類。

Returns:

返されたスパンを含む更新 Context されたオブジェクト。

start

public default Context start(String methodName, StartSpanOptions options, Context context)

新しいトレーススパンを作成します。

context 、親スパンに関する情報を確認します。 親スパンが見つかった場合、新しいスパンは子として追加されます。 それ以外の場合、親スパンが作成されて に context 追加され、ダウンストリーム start() 呼び出しでは作成されたスパンが親として使用されます。

コード サンプル

指定されたメソッド名と明示的な親スパンを使用してトレーススパンを開始します

// start a new CLIENT tracing span with the given start options and explicit parent context
 StartSpanOptions options = new StartSpanOptions(SpanKind.CLIENT)
     .setAttribute("key", "value");
 Context spanFromOptions = tracer.start("keyvault.setsecret", options, Context.NONE);
 try {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, spanFromOptions);
 }

Parameters:

methodName - スパンの作成をトリガーするメソッドの名前。
options - スパン作成オプション。
context - 呼び出し履歴を介して渡される追加のメタデータ。

Returns:

返されたスパンを含む更新 Context されたオブジェクト。

適用対象