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
非推奨
コンテキストの伝達には と injectContext(BiConsumer<String,String> headerSetter, Context context) を使用extractContext(Function<String,String> headerGetter)します。
サービス呼び出しの 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 を伝達するために使用します。
コンテキストに 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
非推奨
スパン名をトレーサーに渡してください。
Context作成されたユーザースパンの名前がコンテキストに含まれていることを示すキー。 |
メソッドの概要
フィールドの詳細
AZ_TRACING_NAMESPACE_KEY
@Deprecated
public static final String AZ_TRACING_NAMESPACE_KEY
非推奨
コンテキストに 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
非推奨
パーティションの Context ストリーム内の最後にエンキューされたメッセージの時刻を示す キー。
PARENT_SPAN_KEY
@Deprecated
public static final String PARENT_SPAN_KEY
非推奨
コンテキストに 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
非推奨
Context指定されたスパンが現在のコンテキストにあるコードのスコープのキー。
SPAN_BUILDER_KEY
@Deprecated
public static final String SPAN_BUILDER_KEY
非推奨
現在の 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
非推奨
Context作成されたユーザースパンの名前がコンテキストに含まれていることを示すキー。
スパンの作成時にスパン名が一覧表示されない場合、呼び出し元のメソッドの名前が既定で使用されます。
メソッドの詳細
addEvent
@Deprecated
public default void addEvent(String name, Map
非推奨
指定 timestamp
された と を使用して、現在のスパンにイベントを attributes
追加します。
指定されたタイムスタンプが現在のスパンの範囲外である場合、この API は正規化を提供しませんタイムライン
サポートされている属性値には、String、double、boolean、long、String []、double []、long []が含まれます。 その他の Object 値型と null 値は無視されます。
Parameters:
addEvent
public default void addEvent(String name, Map
指定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:
addLink
@Deprecated
public default void addLink(Context context)
非推奨
複数のトレーススパンをリンクする方法を提供します。 バッチ処理操作で使用され、1 つのバッチで複数の要求を関連付けます。
コード サンプル
スパン コンテキスト情報を使用して複数のスパンをリンクする
Parameters:
end
@Deprecated
public default void end(int responseCode, Throwable error, Context context)
非推奨
現在のトレーススパンを完了します。
コード サンプル
コンテキストに存在するトレーススパンを完了し、指定された応答状態コードに対応する OpenTelemetry 状態を指定します。
Parameters:
null
例外が発生しなかった場合に発生した。
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:
null
がない場合は 。
発生。 その他の null 以外の文字列は、 で errorMessage
説明が指定されたエラーを示します。
null
例外が発生しなかった場合に発生した。
extractContext
@Deprecated
public default Context extractContext(String diagnosticId, Context context)
非推奨
アップストリームから としてスパンのコンテキストを Context 抽出します。
コード サンプル
有効な診断 ID から対応するスパン コンテキスト情報を抽出します
Parameters:
Returns:
extractContext
public default Context extractContext(Function
アップストリームから としてスパンのコンテキストを 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:
Returns:
getSharedSpanBuilder
@Deprecated
public default Context getSharedSpanBuilder(String spanName, Context context)
非推奨
で指定された名前 Contextを持つスパン ビルダーを返します。
コード サンプル
指定されたスパン名を持つビルダーを返します。
Parameters:
Returns:
injectContext
public default void injectContext(BiConsumer
トレース コンテキストを挿入します。
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:
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:
makeSpanCurrent
public default AutoCloseable makeSpanCurrent(Context context)
スパンを最新にします。 実装によって ThreadLocal に配置される場合があります。 makeSpanCurrent で try-with-resource ステートメントを常に使用してください
Parameters:
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:
setAttribute
public abstract void setAttribute(String key, String value, Context context)
現在のスパンにメタデータを追加します。 コンテキストでスパン情報が見つからない場合、メタデータは追加されません。
span = tracer.start("EventHubs.process", Context.NONE);
tracer.setAttribute("bar", "baz", span);
Parameters:
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:
setSpanName
@Deprecated
public default Context setSpanName(String spanName, Context context)
非推奨
作成されるスパンの名前を設定します。
コード サンプル
返されるスパンのスパン名を取得する
Parameters:
Returns:
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:
Returns:
start
@Deprecated
public default Context start(String spanName, Context context, ProcessKind processKind)
非推奨
AMQP 呼び出しの新しいトレーススパンを作成します。
は context
、親スパンに関する情報を確認します。 親スパンが見つかった場合、新しいスパンは子として追加されます。 それ以外の場合、親スパンが作成されて に context
追加され、ダウンストリーム start()
呼び出しでは作成されたスパンが親として使用されます。
が SENDの場合、作成されたスパンに追加の要求属性をprocessKind
設定します。
が の場合、返されるスパンの診断 ID とスパン コンテキストをprocessKind
MESSAGE返します。
が の場合processKind
PROCESS、リモート親を持つ新しいトレース スパンを作成し、 が の場合にそのスコープを返します。
コード サンプル
指定されたメソッド名と AMQP 操作 SEND を使用してトレーススパンを開始します
Parameters:
Returns:
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:
Returns:
適用対象
Azure SDK for Java