# トレースの可視化 {#trace-visualization}

Takumi Runner が収集したトレースデータは、Shisho Cloud コンソール上で閲覧・分析できます。このページでは、ジョブ詳細画面の各タブの見方を説明します。

## ジョブ詳細画面へのアクセス {#accessing-traces}

Shisho Cloud コンソールにログインし、**Runner** > **ジョブ** から対象のジョブを選択してください。ジョブ詳細画面が表示されます。

ジョブ詳細画面には **概要**・**タイムライン**・**実行**・**ネットワーク**・**ファイルアクセス**・**クエリ** の 6 つのタブがあり、それぞれ異なる切り口でトレースデータを確認できます。

## 概要タブ {#overview-tab}

概要タブでは、ジョブ実行中に発生したプロセス実行・ネットワーク通信・ファイルアクセスの件数とサマリーを一覧できます。

![概要タブ](/docs/ja/_md-assets/3e444a586b-job-overview.png)

各セクションの「詳細を見る」リンクをクリックすると、対応するタブに遷移します。

## タイムラインタブ {#timeline-tab}

タイムラインタブでは、ワークフローの各ステップが一覧表示されます。各ステップには `uses` や `run` の種別と、そのステップ内で検出されたプロセス数が表示されます。

![タイムラインタブ](/docs/ja/_md-assets/df92b4d670-job-timeline.png)

ステップを選択すると、そのステップの実行中に発生したトレースイベントを確認できます。

## 実行タブ {#execution-tab}

実行タブでは、ジョブ実行中に起動されたすべてのプロセスが、プロセスツリーとして時系列に表示されます。各プロセスには PID、コマンド名、実行されたコマンドラインが表示されます。

![実行タブ](/docs/ja/_md-assets/e465efcd7c-job-execution.png)

子プロセスを展開することで、プロセスの親子関係を追跡できます。

## ネットワークタブ {#network-tab}

ネットワークタブでは、ジョブ実行中に発生したネットワーク接続を、接続先の種別ごとに分類して確認できます。接続先は **外部サービス**・**GitHub インフラ**・**パッケージレジストリ**・**Runner インフラ** の 4 つに分類されます。

![ネットワークタブ](/docs/ja/_md-assets/afdfe8dce4-job-network.png)

接続グラフでは、ワークフローからの通信先をグラフィカルに表示します。不審な外部通信の確認に活用できます。

## ファイルアクセスタブ {#fileaccess-tab}

ファイルアクセスタブでは、ジョブ実行中にアクセスされたファイルが、ディレクトリツリーとして表示されます。各ディレクトリ・ファイルには、アクセス回数とアクセス種別（read / write / create / truncate / append）が表示されます。

![ファイルアクセスタブ](/docs/ja/_md-assets/d51941b5ef-job-fileaccess.png)

ディレクトリを展開してファイルをクリックすると、アクセスの詳細を確認できます。

## クエリタブ {#query-tab}

クエリタブでは、トレースデータに対して SQL（DuckDB）を使った自由なクエリを実行できます。定型的なタブでは確認しきれない分析が必要な場合に活用してください。

![クエリタブ](/docs/ja/_md-assets/61508f6bc4-job-query.png)

クエリエディタに SQL を入力し、**クエリ実行** ボタンをクリックすると結果が表示されます。過去に実行したクエリは **履歴** から再利用できます。

## 分析のヒント {#analysis-tips}

### 不審な外部通信の確認 {#suspicious-connections}

ネットワークタブの **外部サービス** セクションで、ビルドに必要のないホストへの通信がないか確認してみてください。たとえば、`npm install` 中に `registry.npmjs.org` 以外のホストへ接続している場合、悪意のあるパッケージのポストインストールスクリプトが外部にデータを送信している可能性があります。

### 機密ファイルへのアクセス {#sensitive-file-access}

ファイルアクセスタブで `~/.netrc`、`~/.ssh/`、`~/.aws/` などの認証情報を含むパスへのアクセスが記録されていないか確認してみてください。正常なビルドプロセスでこれらのファイルにアクセスする必要は通常ありません。
