Go コンパイル タイム インスツルメンテーションのトラブル シューティング
概要
このガイドでは、 Orchestrion が管理するビルドのトラブル シューティング方法を説明します。これらの手順は、ビルド プロセスに関するインサイトを Datadog が収集するのに役立ち、不具合報告の支援にもなります。
生成されたファイルには、ソース コードや依存関係名など、機微なプロジェクト情報が含まれる場合があります。このような情報を公開で共有することに懸念がある場合は、Datadog サポートに連絡し、非公開でデータを共有してください。
ワーク ツリーの保持
Orchestrion は、 go build のワーク ツリーにビルド時の変換を記録します。ビルド後に go ツールチェーンがこのディレクトリをクリーンアップしないようにするには、 -work フラグを使用します :
orchestrion go build -work ./...
WORK=/tmp/go-build2455442813
ワーク ツリーの場所は、ビルドの開始時に WORK= として出力されます。このディレクトリには、ビルドされた各 go パッケージごとのサブディレクトリが含まれ、これらは ステージ ディレクトリ と呼ばれます。
ワーク ツリーの内容
Orchestrion がソース ファイルにコードを挿入すると、変更済みファイルは orchestrion/src サブディレクトリ内のパッケージのステージ ディレクトリ ( $WORK/b### ) に書き出されます。パッケージのインポート構成が変更された場合、元のファイルは .original サフィックス付きで保持されます。これらの可読なファイルを確認することで、 Orchestrion の動作を検証できます。解釈の支援が必要な場合は Datadog サポートにお問い合わせください。
ログ設定
ログ レベル
Orchestrion のログ出力は、 ORCHESTRION_LOG_LEVEL 環境変数または --log-level フラグで制御できます :
| レベル | 説明 |
|---|
NONE, OFF (デフォルト) | ログ出力なし |
ERROR | エラー情報のみ |
WARN | エラーと警告 |
INFO | エラー、警告、および情報メッセージ |
DEBUG | 詳細なロギング |
TRACE | 極めて詳細なロギング |
ORCHESTRION_LOG_LEVEL を DEBUG または TRACE レベルに設定すると、ビルド パフォーマンスに大きな影響を与える可能性があります。通常運用ではこれらの設定は推奨されません。
ログ ファイル出力
ORCHESTRION_LOG_FILE 環境変数または --log-file フラグに希望のファイル パスを設定すると、ログ メッセージをコンソールではなくファイルに書き出せます。
ORCHESTRION_LOG_FILE を設定すると、 ORCHESTRION_LOG_LEVEL のデフォルト値は WARN に変更されます。
ログ ファイル パスには $PID または ${PID} トークンを含めることができ、これはロギング プロセスの PID に置き換えられます。これによりファイルの競合が減りますが、大規模なプロジェクトでは複数のログ ファイルが作成されます。
ファイル パスに $PID が含まれているかどうかに関係なく、ロギングは既存のファイルを上書きせず追記します。
参考資料