This product is not supported for your selected Datadog site. ().

概要

Software Catalog に エンティティ定義 を追加する方法は次のとおりです:

  • Datadog UI から手動で定義を作成する。
  • 定義をコードで管理し、GitHub や Terraform などを使って Datadog API 経由のインポートを自動化する。

Datadog UI から

Datadog UI でエンティティ定義を作成するには:

  1. Software Catalog Setup & Config ページに移動します。

  2. Create a New Entry をクリックします。

  3. オーナー情報やドキュメントへのリンクなどのメタデータを含め、サービスの詳細を入力します。

  4. (任意) YAML または JSON に切り替えると、生成されたコードと cURL コマンドを確認できます。コード エディターでは、Datadog が不正なデータを自動的に検出してハイライトします。

    サンプルのサービス定義を表示しているサービス メタデータ エディター。
  5. Save Entry をクリックするか、提示された cURL コマンドを実行してメタデータを送信します。

    : エントリーを保存するには Software Catalog Write 権限 が必要です。

自動化で行う場合

GitHub や Terraform、Datadog Software Metadata Provider、または Datadog Service Definition API を使ってインポートを自動化するには:

エンティティ定義を作成

  1. エンティティを定義するために service.datadog.yaml または entity.datadog.yaml を作成します (Datadog はどちらのファイル名も受け付けます)。

  2. エンティティ名は dd-service (スキーマ バージョン v2.2 以前) または name (スキーマ バージョン v3.0 以降) フィールドに指定します。

    例:

    service.datadog.yaml

        schema-version: v2.2
        dd-service: my-unmonitored-cron-job
        team: e-commerce
        lifecycle: production
        application: shopping-app
        description: important cron job for shopist backend
        tier: "2"
        type: web
        contacts:
        - type: slack
        contact: https://datadogincidents.slack.com/archives/XXXXX
        links:
        - name: Common Operations
        type: runbook
        url: https://datadoghq.atlassian.net/wiki/
        - name: Disabling Deployments
        type: runbook
        url: https://datadoghq.atlassian.net/wiki/
        tags: []
        integrations:
        pagerduty:
        service-url: https://datadog.pagerduty.com/service-directory/XXXXXXX
        External Resources (Optional)
       
  3. (任意) 1 つの YAML ファイルに複数のサービスを登録する場合は、各定義を 3 つのダッシュ (---) で区切ります。

定義をインポート

定義は次のいずれかの方法でインポートします:

  1. Terraform: Terraform リソース として定義を作成し、インポートします。

    : 自動パイプライン経由で Software Catalog のサービスを作成・管理するには、Datadog Provider v3.16.0 以降が必要です。

  2. Datadog APIs: Service Definition API (スキーマ v2.x 用) または Software Catalog API (スキーマ v3+ 用) を使って定義をインポートします。どちらもオープン ソースの GitHub Action ソリューションです。

  3. GitHub: Datadog GitHub integration を設定して、定義の管理とインポートを行います。

GitHub インテグレーション

GitHub インテグレーション を設定すると、Software Catalog でサービスの定義を確認している場所から、GitHub 上の保存場所 (編集してコミットできる場所) へ直接リンクできます。Datadog は読み取り権限のある各リポジトリを対象に、service.datadog.yamlentity.datadog.yaml ファイルをスキャンします。

GitHub インテグレーションをインストールするには:

  1. インテグレーション タイル に移動します。
  2. Repo Configuration タブで Link GitHub Account をクリックします。

定義に対して GitHub インテグレーションを設定すると、サービスの Definition タブに Edit in GitHub ボタンが表示され、変更をコミットするために GitHub へ移動できます。

Software Catalog のサービスの Definition タブに Edit in GitHub ボタンが表示される

リポジトリ内の YAML ファイルを更新すると、その変更は Software Catalog に反映されます。複数の YAML ドキュメントを 1 つの YAML ファイルに含めれば、複数サービスをまとめて登録できます。各ドキュメントは 3 つのダッシュ (---) で区切ってください。

意図しない上書きを防ぐため、定義ファイルの作成・更新は GitHub インテグレーションまたは Definition API エンドポイント のいずれかで行ってください。GitHub と API の両方から同じサービスを更新すると、予期せぬ上書きが発生する可能性があります。

インテグレーションの検証

Datadog の GitHub インテグレーションが取り込んだサービス定義を検証するには、サービス更新時やエラー発生時のイベントを確認します。検証エラーを Event Management で確認する場合は、source:software_catalogstatus:error でフィルターし、必要に応じて期間を調整してください。

サービス定義のエラー メッセージを表示する GitHub イベント。

参考資料