Datadog Service Definition API によるサービスの登録

概要

サービスとは、独立した、デプロイ可能なソフトウェアの単位です。Datadog 統合サービスタグ付けは、あらゆるテレメトリータイプにおいて、一貫してサービスオーナーシップを管理・監視するための標準的な方法を提供します。もし、追加の基準を使用してサービスを定義したい場合は、アーキテクチャースタイルに合ったサービス定義をカスタマイズし、この API を使用して登録してください。

要件

始める前に、Datadog API とアプリのキーが必要です。

サービス定義スキーマ (v2)

サービスの基本情報。

フィールド説明タイプ必須
schema-version [必須]文字列使用するサービス定義スキーマのバージョン。値 v2 のみがサポートされる。はい
dd-service [必須]文字列サービスの一意な識別子。すべてのサービスで一意である必要があり、Datadog でサービスと照合するために使用される。はい
team文字列サービスを担当するチーム名。はい

service.definition.yaml

schema-version: v2
dd-service: shopping-cart
team: E-Commerce Team

連絡先 (オプション)

フィールド説明タイプ必須
タイプ連絡先タイプ文字列はい
name連絡先名文字列いいえ
contact連絡先の値文字列はい

service.definition.yaml

contacts:
  - type: slack
    contact: http://slack/e-commerce
  - type: email 
    contact: ecommerce@example.com  
外部リソース (オプション)

スキーマの全容は GitHub でご確認ください。

サービス定義を投稿する

POST /api/v2/services/definitions

引数

ヘッダーパラメーター

必須フィールド説明
DD-API-KEY組織を識別します。キーを作成したり、既存のキーを再利用したりするには、API キーのページをご覧ください。
DD-APPLICATION-KEYユーザーを識別します。キーを作成したり、既存のキーを再利用したりするには、アプリケーションキーのページをご覧ください。

リクエスト

本文データ (必須)

この本文データは、Service Catalog Getting Started ページで生成することができます。

モデル
フィールドタイプ説明
リクエスト本文JSON または YAMLサービス定義スキーマ v2 を参照してください

service.definition.json

{
  "schema-version": "v2",
  "dd-service": "shopping-service"
}

service.definition.json

{
    "data": [
        {
            "attributes": {
                "meta": {
                    "ingested-schema-version": "v2",
                    "ingestion-source": "api",
                    "last-modified-time": "2022-07-13T19:45:14.974121477Z",
                    "github-html-url": "",
                    "warnings": []
                },
                "schema": {
                    "dd-service": "shopping-service",
                    "schema-version": "v2",
                    "links": [],
                    "contacts": [],
                    "docs": [],
                    "repos": [],
                    "tags": null,
                    "integrations": {},
                    "team": "",
                    "extensions": {}
                }
            },
            "type": "service-definition"
        }
    ]
}

応答

Status:
200 OK
400 Invalid Request
429 Too Many Requests

Curl の例

curl --request POST 'https://api.datadoghq.com/api/v2/services/definitions' \
--header 'DD-API-KEY: <API_KEY>' \
--header 'DD-APPLICATION-KEY: <APPLICATION_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "schema-version": "v2",
  "dd-service": "shopping-service"
}'

サービス定義を取得する

このエンドポイントでは、あるサービスに対する単一の定義ファイルを取得することができます。

GET /api/v2/services/definitions/<service_name>

引数

パスパラメーター

必須フィールド説明
service_nameその定義を取得するためにサービスを特定します。
schema_versionv2 の使用

ヘッダーパラメーター

必須フィールド説明
DD-API-KEY組織を識別します。キーを作成したり、既存のキーを再利用したりするには、API キーのページをご覧ください。
DD-APPLICATION-KEYユーザーを識別します。キーを作成したり、既存のキーを再利用したりするには、アプリケーションキーのページをご覧ください。

応答

サービス定義の JSON オブジェクト。例:

{
    "data": {
        "type": "service_definitions",
        "attributes": {
            "service_definitions": [
                {
                    "docs": [],
                    "links": [
                        {
                            "url": "https://wiki/shopping-cart",
                            "type": "wiki",
                            "name": "shopping-cart service Wiki"
                        },
                        {
                            "url": "https://google.drive/shopping-cart-architecture",
                            "type": "doc",
                            "name": "shopping-cart architecture"
                        },
                        {
                            "url": "https://runbook/shopping-cart",
                            "type": "runbook",
                            "name": "shopping-cart runbook"
                        }
                    ],
                    "tags": [
                        "cost-center:engineering",
                        "business-unit:retail"
                    ],
                    "service_name": "shopping-cart",
                    "repos": [],
                    "contacts": [
                        {
                            "contact": "team@shopping.com",
                            "type": "email",
                            "name": ""
                        },
                        {
                            "contact": "shopping-cart",
                            "type": "slack",
                            "name": ""
                        }
                    ],
                    "integrations": [
                        {
                            "type": "pagerduty",
                            "param": "https://www.pagerduty.com/service-directory/shopping-cart"
                        },
                        {
                            "type": "github",
                            "param": "https://www.github.com/org/shopping-cart"
                        }
                    ],
                    "schema_version": "v1",
                    "team_handle": "",
                    "ingestion_source": "api",
                    "extensions": {},
                    "team": "e-commerce",
                    "last_modified_time": "2022-03-09T14:54:38Z",
                    "github_html_url": ""
                }
            ]
        }
    }
}

Curl の例

curl --request GET 'https://api.datadoghq.com/api/unstable/services/definition/shopping-cart?schema_version="v2"' \
--header 'DD-API-KEY: {API_KEY}' \
--header 'DD-APPLICATION-KEY: {APPLICATION_KEY}' 

すべてのサービス定義をクエリする

GET /api/v2/services/definitions

引数

ヘッダーパラメーター

必須フィールド説明
DD-API-KEY組織を識別します。キーを作成したり、既存のキーを再利用したりするには、API キーのページをご覧ください。
DD-APPLICATION-KEYユーザーを識別します。キーを作成したり、既存のキーを再利用したりするには、アプリケーションキーのページをご覧ください。

応答

このエンドポイントは、Datadog が組織に対して持っているすべてのサービス定義を返します。サービス定義を取得するのレスポンス例を参照してください。

{
  "data": [
    {
      "attributes": {
        "meta": {
          "ingested-schema-version": "v2",
          "ingestion-source": "api",
          "last-modified-time": "2022-07-13T19:45:14Z",
          "github-html-url": "",
          "warnings": []
        },
        "schema": {
          "links": [],
          "contacts": [],
          "docs": [],
          "repos": [],
          "tags": [],
          "integrations": {},
          "schema-version": "v2",
          "team": "",
          "extensions": {},
          "dd-service": "shopping-service"
        }
      },
      "type": "service-definition",
      "id": "0007484c47fea9a3cd74d7fc4a1c4e8f"
    },
    {
      "attributes": {
        "meta": {
          "ingested-schema-version": "v2",
          "ingestion-source": "api",
          "last-modified-time": "2022-07-12T15:06:00Z",
          "github-html-url": "",
          "warnings": []
        },
        "schema": {
          "links": [],
          "contacts": [],
          "docs": [],
          "repos": [],
          "tags": [],
          "integrations": {},
          "schema-version": "v2",
          "team": "",
          "extensions": {},
          "dd-service": "delivery-service"
        }
      },
      "type": "service-definition",
      "id": "0007484c47fea9a3cd74d7fc4a1c4e8f"
    }
  ]
}

Curl の例

curl --location --request GET 'https://api.datadoghq.com/api/v2/services/definitions' \
--header 'DD-API-KEY: <API_KEY>' \
--header 'DD-APPLICATION-KEY: <APPLICATION_KEY>' 

サービス定義を削除する

DELETE /api/v2/services/definitions/<service_name>

パスパラメーター

必須フィールド説明
service_nameその定義を削除するためにサービスを特定します。

ヘッダーパラメーター

必須フィールド説明
DD-API-KEY組織を識別します。キーを作成したり、既存のキーを再利用したりするには、API キーのページをご覧ください。
DD-APPLICATION-KEYユーザーを識別します。キーを作成したり、既存のキーを再利用したりするには、アプリケーションキーのページをご覧ください。

応答

Status: 200 OK (Deleted)

Curl の例

curl --location --request DELETE 'https://api.datadoghq.com/api/v2/services/definitions/shopping-cart' \
--header 'DD-API-KEY: <API_KEY>' \
--header 'DD-APPLICATION-KEY: <APPLICATION_KEY>'

その他の参考資料

お役に立つドキュメント、リンクや記事: