Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


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と読み替えてください。

図11‒23 取得する情報

[図データ]

(2) EADS(通常版限定)

EADS API向け分散トレースは、分散合意取得機能の補助合意に使用されるEADSで、次の図に示すようなAPIを発行するParticipantとEADS間のデータ処理が妥当かどうかを判別するためにSpanを取得します。なお、トライアル版ではEADSは使用できません。

図11‒24 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関数の実行順序、実行内容、実行結果を分析し、障害発生時にトラブルシュートが可能になります。

図11‒25 XA関数向けSpan

[図データ]

(a) 取得個所

  1. Participant初期化で、prepare済みのトランザクションを取得する時にSpanを取得します。

  2. 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

    例外の詳細メッセージ文字列

  • スパンコンテキスト

    付加情報はありません。