インテグレーションアセットリファレンス

概要

このページでは、** Integrations** ページまたは Marketplace ページで製品を作成するために入力する必要があるファイルについて説明します。

構成ファイル

新しいインテグレーションを用意する際は、必要なオプションと適正なデフォルトを設定したコンフィギュレーションサンプルを追加する必要があります。この例のサンプルコンフィギュレーションファイルは <チェック名>/datadog_checks/<チェック名>/data/conf.yaml.example にあり、init_configinstances という 2 つのトップレベル要素を持っています。

init_config 下のコンフィギュレーションはインテグレーションにグローバルに適用され、インテグレーションのすべてのインスタンスで使用されます。一方、instances 内のコンフィギュレーションは特定のインスタンスに適用されます。

どちらのセクションの構成ブロックも次の形式になります。

## @<COMMAND> [- <ARGS>]
## <DESCRIPTION LINE 1>
## <DESCRIPTION LINE 2>
#
<KEY>: <VALUE>

構成ブロックは以下のガイドラインに従います。

  • 説明を空にすることはできません。
  • プレースホルダーは常に <THIS_IS_A_PLACEHOLDER> のフォーマットに従ってください。詳しくは、ドキュメントサイトの寄稿ガイドラインを参照してください。
  • すべての必須パラメーターはデフォルトでコメントにされません
  • すべてのオプションパラメーターはデフォルトでコメントにされます。
  • プレースホルダーにインテグレーションのデフォルト値がある場合 (たとえば、インテグレーションのステータスエンドポイント)、それを汎用プレースホルダーの代わりに使用できます。

@param の指定

@param コマンドは、構成ブロックを記述し、構成のドキュメントを提供するために使用することができます。

param は、以下のいずれかの形式で実装されます。

@param <name> - <type> - 必須
@param <name> - <type> - オプション
@param <name> - <type> - オプション - デフォルト: <defval>

引数:

  • name: パラメーターの名前。例: search_string (必須)。
  • type: パラメーター値のデータタイプ (必須)。 Possible values include the following: boolean, string, integer, double, float, dictionary, list*, and object*.
  • defval: パラメーターのデフォルト値。空でもかまいません (オプション)。

list および object 変数は複数行にまたがり、特別な規則があります。

  • list の個々の要素は、@param 指定を使用して文書化されません。
  • object の場合は、@param 指定を使用して要素を個別に文書化することも、オブジェクト自体の指定に続けてトップレベルに共通の説明を付けることもできます。

オプションパラメーター

オプションパラメーターはデフォルトでコメントにする必要があります。パラメーターの記述に使用される各行の前に、@param 指定と同じインデントで # を追加します。

ブロックコメント

次の規則に従って、構成ファイルの任意の場所にブロックコメントを追加できます。

  • コメントは ## で開始されます。
  • コメントは変数と同様にインデントされます (ハイフンはカウントされません)。

YAML 構文についての詳細は、YAMLに関する Wikipedia の記事を参照してください。また、Online YAML Parser を調べることもできます。

マニフェストファイル

Integrations ページまたは Marketplace ページにあるすべての製品には、動作パラメーター、より大きなDatadog インテグレーションエコシステム内での位置づけ、追加のメタデータを定義する manifest.json ファイルがあります。

You can find the complete list of mandatory and optional attributes for the manifest.json file below:

AttributeMandatory or OptionalDescription
manifest_versionMandatoryType: String Enum.

Version of the manifest schema. Supported values include 1.0.0 and 2.0.0.
app_uuidMandatoryType: UUID.

Globally unique UUID for this application. This is automatically generated by Datadog when the developer toolkit ddev create command runs as part of creating tile scaffolding for your integration tile.
app_idMandatoryType: String.

The unique identifying name of this offering. Usually kebab case of the app title. For example, if the app title is “Marketplace Offering”, then the app_id would be marketplace-offering.
assetsMandatoryType: Dictionary.

Object containing any Datadog installable entity.
assets[dashboards]OptionalType: Dictionary.

Out-of-the-box dashboards associated with this offering.
assets[dashboards["dashboard_short_name"]]MandatoryType: String.

Key and value pairs for any out-of-the-box dashboards. The key is the globally unique short name of the dashboard and the value is the relative path to the dashboard’s JSON definition in relation to this manifest.
assets[integration]OptionalType: Dictionary.

Object containing information about the integration.
assets[integration[auto_install]]MandatoryType: Boolean.

Whether or not the integration and related assets should be installed automatically when metrics or logs from the integration are received from the source. This is typically set to true for integrations using the Datadog Agent, and other integrations that are configured outside the Datadog UI. It is typically set to false for marketplace integrations and integrations that are configured with the Datadog UI, such as integrations using OAuth.
assets[integration[configuration]]Mandatory, can be { }Type: Dictionary.

Object representing the configuration specification for this integration.
assets[integration[configuration[spec]]]MandatoryType: String.

Relative path to where the configuration spec lives in relation to this manifest.
assets[integration[events]]MandatoryType: Dictionary.

Information about events emitted by this integration.
assets[integration[events[creates_events]]]MandatoryType: Boolean.

Whether or not this integration emits events to Datadog.
assets[integration[metrics]]MandatoryType: Dictionary.

Information about the metrics this integration emits.
assets[integration[metrics[check]]]MandatoryType: String or list of strings.

A string or list representing metrics that this integration always emits on every run.
assets[integration[metrics[metadata_path]]]MandatoryType: String.

Relative path to where the metrics metadata lives in relation to this manifest.
assets[integration[metrics[prefix]]]MandatoryType: String.

The prefix for metrics emitted by this integration.
assets[integration[service_checks]]Mandatory, but can be { }Type: Dictionary.

Information about service checks emitted by this integration.
assets[integration[service_checks[metadata_path]]]MandatoryType: String.

Relative path to where the service check metadata lives in relation to this manifest.
assets[integration[source_type_name]]MandatoryType: String.

User-facing name of this integration.
assets[integration[source_type_id]]MandatoryType: Integer.

Globally unique ID for this integration. This is automatically generated by Datadog when the developer toolkit ddev create command runs as part of creating tile scaffolding for your integration tile.
assets[monitors]OptionalType: Dictionary.

Recommended monitors.
assets[monitors["monitor_short_name"]]MandatoryType: String.

Key and value pairs for any recommended monitors. The key is the globally unique short name of the monitor and the value is the relative path to the monitor’s JSON definition in relation to this manifest.
authorMandatoryType: Dictionary.

Information about the author of this app.
author[homepage]MandatoryType: String (URL).

The web URL to the homepage of the author.
author[name]MandatoryType: String.

The human-readable name for this company.
author[sales_email]MandatoryType: String (Email).

The Partner email to contact for any subscription-level events.
author[support_email]MandatoryType: String (Email).

The Partner email to contact for any support and maintenance queries.
author[contact_link]OptionalType: String (URL).

The URL link to meeting scheduling software, such as Calendly. This field is mandatory for professional services listings.
author[vendor_id]MandatoryType: String.

The vendor ID to use for subscription purposes. Must be globally unique and cannot be changed. Should follow the strict standards of app_id where only dashes and alphabetic chars are allowed. This value is provided to Datadog Technology Partners.
display_on_public_websiteMandatoryType: Boolean.

Whether or not information about this listing is displayed on the public Datadog Docs site. Once this is set to true, it cannot be changed.
legal_termsMandatoryType: Dictionary.

Any legal documentation that a user needs to agree to in order to use this app.
legal_terms[eula]MandatoryType: String.

Relative path to the End User License Agreement (EULA) PDF in relation to this manifest.
pricingMandatoryType: Array of Dictionaries.

List of objects representing the pricing model of the integration. See the Marketplace GitHub repository for pricing details. The Marketplace GitHub repository is private, email marketplace@datadog.com for access.
tileMandatoryType: Dictionary.

Information about this offering.
tile[media]Mandatory, can be [ ]Type: Array of Dictionaries.

Information about the various image and video style objects that are presented in the media gallery carousel on the listing page.
tile[media[media_type]]MandatoryType: String or Enum.

The type of media this is. Allowed values are image and video.
tile[media[caption]]MandatoryType: String.

The caption for the image.
tile[media[image_url]]MandatoryType: String.

The relative path to this image in relation to this manifest file.
tile[classifier_tags]Mandatory, can be [ ]Type: Array of strings.

Select and use the appropriate classifiers to describe this app, including categories, submitted or queried data types, supported_os, and available_offerings. For more information, see Classifier Tags.
tile[description]MandatoryType: String[80].

A brief description of what this offering provides. Limited to 80 characters.
tile[title]MandatoryType: String[50].

The user-friendly title for this app.

分類子タグ

classifier_tags パラメーターを使用して、複数のカテゴリーを設定し、インテグレーションに送信またはクエリされるデータタイプを定義することができます。

manifest.json ファイルに対する分類子タグの完全なリストは、以下の通りです。

NameDescription
Category::AI/MLIntegrations that monitor AI and Machine Learning technologies, Large Language Models, and assist with AI/ML Operations.
Category::AlertingIntegrations that collect Datadog data to alert on, or send alerts into Datadog.
Category::AutomationIntegrations for technologies that automate processes such as security, compliance, testing, and AIOps.
Category::AWSIntegrations that send in data from Amazon Web Services and its related services.
Category::AzureIntegrations that send in data from Azure and its related services.
Category::CachingIntegrations that monitor caches and caching technologies.
Category::CloudIntegrations that submit data from cloud platforms and their related services.
Category::CollaborationIntegrations for platforms that center around communication and collaboration, such as code collaboration, messaging software, and conference calling.
Category::ComplianceIntegrations that monitor and send compliance data into Datadog, such as support for HIPPA, SOC2, GDPR, and more.
Category::Configuration & DeploymentIntegrations that monitor platforms that can configure and deploy infrastructure.
Category::ContainersIntegrations that track metrics, logs, events, and traces from containers and container management technologies.
Category::Cost ManagementIntegrations that help track and manage cloud cost.
Category::Data StoresIntegrations that monitor data storage solutions such as databases, clusters, data lakes, and more.
Category::Developer ToolsIntegrations for technologies that developers use to help build applications such as version control, CI/CD, and infrastructure as code.
Category::Event ManagementIntegrations that send events into Datadog or query events to send into external platforms.
Category::Google CloudIntegrations that send in data from Google Cloud and its related services.
Category::IncidentsIntegrations that send incidents into Datadog, or create incidents externally based on Datadog data.
Category::IoTIntegrations that monitor IoT (Internet of Things) devices.
Category::Issue TrackingIntegrations that help users identify and manage issues in their infrastructure or code.
Category::KubernetesIntegrations that send in data from Kubernetes and Kubernetes-related services.
Category::LanguagesIntegrations that send metrics and additional data based on specific programming languages.
Category::Log CollectionIntegrations that submit or query logs from Datadog.
Category::MainframesIntegrations that monitor mainframe systems such as IBM z/OS.
Category::MarketplaceIntegrations that are sold in the Datadog Marketplace for an additional fee.
Category::Message QueuesIntegrations that monitor messaging queues and messaging systems.
Category::MetricsIntegrations that submit and query metrics from Datadog.
Category::MobileIntegrations that monitor mobile devices and applications.
Category::NetworkIntegrations that monitor networks and network devices.
Category::NotificationsIntegrations for technologies that focus on notifications, for example, incident response.
Category::OracleIntegrations that monitor Oracle-based technologies.
Category::OrchestrationIntegrations for technologies that provide orchestration for containers and more.
Category::OS & SystemIntegrations that monitor operating systems or other low-level systems.
Category::ProvisioningIntegrations for technologies that manage the provisioning of resources across the cloud, containers, and more.
Category::SAPIntegrations for SAP technologies.
Category::SecurityIntegrations that monitor security tools or provide security reporting.
Category::SNMPIntegrations that monitor SNMP and related tools.
Category::Source ControlIntegrations that monitor source code collaboration tools such as Git.
Category::TestingIntegrations that monitor technologies that run browser tests, load testing, and more.
Category::TracingIntegrations that send in or query traces from Datadog, and interact with Datadog APM.
Offering::IntegrationThis is an offering that submits or queries data from a user’s Datadog account.
Offering::Professional ServiceThis is a paid offering that provides third-party professional services, such as consulting, integration creation, and more to Datadog customers through the Datadog Marketplace.
Offering::Software LicenseThis is a paid offering that provides a subscription to a SaaS product through the Datadog Marketplace.
Offering::UI ExtensionThis is a custom dashboard widget that displays a rendered, interactive iFrame on the dashboards of Datadog users.
Queried Data Type::MetricsAn integration that reads metrics from a Datadog user’s account.
Queried Data Type::LogsAn integration that reads logs from a Datadog user’s account.
Queried Data Type::TracesAn integration that reads traces from a Datadog user’s account.
Queried Data Type::EventsAn integration that reads events from a Datadog user’s account.
Queried Data Type::IncidentsAn integration that reads incidents from a Datadog user’s account.
Submitted Data Type::MetricsAn integration that sends metrics into a Datadog user’s account.
Submitted Data Type::LogsAn integration that sends logs into a Datadog user’s account.
Submitted Data Type::TracesAn integration that sends traces into a Datadog user’s account.
Submitted Data Type::EventsAn integration that sends events into a Datadog user’s account.
Submitted Data Type::IncidentsAn integration that sends incidents into a Datadog user’s account.
Supported OS::AndroidAn integration that can run on and query/submit data from Android.
Supported OS::AnyAn integration that can run on and query/submit data from any OS.
Supported OS::HP-UXAn integration that can run on and query/submit data from HP-UX.
Supported OS::IBM i/OSAn integration that can run on and query/submit data from IBM i/OS.
Supported OS::IBM z/OSAn integration that can run on and query/submit data from IBM z/OS.
Supported OS::iOSAn integration that can run on and query/submit data from iOS.
Supported OS::LinuxAn integration that can run on and query/submit data from Linux.
Supported OS::macOSAn integration that can run on and query/submit data from macOS.
Supported OS::SolarisAn integration that can run on and query/submit data from Solaris.
Supported OS::WindowsAn integration that can run on and query/submit data from Windows.

サービスチェックファイル

service_check.json ファイルは、インテグレーションによって作成されたサービスチェックを記述します。

service_checks.json ファイルの必須属性の完全なリストは、以下の通りです。

属性説明
agent_versionサポートされている Agent の最小バージョン。
integrationこのサービスチェックを送信するインテグレーションの名前。これは、manifest.json にある正規化されていない tile.title です。
checkサービスチェックの名前。一意である必要があります。
statusesチェックのさまざまなステータスのリスト。okwarningcritical から選択します。unknown も可能です。
groupsサービスチェックと共に送信されるタグ
nameサービスチェックの表示名。表示名はわかりやすく、すべてのインテグレーションで一意である必要があります。
descriptionサービスチェックの説明。

メトリクスメタデータファイル

metadata.csv ファイルには、インテグレーションが収集できるすべてのメトリクスが記述されます。

以下に、metadata.csv ファイルの必須属性とオプション属性の完全なリストを示します。

列名必須またはオプション説明
metric_name必須メトリクスの名前。
metric_type必須メトリクスのタイプ。利用可能なメトリクス送信タイプの一覧は、メトリクスタイプを参照してください。
intervalオプションメトリクスの収集間隔 (秒単位)。
unit_nameオプションメトリクスの単位。対応する単位の一覧は、メトリクスの単位を参照してください。
per_unit_nameオプション単位の下位区分がある場合。request per second (1 秒あたりのリクエスト) など。
descriptionオプションメトリクスの説明。
orientation必須myapp.turnover のように、大きい方がよいメトリクスの場合は 1 に設定します。メトリクスの変動が特に重要でない場合は 0 に設定します。myapp.latency のように、小さい方がよいメトリクスの場合は -1 に設定します。
integration必須メトリクスを送信するインテグレーションの名前。これは、manifest.json ファイルにある tile.title を正規化した文字列です。文字、アンダースコア、ダッシュ、数字以外の文字はアンダースコアに変換されます。例: Openstack Controller -> openstack_controllerASP.NET -> asp_netCRI-o -> cri-o
short_name必須メトリクスの明示的な一意の ID。
curated_metricオプションインテグレーションのためのどのメトリクスが、与えられたタイプで注目すべきかをマークします (cpumemoryの両方が受け入れられる)。これらは、UI で他のインテグレーションメトリクスの上に表示されます。

その他の参考資料