トレースとスパン

Cloud Trace では、トレースとスパンが、分散アプリケーション全体のリクエストのパスとレイテンシを追跡するために使用されるデータモデルを形成します。 トレースは、リクエストがサービス全体でエンドツーエンドでどのように実行されるかをキャプチャします。 トレースはスパンで構成されています。スパンは、リクエスト中に発生する個々の オペレーション、関数呼び出し、RPC を記録します。

トレース データモデル

トレースは次の要素で構成されます。

  • トレース ID: エンドツーエンドのオペレーションの固有識別子。 トレース ID は、リクエスト コンテキストを越えて サービス境界に伝播されます。

  • スパン コレクション: 同じトレース ID を共有するスパンのセット。これらのスパンは、リクエストの呼び出し階層を表すツリーまたは有向非巡回グラフを形成します。

Cloud Trace は、トレース ID を使用して、リポジトリ内のどのスパンが同じトレースに関連付けられているかを特定します。

スパン データモデル

スパンは、特定の期間内に発生した単一のオペレーションを表します。 各スパンには、スパンとオペレーションのステータスに関する情報を提供するフィールドが含まれています。

  • 識別子には次のフィールドが含まれます。

    • トレース ID: スパンが属するリクエストまたはトレース全体の固有識別子。
    • スパン ID: スパンの固有識別子。単一のトレース内でオペレーションが複数回呼び出されると、呼び出しごとに同じ名前で一意のスパン ID を持つ個別のスパンが生成されます。
    • 親スパン ID: このスパンを呼び出した親オペレーションを特定します。 「ルート」スパンには null に設定されている親スパン ID があります。
    • 名前: 実行されたオペレーションの名前。
    • 種類: スパンの種類は、スパンが相互にどのように関連しているかに関する情報をトレースツール( トレース エクスプローラなど)に提供します。 詳細については、OpenTelemetry SpanKind をご覧ください。
  • 実行情報は次のフィールドに提供されます。

    • ステータス: オペレーションの完了ステータスを記録します。このフィールドの値は、Unset(デフォルト)、Error、または Ok です。 デフォルト値はエラーを示しません。
    • 開始時間: オペレーションの開始時間。
    • 終了時間: オペレーションの終了時間。

スパンには、イベント、属性、リンクなどの他のフィールドを含めることができます。

  • イベント は、スパン内のタイムスタンプ付きの構造化メッセージを記録します。
  • 属性 は、Key-Value ペアを使用してオペレーションに関する追加情報を保存します。属性を記述する場合は、可能であれば OpenTelemetry Semantic Conventionsに従うことをおすすめします。
  • リンク を使用すると、1 つのスパンを別のスパンに関連付けることができます。

詳細については、OpenTelemetry: Spans をご覧ください。

リソース

OpenTelemetry リソース:

次のステップ