Code Analysis トラブルシューティング
概要
Datadog Code Analysis のセットアップまたは構成で問題が発生した場合は、このページを使用してトラブルシューティングを開始してください。引き続き問題がある場合は、Datadog サポートにお問い合わせください。
静的分析
Datadog Static Analyzer に関する問題がある場合、サポートおよびお客様担当カスタマーサクセスマネージャーへのバグ報告には以下の情報を含めてください。
static-analysis.datadog.yml
ファイル- ローカルまたは CI/CD パイプラインで実行した静的分析ツール (CLI など) の出力
- 生成された SARIF ファイル (利用可能な場合)
- リポジトリの URL (パブリックまたはプライベート)
- 分析を実行したブランチ名
- Datadog Static Analyzer を実行した正確なコマンドライン
パフォーマンスの問題
パフォーマンス上の問題が発生している場合、コマンドラインから静的分析ツールを実行するときに --performance-statistics
フラグを有効にすることができます。
パフォーマンスに関する問題の場合、以下の情報を含めてください。
static-analysis.datadog.yml
ファイル- ローカルまたは CI/CD パイプラインで実行した静的分析ツール (CLI など) の出力
- リポジトリの URL (パブリックまたはプライベート)
注: Static Analysis と GitHub Actions を使用している場合、enable_performance_statistics
パラメーターを true に設定してください。
ブロッキングする問題
パフォーマンスに関係しない問題、または Datadog Static Analyzer が終了しない場合は、--debug true --performance-statistics
フラグを付けて Datadog Static Analyzer を実行してください。
アナライザ実行時に 403 エラーが発生
アナライザと datadog-ci
を実行する際に、変数 DD_APP_KEY
、DD_API_KEY
、DD_SITE
が正しく指定されていることを確認してください。
SARIF アップロードに関する問題
SARIF インポートは、Snyk、CodeQL、Semgrep、Checkov、Gitleaks、Sysdig でテスト済みです。その他の SARIF 対応ツールで問題が発生した場合は、
Datadog サポートまでお問い合わせください。
サードパーティーの静的分析ツールから Datadog へ結果をアップロードする際は、相互運用可能な静的分析結果交換形式 (SARIF) であることを確認してください。Node.js バージョン 14 以降が必要です。
SARIF レポートをアップロードするには、以下の手順に従ってください。
DD_API_KEY
変数と DD_APP_KEY
変数が定義されていることを確認します。
必要に応じて DD_SITE
変数を設定します (デフォルトは datadoghq.com
)。
datadog-ci
ユーティリティをインストールします。
npm install -g @datadog/datadog-ci
サードパーティの静的分析ツールをコード上で実行し、結果を SARIF 形式で出力します。
結果を Datadog にアップロードします。
datadog-ci sarif upload $OUTPUT_LOCATION
GLIBC_X.YY not found
エラーメッセージ
CI パイプラインで Static Analyzer を実行した際、以下のようなエラーメッセージが表示される場合:
version `GLIBC_X.YY' not found
これは以下のいずれかを意味します。
- 古いバージョンの glibc を含む Linux ディストリビューションで CI パイプラインを実行している場合。この場合、Datadog は最新バージョンへのアップグレードを推奨します。アナライザは常に Ubuntu/Debian 系システムの最新バージョンで動作します。
- glibc に依存しない Linux ディストリビューション (Alpine Linux など) で CI パイプラインを実行している場合。代わりに、
glibc の最新バージョンをサポートするディストリビューション (安定版 Ubuntu など) で CI パイプラインを実行してください。
Datadog UI に結果が表示されない
GitHub 以外のリポジトリで Code Analysis を実行している場合、最初のスキャンがデフォルトブランチ (master
、main
、prod
、production
など) 上で行われていることを確認してください。デフォルトブランチでコミットした後、非デフォルトブランチが分析されます。常に Repository Settings でアプリ内からデフォルトブランチを構成できます。
Datadog のアナライザを使用している場合、差分認識スキャンがデフォルトで有効になっています。CI パイプライン内でツールを実行している場合、datadog-ci
が分析対象リポジトリのルートで実行されていることを確認してください。
Software Composition Analysis
Datadog Software Composition Analysis に関する問題については、サポートおよびお客様担当カスタマーサクセスマネージャーへのバグ報告に以下の情報を含めてください。
- ローカルまたは CI/CD パイプラインで実行した SCA ツール (CLI など) の出力
- 生成された SBOM ファイル (ある場合)
- リポジトリの URL (パブリックまたはプライベート)
- 分析を実行したブランチ名
- リポジトリ内の依存関係ファイル一覧 (
package-lock.json
、requirements.txt
、pom.xml
など)
SBOM アップロードに関する問題
Datadog SBOM ジェネレータを推奨しますが、Datadog は任意の SBOM ファイルの取り込みをサポートしています。ファイルが Cyclone-DX 1.4 または Cyclone-DX 1.5 形式に準拠していることを確認してください。
SBOM ファイルの取り込みは以下のサードパーティーツールで検証済みです。
SBOM ファイルを Datadog に取り込むには、以下の手順に従ってください。
datadog-ci
CLI をインストールします (Node.js がインストールされている必要があります)。DD_SITE
、DD_API_KEY
、DD_APP_KEY
環境変数が設定されていることを確認します。- ツールを呼び出して、ファイルを Datadog にアップロードします。
ツールのインストールと呼び出しは以下の 2 つのコマンドで行えます。
# datadog-ci をインストール
npm install -g @datadog/datadog-ci
# SBOM ファイルをアップロード
datadog-ci sbom upload /path/to/sbom-file.json
Datadog UI に結果が表示されない
GitHub 以外のリポジトリで Code Analysis を実行している場合、最初のスキャンがデフォルトブランチ (master
、main
、prod
、production
など) 上で行われていることを確認してください。デフォルトブランチにコミットした後、非デフォルトブランチが分析されます。
常に Repository Settings でアプリ内からデフォルトブランチを構成できます。
C# プロジェクトでパッケージが検出されない
当社の SBOM ジェネレータ (osv-scanner
) は、packages.lock.json
ファイルから依存関係を抽出します。このファイルがない場合は、プロジェクト定義を更新して生成することができます。packages.lock.json
ファイルを生成するためには、プロジェクト定義を更新する手順に従ってください。
生成されたロックファイルは osv-scanner
によって依存関係を抽出し、SBOM を生成するために使用されます。
参考資料