11.3.6 取得方針
(1) 基本
Spanの基本の取得方針について説明します。EADS、XAについては、「(2) EADS(通常版限定)」および「(3) XA関数(SQL-Participant限定)」を参照してください。
取得個所、取得情報、および情報を取得するSpanについて説明します。
(a) 取得個所方針
HMP-PCTOではSpanを一般的な取得個所と、製品保守観点での取得個所で取得します。
一般的な取得個所でのSpanと、製品保守観点での取得個所でのSpanを、Spanに付与するオペレーション名で区別できます。オペレーション名は、各コンポーネント内の特定処理(オペレーション)を特定するため、製品のJavaクラス名やメソッド名などを組み合わせた文字列です。一般的な取得個所のSpanは、オペレーション名冒頭に「Recv」を付与します。なお、ここで示す図はSQL-Participantを使用する場合です。TCC-Participantを使用する場合、Entity-ServiceをEntity-Moduleと読み替えてください。
- 一般的な取得個所
-
分散トレースは一般的に、マイクロサービス間の情報を把握するために1回のサービス呼び出しで1Span取得します。HMP-PCTOでも、各コンポーネントでの処理開始時の上位処理でSpanを取得します。上位処理から呼び出す下位処理では別途Spanは取得しません。例外として、「製品保守観点での取得個所」に示す個所でSpanを取得します。
図11‒20 取得イメージ図 - 製品保守観点での取得個所
-
一般的なSpanの取得個所で情報を取得できない処理について、製品処理の調査のため別途Spanを取得します。
- 上位処理とは非同期に処理を実行する場合
-
タイマ処理など、他コンポーネントから要求の延長で実施した処理から登録し、別スレッドで実施する処理があります。これらの処理は登録元の処理が完了しても処理は続行するため、処理の終了時などの情報を、登録元のSpanへ登録できません。
そのため、コンポーネント内処理に応じて、次のどれかで取得します。
-
処理途中および終了時の情報を取得する場合(他コンポーネントや他製品と連携する場合など)
登録元処理のSpanを親Spanとした新たなSpanを作成します。
-
起動時の情報だけを取得する場合(処理途中、終了時情報が不要の場合)
登録元処理のSpanに、情報を付加します。
図11‒21 例1タイマ処理
-
- 電文送信処理
-
HMP-PCTOでは、複数の通信相手へ複数スレッドで同時送信する処理があります(OrchestratorからMediatorへのトランザクション決着要求など)。送信先の情報だけでは、ネットワーク遅延などが起きた場合に原因調査が難しいため、送信元での電文送受信時の情報(宛先、送受信時刻など)を取得したいため、送信先数分の情報取得が必要です。それらを1つのSpanで管理すると、宛先ごとの情報の確認がしづらくなります。そのため、送信先ごとに子Spanを取得し、送信先ごとの情報を子Spanで取得します。
図11‒22 通信処理
(b) 取得する付加情報方針
HMP-PCTOが取得する付加情報について説明します。
次の観点で付加情報を取得します。
-
他トラブルシュート情報との紐づけ情報(ルートXID/ブランチXIDなど)
-
対象処理がどこで実施した処理かの識別情報(ホスト名、スレッド名など)
-
通信先の情報(送信先のIPアドレス、ポート番号など)
-
通信データ(他コンポーネントへの指示内容(Commit/rollback要求)など)
-
対象処理の結果(commit/rollbackなど)
-
実行時間情報(ユーザアプリケーション、ファイルI/Oなど開始終了時間など)
- 重要
-
分散トレース閲覧サービスで確認できる情報について
HMP-PCTOのコンポーネントが取得する付加情報が同一であっても、使用する分散トレース閲覧サービスによっては、名称が異なったり、確認できなかったり、HMP-PCTOが取得した付加情報以外の情報が取得されていたりする場合があります。
詳細については、使用する分散トレース閲覧サービスのドキュメントを参照してください。
Azure Monitor Application Insightsを使用する場合に取得される情報については、Microsoftの公式ドキュメントを参照してください。
付加する情報の一覧を次に示します。
- コンポーネント共通
-
HMP-PCTOのコンポーネントが、共通でSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒9 コンポーネント共通の付加情報(スパンタグ) 項番
情報名
Jaegerを使用する場合
Azure Monitor Application Insightsを使用する場合
設定する情報値の説明
1
root-xid
○
○
ルートXIDをbase64エンコードした値を設定します。
ルートXIDとブランチXIDのうち、ルートXIDを使用する処理の場合に設定します。
2
branch-xid
○
○
ブランチXIDをbase64エンコードした値を設定します。
ルートXIDとブランチXIDのうち、ブランチXIDを使用する処理の場合に設定します。
3
thread-name
○
○
Spanが取得されたスレッド名を設定します。
4
otel.library.name
○
−
Spanを取得するライブラリの名称を設定します。
HMP-PCTOのライブラリで取得されたSpanの場合、「HMP-PCTO」が設定されます。
5
otel.library.version
○
−
Spanを取得するライブラリのバージョンを設定します。
HMP-PCTOのライブラリで取得されたSpanの場合、HMP-PCTOのライブラリのバージョン「V.R.S」が設定されます。
6
otel.scope.name
○
−
Spanを取得するスコープの名称を設定します。
HMP-PCTOのスコープで取得されたSpanの場合、「HMP-PCTO」が設定されます。
7
otel.scope.version
○
−
Spanを取得するスコープのバージョンを設定します。
HMP-PCTOのスコープで取得されたSpanの場合、HMP-PCTOのバージョン「V.R.S」が設定されます。
8
internal.span.format
○
−
Spanのフォーマットを設定します。
Jaeger向けのSpanの場合、「jaeger」が設定されます。
- (凡例)
-
○:分散トレース閲覧サービスで確認できます。
−:分散トレース閲覧サービスで確認できません。
-
スパンイベント
なし
-
スパンコンテキスト
表11‒10 コンポーネント共通の付加情報(スパンコンテキスト) 項番
情報名
Jaegerを使用する場合
Azure Monitor Application Insightsを使用する場合
設定する情報値の説明
1
hostname
○
−
コンポーネントのホスト名を設定します。
2
Role instance
−
○
コンポーネントのホスト名を設定します。
3
ip
○
−
コンポーネントのIPアドレスを設定します。
4
jaeger.version
○
−
Jaegerを使用する場合だけ設定されます。
HMP-PCTOが使用しているOpenTelemetryのライブラリを設定します。
「opentelemetry-java」が設定されます。
5
service.name
○
−
HMP-PCTOのjp.co.Hitachi.soft.hmppcto.tracing.instance-idパラメタに設定した値が設定されます。
6
Role name
−
○
HMP-PCTOのjp.co.Hitachi.soft.hmppcto.tracing.instance-idパラメタに設定した値が設定されます。
7
telemetry.sdk.language
○
−
HMP-PCTOが使用しているOpenTelemetryのライブラリの言語を設定します。
「java」が設定されます。
8
telemetry.sdk.name
○
−
HMP-PCTOが使用しているOpenTelemetryのライブラリの名称を設定します。
「opentelemetry」が設定されます。
9
telemetry.sdk.version
○
−
HMP-PCTOが使用しているOpenTelemetryのバージョンを設定します。
HMP-PCTO 01-01以降では、「1.38.0」が設定されます。
- (凡例)
-
○:分散トレース閲覧サービスで確認できます。
−:分散トレース閲覧サービスで確認できません。
-
- REST通信
-
コンポーネント共通の情報に加えて、REST通信を実施する際にSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒11 REST通信の付加情報(スパンタグ) 項番
項目名
説明
1
http-method
リクエストのHTTPメソッド。
例:POST、GETなど
2
http-url
リクエストのURL。
3
routed-http-url
オートスケール機能のルーティング処理による書き換え後のリクエストURL。
オートスケール機能を使用する場合だけ、この項目を設定します。
4
http-status-code
レスポンスのHTTPステータスコード。
通信障害でレスポンスが受信できなかった場合、この項目は設定されません。
-
スパンイベント
なし
-
スパンコンテキスト
付加情報はありません。
-
- gRPC通信
-
コンポーネント共通の情報に加えて、gRPC通信を実施する際にSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒12 gRPC通信の付加情報(スパンタグ) 項番
項目名
Jaegerを使用する場合
Azure Monitor Application Insightsを使用する場合
説明
1
network.peer.address
○
−
ネットワーク接続先のIPアドレスを設定します。
2
network.peer.port
○
−
ネットワーク接続先のポート番号を設定します。
3
network.type
○
−
ネットワークの種別を設定します。
「ipv4」を設定します。
4
rpc.grpc.status_code
○
−
gRPCのステータスコードを設定します。
5
rpc.method
○
−
gRPCのメソッドを設定します。
6
rpc.service
○
−
gRPCのサービスを設定します。
7
rpc.system
○
−
RPCの種別を設定します。
「grpc」が設定されます。
8
server.address
○
−
gRPCサーバのIPアドレスまたはホスト名を設定します。
9
server.port
○
−
gRPCサーバのポート番号を設定します。
10
span.kind
○
−
Span種別を設定します。
-
gRPCサーバの場合:「server」が設定されます。
-
gRPCクライアントの場合:「client」が設定されます。
11
otel.scopelibrary.name
○
−
gRPC通信に関するSpanを取得するライブラリの名称を設定します。
12
otel.scopelibrary.version
○
−
gRPC通信に関するSpanを取得するライブラリのバージョンを設定します。
13
otel.scope.name
○
−
gRPC通信に関するSpanを取得するスコープの名称を設定します。
「io.opentelemetry.grpc-1.6」が設定されます。
14
otel.scope.version
○
−
gRPC通信に関するSpanを取得するスコープのバージョンを設定します。
- (凡例)
-
○:分散トレース閲覧サービスで確認できます。
−:分散トレース閲覧サービスで確認できません。
-
-
スパンイベント
表11‒13 gRPC通信の付加情報(スパンイベント) 項番
項目名
説明
追加情報名
設定する情報値の説明
1
message
gRPCのメッセージ送信が行われたことを意味します。
message.id
メッセージのシーケンス番号
2
message.type
メッセージ送信時は「SENT」が設定されます。メッセージ受信時は「RECEIVED」が設定されます。
3
sent message(hmppcto)
gRPCのメッセージ送信が行われたことを意味します。
jp.co.Hitachi.soft.hmppcto.tracing.grpc.debugパラメタがtrueの場合だけ取得されます。
json-convert
JSON形式での出力か、protobuf形式での出力かを示します。
true: JSON形式
false: protobuf形式
4
message-value
電文内容。
5
thread-name
gRPC通信のメッセージを送信したスレッド名を設定します。
6
received message(hmppcto)
gRPCのメッセージ受信が行われたことを意味します。
jp.co.Hitachi.soft.hmppcto.tracing.grpc.debugパラメタがtrueの場合だけ取得されます。
json-convert
JSON形式での出力か、protobuf形式での出力かを示します。
true: JSON形式
false: protobuf形式
7
message-value
電文内容。
8
thread-name
gRPC通信のメッセージを送信したスレッド名を設定します。
-
スパンコンテキスト
付加情報はありません。
-
- Orchestrator
-
コンポーネント共通の情報に加えて、OrchestratorがSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒14 Orchestratorの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
result
グローバルトランザクション決着結果
-
Commit
コミット
-
Rollback
ロールバック
-
Failure
トランザクション決着失敗
-
-
スパンイベント
表11‒15 Orchestratorの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
start:service
OrchestratorのHMP-PCTOのトランザクション処理の開始を意味します。
情報なし
−
2
end:service
OrchestratorのHMP-PCTOのトランザクション処理の終了を意味します。
情報なし
−
3
start:AP
Orchestratorのユーザアプリケーション開始を意味します。
情報なし
−
4
end:AP
Orchestratorのユーザアプリケーション終了を意味します。
情報なし
−
5
start:execute
Orchestratorのユーザアプリケーションの送信処理内でHMP-PCTOの前処理が完了し送信処理を開始したことを意味します。
情報なし
−
6
end:execute
Orchestratorのユーザアプリケーションの送信処理内で送信処理が終了しHMP-PCTOの後処理を開始したことを意味します。
情報なし
−
7
response:get-status-code
Orchestratorのユーザアプリケーションの送信処理内でHMP-PCTOが応答のステータスコードを確認をしたことを意味します。
情報なし
−
(凡例)−:該当しません。
-
スパンコンテキスト
付加情報はありません。
-
- Entity-ServiceまたはEntity-Module
-
コンポーネント共通の情報に加えて、Entity-ServiceまたはEntity-ModuleがSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒16 Entity-ServiceまたはEntity-Moduleの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
result
Orchestratorへのトランザクション結果
-
Commit
コミット
-
Rollback
ロールバック
2
prepare
先行prepareの実施有無
-
Y
実行
-
N
未実行
-
-
スパンイベント
表11‒17 Entity-ServiceまたはEntity-Moduleの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
start:service
Entity-ServiceまたはEntity-ModuleのHMP-PCTOのトランザクション処理のアプリケーション開始を意味します。
情報なし
−
2
end:service
Entity-ServiceまたはEntity-ModuleのHMP-PCTOのトランザクション処理のアプリケーション終了を意味します。
情報なし
−
3
start:AP
Entity-ServiceまたはEntity-Moduleのユーザアプリケーション開始を意味します。
情報なし
−
4
end:AP
Entity-ServiceまたはEntity-Moduleのユーザアプリケーション終了を意味します。
情報なし
−
5
start:execute
Entity-ServiceまたはEntity-Moduleのユーザアプリケーションの送信処理内でHMP-PCTOの前処理が完了し送信処理を開始したことを意味します。
情報なし
−
6
end:execute
Entity-ServiceまたはEntity-Moduleのユーザアプリケーションの送信処理内で送信処理が終了しHMP-PCTOの後処理を開始したことを意味します。
情報なし
−
7
response:get-status-code
Entity-ServiceまたはEntity-Moduleのユーザアプリケーションの送信処理内でHMP-PCTOが応答のステータスコードを確認をしたことを意味します。
情報なし
−
(凡例)−:該当しません。
-
スパンコンテキスト
付加情報はありません。
-
- SQL-Participant
-
コンポーネント共通の情報に加えて、SQL-ParticipantでSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒18 SQL-Participantの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
consensus-value
分散合意結果
-
Commit
コミット
-
Rollback
ロールバック
2
external-consensus
補助合意実施有無
-
Y
補助合意実施
-
N
補助合意未実施
3
mediator-id
Mediatorのhost名とport番号を意味します。
4
proposer-id
Participant情報(<Service名>.<Namespace名>:IPアドレス:ホスト名)を意味します。
5
propose-values
投票内容を意味します。
-
COMMIT_VOTE
コミット投票
-
ROLLBACK_VOTE
ロールバック投票
6
before-transaction-status
遷移前のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
7
after-transaction-status
遷移後のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
8
recover-pod-hostname
recover担当となったPodのホスト名
9
recover-pod-ip
recover担当となったPodのIP
10
prepare
null
Entity-Serviceからトランザクションブランチのprepare要求を受けたことを意味します。
11
cancel
null
Entity-Serviceからトランザクションブランチのcancel要求を受けたことを意味します。
-
-
スパンイベント
表11‒19 SQL-Participantの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
learning log size m/n
LearningLog(Mediatorから受信した合意)の数、m:受信数、n:Mediator数です。
情報なし
−
2
fast consensus
高速合意の実施を意味します。
情報なし
−
3
skip consensus
分散合意条件を満たせないため、分散合意をスキップしたことを意味します。
情報なし
−
4
external consensus
補助合意の実施を意味します。
情報なし
−
5
consensus finished
タイムアウト前に分散合意が完了していたことを意味します。
情報なし
−
6
The consensus has not been terminated for a long time.
分散合意が回収時間を経過していたことを意味します。
情報なし
−
7
start:termination-judge
Mediatorへの投票開始を意味します。
情報なし
−
8
end:termination-judge
Mediatorへの投票終了を意味します。
情報なし
−
9
start:jdbc <JDBC Driverのクラス名>.<JDBC Driverのメソッド名>
ParticipantでのJDBCメソッド開始を意味します。
jp.co.Hitachi.soft.hmppcto.tracing.jdbc.debugパラメタがtrueの場合だけ取得されます。
情報なし
−
10
end:jdbc
ParticipantでのJDBCメソッド終了を意味します。
jp.co.Hitachi.soft.hmppcto.tracing.jdbc.debugパラメタがtrueの場合だけ取得されます。
情報なし
−
11
start:recover-job
オートスケール機能を使用する場合の、未決着トランザクションのRecovery機能の処理開始を意味します。
情報なし
−
12
end:recover-job
オートスケール機能を使用する場合の、未決着トランザクションのRecovery機能の処理終了を意味します。
情報なし
−
(凡例)−:該当しません。
-
スパンコンテキスト
付加情報はありません。
-
- TCC-Participant
-
コンポーネント共通の情報に加えて、TCC-ParticipantでSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒20 TCC-Participantの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
consensus-value
分散合意結果
-
Commit
コミット
-
Rollback
ロールバック
2
external-consensus
補助合意実施有無
-
Y
補助合意実施
-
N
補助合意未実施
3
mediator-id
Mediatorのhost名とport番号を意味します。
4
proposer-id
Participant情報(<Service名>.<Namespace名>:IPアドレス:ホスト名)を意味します。
5
propose-values
投票内容を意味します。
-
COMMIT_VOTE
コミット投票
-
ROLLBACK_VOTE
ロールバック投票
6
before-transaction-status
遷移前のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
7
after-transaction-status
遷移後のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
-
-
スパンイベント
表11‒21 TCC-Participantの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
learning log size m/n
LearningLog(Mediatorから受信した合意)の数、m:受信数、n:Mediator数です。
情報なし
−
2
fast consensus
高速合意の実施を意味します。
情報なし
−
3
skip consensus
分散合意条件を満たせないため、分散合意をスキップしたことを意味します。
情報なし
−
4
external consensus
補助合意の実施を意味します。
情報なし
−
5
consensus finished
タイムアウト前に分散合意が完了していたことを意味します。
情報なし
−
6
The consensus has not been terminated for a long time.
分散合意が回収時間を経過していたことを意味します。
情報なし
−
7
start:termination-judge
Mediatorへの投票開始を意味します。
情報なし
−
8
end:termination-judge
Mediatorへの投票終了を意味します。
情報なし
−
9
start:try
Try開始を意味します。
情報なし
−
10
end:try
Try終了を意味します。
情報なし
−
11
start:confirm
confirm開始を意味します。
情報なし
−
12
end:confirm
confirm終了を意味します。
情報なし
−
13
start:cancel
cancel開始を意味します。
情報なし
−
14
end:cancel
cancel終了を意味します。
情報なし
−
(凡例)−:該当しません。
-
スパンコンテキスト
付加情報はありません。
-
- TP1-Bridge
-
コンポーネント共通の情報に加えて、TP1-BridgeでSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒22 TP1-Bridgeの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
consensus-value
分散合意結果
-
Commit
コミット
-
Rollback
ロールバック
2
external-consensus
補助合意実施有無
-
Y
補助合意実施
-
N
補助合意未実施
3
mediator-id
Mediatorのhost名とport番号を意味します。
4
proposer-id
Participant情報(<Service名>.<Namespace名>:IPアドレス:ホスト名)を意味します。
5
propose-values
投票内容を意味します。
-
COMMIT_VOTE
コミット投票
-
ROLLBACK_VOTE
ロールバック投票
6
before-transaction-status
遷移前のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
7
after-transaction-status
遷移後のトランザクションブランチの状態を意味します。
-
0
NONE
-
1
PREPARING
-
2
COMMIT_VOTE
-
3
READ_ONLY
-
4
ROLLBACK_VOTE
-
5
COMMITTING
-
6
ROLLING_BACK
-
7
COMMITTED
-
8
ROLLED_BACK
-
9
COMMIT_ERROR
-
10
ROLLBACK_ERROR
-
11
ROLLED_BACK_BY_RM
8
prepare
null
Entity-Serviceからトランザクションブランチのprepare要求を受けたことを意味します。
9
cancel
Null
Entity-Serviceからトランザクションブランチのcancel要求を受けたことを意味します。
-
-
スパンイベント
表11‒23 TP1-Bridgeの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
learning log size m/n
LearningLog(Mediatorから受信した合意)の数、m:受信数、n:Mediator数です。
情報なし
−
2
fast consensus
高速合意の実施を意味します。
情報なし
−
3
skip consensus
分散合意条件を満たせないため、分散合意をスキップしたことを意味します。
情報なし
−
4
external consensus
補助合意の実施を意味します。
情報なし
−
5
consensus finished
タイムアウト前に分散合意が完了していたことを意味します。
情報なし
−
6
The consensus has not been terminated for a long time.
分散合意が回収時間を経過していたことを意味します。
情報なし
−
7
start:termination-judge
Mediatorへの投票開始を意味します。
情報なし
−
8
end:termination-judge
Mediatorへの投票終了を意味します。
情報なし
−
9
start:<TP1/Client/Jのメソッド名>
またはstart:TP1-Converter
TP1/Client/Jのメソッドの呼び出し開始、またはTP1-Converterの呼び出し開始を意味します。
情報なし
−
10
end:<TP1/Client/Jのメソッド名>
またはend:TP1-Converter
TP1/Client/Jのメソッドの呼び出し終了、またはTP1-Converterの呼び出し終了を意味します。
情報なし
−
(凡例)−:該当しません。
-
スパンコンテキスト
付加情報はありません。
-
- Mediator
-
コンポーネント共通の情報に加えて、MediatorがSpanに付加する情報の一覧を次に示します。
-
スパンタグ
表11‒24 Mediatorの付加情報(スパンタグ) 項番
情報名
設定する情報値の説明
1
consensus-value
Participantでの分散合意結果
-
Commit
コミット
-
Rollback
ロールバック
2
consensusid
ConsensusIdの値を設定します。
3
prepare-priority
投票要求を送信する際の優先度を設定します。
-
-
スパンイベント
表11‒25 Mediatorの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
start:consensuslog
ConsensusLogへのアクセス(I/O)開始を意味します。
情報なし
−
2
end:consensuslog
ConsensusLogへのアクセス(I/O)終了を意味します。
情報なし
−
3
start:proposallog-add-propose
Proposal Logへのアクセス(投票内容保存)の開始を意味します。
propose-values
Proposal Logに保存した投票内容の一覧を設定します。
-
COMMIT_VOTE
Commit投票
-
ROLLBACK_VOTE
Rollback投票
一覧は上記の値を","(コンマ)区切りで設定します。
[]で囲まれた中には分散トレース取得時にParticipantから受信した投票内容を設定します。
4
end:proposallog-add-propose
Proposal Logへのアクセス(投票内容保存)の終了を意味します。
情報なし
−
5
start:proposallog-add-propose-participant
Proposal Logへのアクセス(投票を受信したParticipant情報保存)の開始を意味します。
participants-value
Proposal Logに保存した投票を受信したParticipant情報(<Service名>.<Namespace名>:IPアドレス:ホスト名)の一覧を設定します。
一覧は<Service名>.<Namespace名>:IPアドレス:ホスト名を","(コンマ)区切りで設定します。
[]で囲まれた中には分散トレース取得時にParticipantから受信した投票内容を設定します。
6
end:proposallog-add-propose-participant
Proposal Logへのアクセス(投票を受信したParticipant情報保存)の終了を意味します。
情報なし
−
7
start:proposallog-add-all-participants
Proposal Logへのアクセス(トランザクションに参加したParticipant情報(<Service名>.<Namespace名>))の一覧の保存の開始を意味します。
all-participants
Proposal Logに保存されたトランザクションに参加したParticipant情報(<Service名>.<Namespace名>)の一覧を設定します。
一覧は<Service名>.<Namespace名>を","(コンマ)区切りで設定します。
8
end:proposallog-add-all-participants
Proposal Logへのアクセス(トランザクションに参加したParticipant情報(<Service名>.<Namespace名>))の一覧の保存の終了を意味します。
情報なし
−
9
start:proposallog-delete
Proposal Logの削除開始を意味します。
proposal-log-before-size
Proposal Logの削除前の件数を設定します。
10
end:proposallog-delete
Proposal Logの削除終了を意味します。
proposal-log-after-size
Proposal Logの削除後の件数を設定します。
11
start: terminated-transaction-verify
ConsensusLogのトランザクション完了確認通知の送信開始を意味します。
consensus log size
完了確認通知の送信を行ったConsensus logの数を設定します。
12
end: terminated-transaction-verify
ConsensusLogのトランザクション完了確認通知の送信終了を意味します。
情報なし
−
13
send-consensus-value:更新可否の決着結果
Participantへ送信した更新可否の決着結果を示す
情報なし
−
(凡例)−:該当しません。
-
-
スパンコンテキスト
付加情報はありません。
-
(c) 情報を取得するSpanの方針
付加情報をどのSpanで取得するかについて説明します。
Spanに付加する情報は、全Span共通で付加するわけではなく、他コンポーネントから伝達された情報(ブランチXIDなど)やプロセスに関わる情報(ホスト名)などは、他コンポーネントから呼び出された先頭処理(主に受信処理)のSpanで取得します。先頭処理から生成/呼び出した処理は、先頭Spanと差異のある情報(スレッド名など)を取得します。次に示す図はSQL-Participantを使用する場合です。TCC-Participantを使用する場合、Entity-ServiceをEntity-Moduleと読み替えてください。
|
|
(2) EADS(通常版限定)
EADS API向け分散トレースは、分散合意取得機能の補助合意に使用されるEADSで、次の図に示すようなAPIを発行するParticipantとEADS間のデータ処理が妥当かどうかを判別するためにSpanを取得します。なお、トライアル版ではEADSは使用できません。
|
|
このSpanによって、EADSへのアクセス時間、実行内容、実行結果を分析可能とし、障害発生時にトラブルシュートが可能になります。
(a) 取得個所
EADS APIのcreateおよびget向けにParticipantから補助合意のためにEADS APIを呼び出す時にSpanを取得します。
(b) 取得する情報
コンポーネント共通の情報に加えて、EADS API向けのSpanで取得する情報を次に示します。
-
スパンタグ
なし。
-
スパンイベント
表11‒26 EADSの付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
start:EADS API
EADSのAPIの呼び出しが行われたことを意味します。
API-name
呼び出すEADS API名
-
create
createのEADS API
-
get
getのEADS API
2
consensus
補助合意提案値。createの場合だけ出力する。
-
Commit
コミット
-
Rollback
ロールバック
3
end:EADS API
EADSのAPIの実行が終わったことを意味します。
API-name
実行が終わったEADS API名
-
create
createのEADS API
-
get
getのEADS API
4
ret
取得した補助合意提案値。getの場合だけ出力する。
-
Commit
コミット
-
Rollback
ロールバック
5
failed:EADS API
EADSのAPIの実行中に例外が発生したことを意味します。
API name
例外が発生したEADS API名
-
create
createのEADS API
-
get
getのEADS API
6
message
例外の詳細メッセージ文字列
-
-
スパンコンテキスト
付加情報はありません。
(3) XA関数(SQL-Participant限定)
XA関数向け分散トレースは、SQL-ParticipantとDB間のデータ処理が妥当かどうかを判別するためにSpanを取得します。トランザクションを対象としたSpanのため、次の図に示すような、処理1、処理2、処理3の個別な情報を取得するだけではなく、各処理が1つのトランザクションであることを把握できるデータも合わせて出力を行い、トランザクション全体での妥当性も確認します。このSpanによって、XA関数の実行順序、実行内容、実行結果を分析し、障害発生時にトラブルシュートが可能になります。
|
|
(a) 取得個所
-
Participant初期化で、prepare済みのトランザクションを取得する時にSpanを取得します。
-
Participantで、Commit、またはRollbackの通知のgRPC通信を受信した時のSpanにスパンイベントを追加します。
(b) 取得する情報
コンポーネント共通の情報に加えて、XA関数向けのSpanで取得する情報を次に示します。
-
スパンタグ
なし。
-
スパンイベント
表11‒27 XA関数の付加情報(スパンイベント) 項番
情報説明名
意味
追加情報名
設定する情報値の説明
1
start: xa function
XA関数の呼び出しが行われたことを意味します。
xa-name
呼び出すXA関数名
-
xa_start
xa_start関数
-
xa_end
xa_end関数
-
xa_prepare
xa_prepare関数
-
xa_commit
xa_commit関数
-
xa_rollback
xa_rollback関数
-
xa_recover
xa_recover関数
2
end: xa function
XA関数の実行が終わったことを意味します。
xa-name
実行が終わったXA関数名
-
xa_start
xa_start関数
-
xa_end
xa_end関数
-
xa_prepare
xa_prepare関数
-
xa_commit
xa_commit関数
-
xa_rollback
xa_rollback関数
-
xa_recover
xa_recover関数
3
failed:xa function
XA関数の実行中に例外が発生したことを意味します。
xa-name
例外が発生したXA関数名
-
xa_start
xa_start関数
-
xa_end
xa_end関数
-
xa_prepare
xa_prepare関数
-
xa_commit
xa_commit関数
-
xa_rollback
xa_rollback関数
-
xa_recover
xa_recover関数
4
message
例外の詳細メッセージ文字列
-
-
スパンコンテキスト
付加情報はありません。