メタデータ構造およびサポートされるバージョン
Service Catalog はサービスに関する関連メタデータを保存・表示するため、定義スキーマを使用します。これらのスキーマには、妥当な値のみ受け入れるための検証ルールが組み込まれています。選択したサービスに対して、Service Catalog のサイドパネル内にある Definition タブで警告を確認できます。
サポートされるバージョン
Datadog は以下の 4 つの定義スキーマバージョンをサポートしています。
- v3.0 (プレビュー版): 拡張されたデータモデル、マルチオーナーシップサポート、手動の依存関係宣言、複雑なインフラ向けの拡張機能を備えた最新バージョン
- v2.2: カスタムメタデータ用のユーザー注釈、およびサービスをビルドプロセスと関連付ける CI パイプラインサポートを提供
- v2.1: サービスのグルーピングをサポートし、より包括的なサービス記述のための追加フィールドを導入
- v2: 基本的なサービスメタデータとドキュメンテーション用の必要最低限のフィールドを提供する、最も初期のサポートバージョン
各バージョンは前のバージョンを拡張し、新機能を追加しながら後方互換性を維持しています。自分のニーズやインフラの複雑さに応じて、最適なバージョンを選択してください。
バージョン比較
以下は各バージョンでサポートされる機能一覧です。
機能 | v3.0 (プレビュー) | v2.2 | v2.1 | v2.0 |
---|
基本的なメタデータ | | | | |
サービスグルーピング | | | | |
ユーザー注釈 | | | | |
CI パイプライン関連付け | | | | |
拡張データモデル | | | | |
マルチオーナーシップ | | | | |
手動での依存関係宣言 | | | | |
各バージョンごとの完全なスキーマや YAML ファイルの例など、詳細な情報についてはサポートされるバージョンの各バージョンページを参照してください。
Service Catalog にメタデータを追加する
Datadog UI からメタデータを追加する
- Service Catalog ページで Setup & Config をクリックします。
- Create New Entry をクリックします。
- メタデータを追加するサービスを指定します。
- Team、On-call、Contacts、Documentation、Code repo、Other links の詳細を入力します。
- YAML または JSON に切り替えて、生成されたコードと cURL コマンドを確認します。
- Service Catalog Write 権限がある場合、Save Entry をクリックするか、提供される cURL コマンドを実行してメタデータを送信できます。
自動化によるメタデータ追加
GitHub に定義を保存・編集
GitHub integration を構成すると、Service Catalog 上で表示するサービス定義から、それが保管・編集されている GitHub リポジトリへ直接リンクできます。Datadog は読み取り権限を有するリポジトリのルートにある service.datadog.yaml
ファイルをスキャンします。
GitHub インテグレーションをインストールするには
- インテグレーションタイルに移動します。
- Repo Configuration タブで Link GitHub Account をクリックします。
GitHub インテグレーションが定義に適用されると、サービスの Definition タブに Edit in GitHub ボタンが表示され、クリックすると GitHub 上で変更をコミットする画面へ移動します。
リポジトリの YAML ファイルを更新すると、変更は Service Catalog に反映されます。1 つの YAML ファイルで複数のサービスを登録する場合は、複数の YAML ドキュメントを作成し、---
で区切ってください。
誤った上書きを防ぐため、定義ファイルを作成・変更する際は GitHub インテグレーションまたは Definition API エンドポイントのいずれか片方を使用してください。GitHub と API の両方で同一サービスを更新すると、意図しない上書きが発生する可能性があります。
Service Catalog は定義を Terraform resource として提供します。自動化パイプラインを通じて Service Catalog 上でサービスを作成・管理するには、Datadog Provider v3.16.0 以上が必要です。
オープンソースのメタデータプロバイダー
GitHub インテグレーションや Terraform の代替手段として、Datadog Service Catalog Metadata Provider と呼ばれるオープンソースの GitHub Action ソリューションを利用できます。
カスタム拡張機能を構築する
カスタム拡張機能は Limited Availability です。
extensions
フィールドは v2.0 を含むすべてのバージョンでサポートされています。このカスタムフィールドを導入プロセスに組み込み、ベストプラクティスを標準化・コード化することが可能です。
schema-version: v2.2
dd-service: web-store
team: shopist
...
extensions:
shopist.com/release-scheduler:
release-manager:
slack: "release-train-shopist"
schedule: "* * * * *"
env:
- name: "staging"
ci_pipeline: "//domains/examples/apps/hello-joe/config/k8s:release-staging"
branch: "hello-joe/staging"
schedule: "* * * * 1"
IDE プラグイン
Datadog は定義向けに JSON Schema を提供しているため、対応する IDE 上で定義を編集する際、オートコンプリートや検証などの機能が利用できます。
Datadog definitions 用の JSON スキーマはオープンソースの Schema Store に登録されています。
参考資料