GitLab パイプラインでトレースを設定する

GitLab パイプラインでトレースを設定する

GitLab CI パイプラインのトレースを有効にするには、リリース 13.7.0 以降、機能フラグの下に隠れているネイティブインテグレーションを使用することができます。

GitLab.com ユーザーであり、このインテグレーションを早期に採用したい場合は、GitLab でサポートチケットを開き、アカウントで Datadog インテグレーションを有効にすることをリクエストしてください。

独自の GitLab インストールを管理していて、バージョンが十分に新しい場合は、インストールの種類に応じて GitLab の Rails Runner を使用する次のコマンドを実行することで、機能フラグを自分で有効にできます。

Omnibus インストールの場合:

sudo gitlab-rails runner "Feature.enable(:datadog_ci_integration)"

ソースからのインストールの場合:

sudo -u git -H bundle exec rails runner -e production "Feature.enable(:datadog_ci_integration)"

Kubernetes デプロイの場合:

kubectl exec -it <task-runner-pod-name> -- /srv/gitlab/bin/rails runner "Feature.enable(:datadog_ci_integration)"

機能フラグを有効にしたら、インスツルメントするプロジェクトごとに Settings > Integrations > Datadog に移動して、プロジェクトごとにインテグレーションを構成します。アクティブとしてマークし、有効な API キーを貼り付けます。

注: 現在サポートされているのは datadoghq.com のみです。

オプションのパラメーターがいくつかあります。

  • service: この GitLab インスタンスのすべてのトレースのサービス名を設定します。デフォルトは gitlab-ci です。複数の GitLab インスタンスを使用している場合に便利です。
  • env: この GitLab インスタンスのすべてのトレースに環境タグを設定します。環境ごとに GitLab インスタンスをグループ化する必要がある高度なセットアップで役立ちます。

Test settings ボタンを使用してインテグレーションをテストします。成功したら、Save changes をクリックしてインテグレーションのセットアップを完了します。

Webhook を介したインテグレーション

ネイティブの Datadog インテグレーションを使用する代わりに、Webhook を使用してパイプラインデータを Datadog に送信できます。

: 推奨されるアプローチで、積極的に開発されているのはネイティブの Datadog インテグレーションです。Webhook は、ネイティブの Datadog インテグレーションオプションを使用できない場合にのみ使用してください (たとえば、古いバージョンの GitLab を使用していて、アップグレードできない場合)。

リポジトリ (または GitLab インスタンス設定) の Settings > Webhooks に移動し、新しい Webhook を追加します。

  • URL: https://webhooks-http-intake.logs.datadoghq.com/v1/input/<API_KEY> (ここの <API_KEY>こちらで取得できます)
  • Secret Token: 空白のままにします
  • Trigger: Job eventsPipeline events を選択します。

カスタムの env または service パラメーターを設定するには、Webhook の URL でクエリパラメーターを使用します: ?env=<YOUR_ENV>&service=<YOUR_SERVICE_NAME>

Datadog でパイプラインデータを視覚化する

インテグレーションが正常に構成されたら、パイプラインが終了した後、Pipelines ページと Pipeline Executions ページの両方にデータの入力が開始されます。

: Pipelines ページには、各リポジトリのデフォルトブランチのデータのみが表示されます。

その他の参考資料