Références pour les ressources d'intégration

Présentation

Cette page vous présente les fichiers à renseigner pour créer une offre sur la page Integrations ou la page Marketplace.

Certains fichiers s'appliquent uniquement aux intégrations héritées qui n'ont pas été créées avec la plateforme de développement d'intégrations.

Fichier de configuration

Lors de la préparation d’une nouvelle intégration, vous devez inclure un exemple de configuration contenant les options nécessaires et des valeurs par défaut raisonnables. Le fichier de configuration d’exemple, situé dans <CHECK_NAME>/datadog_checks/<CHECK_NAME>/data/conf.yaml.example, comporte deux éléments principaux : init_config et instances.

La configuration sous init_config s’applique globalement à l’intégration, et est utilisée pour chaque instance de l’intégration, tandis que tout ce qui figure dans instances est propre à une instance donnée.

Les blocs de configuration sous chaque section prennent le format suivant :

## @<COMMANDE> [- <ARGUMENTS>]
## <LIGNE DESCRIPTION 1>
## <LIGNE DESCRIPTION 2>
#
<KEY>: <VALUE>

Les blocs de configuration doivent respecter quelques principes :

  • Les descriptions ne doivent pas être vides.
  • Suivez toujours ce format : <THIS_IS_A_PLACEHOLDER> pour les placeholders. Pour plus d’informations, consultez la les règles de contribution pour le site de documentation.
  • Par défaut, tous les paramètres requis ne sont pas mis en commentaire.
  • Par défaut, tous les paramètres facultatifs sont mis en commentaire.
  • Si un placeholder présente une valeur par défaut pour une intégration (comme l’endpoint de statut d’une intégration), celle-ci peut être utilisée à la place d’un placeholder générique.

Spécification @param

Vous pouvez utiliser la commande @param pour décrire les blocs de configuration et fournir une documentation pour votre configuration. 

@param est implémenté selon l’une des formes suivantes :

@param <nom> - <type> - requis
@param <nom> - <type> - facultatif
@param <nom> - <type> - facultatif - valeur par défaut : <valeur_defaut>

Arguments :

  • nom : le nom du paramètre, par exemple search_string (obligatoire).
  • type : le type de données pour la valeur du paramètre (obligatoire). Les valeurs possibles incluent : boolean, string, integer, double, float, dictionary, list* et object*.
  • valeur_defaut : la valeur par défaut pour le paramètre ; peut être laissé vide (facultatif).

Les variables list et object couvrent plusieurs lignes et font l’objet de règles spéciales.

  • Dans une list, les éléments individuels ne sont pas documentés via la spécification @param.
  • Dans un object, vous avez la possibilité de documenter les éléments individuellement avec la spécification @param ou de spécifier une description commune au niveau supérieur juste après la spécification de l’objet.

Paramètres facultatifs

Un paramètre facultatif doit être mis en commentaire par défaut. Au début de chaque ligne couverte par le paramètre, ajoutez # en appliquant la même indentation que pour la spécification @param.

Commentaires de bloc

Vous pouvez ajouter un commentaire de bloc n’importe où dans le fichier de configuration. Les règles suivantes doivent être appliquées :

  • Les commentaires commencent par ##.
  • Les commentaires doivent être indentés comme les variables (le trait d’union ne compte pas).

Pour en savoir plus sur la syntaxe YAML, consultez l’article Wikipédia sur YAML. Vous pouvez aussi utiliser le parser YAML en ligne.

Fichier manifest

Chaque offre de la page Integrations ou de la page Marketplace contient un fichier manifest.json qui définit les paramètres de fonctionnement, le positionnement dans l’écosystème des intégrations Datadog, et des métadonnées supplémentaires.

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

manifest_version
Mandatory
Type: String Enum.
Description: Version of the manifest schema. Supported values include 1.0.0 and 2.0.0.
app_uuid
Mandatory
Type: UUID.
Description: 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_id
Mandatory
Type: String.
Description: 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.
assets
Mandatory
Type: Dictionary.
Description: Object containing any Datadog installable entity.
assets[dashboards]
Optional
Type: Dictionary.
Description: Out-of-the-box dashboards associated with this offering.
assets[dashboards["dashboard_short_name"]]
Mandatory
Type: String.
Description: 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]
Optional
Type: Dictionary.
Description: Object containing information about the integration.
assets[integration[auto_install]]
Mandatory
Type: Boolean.
Description: 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.
Description: Object representing the configuration specification for this integration.
assets[integration[configuration[spec]]]
Mandatory
Type: String.
Description: Relative path to where the configuration spec lives in relation to this manifest.
assets[integration[events]]
Mandatory
Type: Dictionary.
Description: Information about events emitted by this integration.
assets[integration[events[creates_events]]]
Mandatory
Type: Boolean.
Description: Whether or not this integration emits events to Datadog.
assets[integration[metrics]]
Mandatory
Type: Dictionary.
Description: Information about the metrics this integration emits.
assets[integration[metrics[check]]]
Mandatory
Type: String or list of strings.
Description: A string or list representing metrics that this integration always emits on every run.
assets[integration[metrics[metadata_path]]]
Mandatory
Type: String.
Description: Relative path to where the metrics metadata lives in relation to this manifest.
assets[integration[metrics[prefix]]]
Mandatory
Type: String.
Description: The prefix for metrics emitted by this integration.
assets[integration[service_checks]]
Mandatory, can be { }
Type: Dictionary.
Description: Information about service checks emitted by this integration.
assets[integration[service_checks[metadata_path]]]
Mandatory
Type: String.
Description: Relative path to where the service check metadata lives in relation to this manifest.
assets[integration[source_type_name]]
Mandatory
Type: String.
Description: User-facing name of this integration.
assets[integration[source_type_id]]
Mandatory
Type: Integer.
Description: 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]
Optional
Type: Dictionary.
Description: Recommended monitors.
assets[monitors["monitor_short_name"]]
Mandatory
Type: String.
Description: 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.
author
Mandatory
Type: Dictionary.
Description: Information about the author of this app.
author[homepage]
Mandatory
Type: String (URL).
Description: The web URL to the homepage of the author.
author[name]
Mandatory
Type: String.
Description: The human-readable name for this company.
author[sales_email]
Mandatory
Type: String (Email).
Description: The Partner email to contact for any subscription-level events.
author[support_email]
Mandatory
Type: String (Email).
Description: The Partner email to contact for any support and maintenance queries.
author[contact_link]
Optional
Type: String (URL).
Description: The URL link to meeting scheduling software, such as Calendly. This field is mandatory for professional services listings.
author[vendor_id]
Mandatory
Type: String.
Description: 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_website
Mandatory
Type: Boolean.
Description: 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_terms
Mandatory
Type: Dictionary.
Description: Any legal documentation that a user needs to agree to in order to use this app.
legal_terms[eula]
Mandatory
Type: String.
Description: Relative path to the End User License Agreement (EULA) PDF in relation to this manifest.
pricing
Mandatory
Type: Array of Dictionaries.
Description: 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.
tile
Mandatory
Type: Dictionary.
Description: Information about this offering.
tile[description]
Mandatory
Type: String[80].
Description: A brief description of what this offering provides. Limited to 80 characters.
tile[title]
Mandatory
Type: String[50].
Description: The user-friendly title for this app.
tile[media]
Mandatory, can be [ ]
Type: Array of Dictionaries.
Description: 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]]
Mandatory
Type: String or Enum.
Description: The type of media this is. Allowed values are image and video.
tile[media[caption]]
Mandatory
Type: String.
Description: The caption for the image.
tile[media[image_url]]
Mandatory
Type: String.
Description: The relative path to this image in relation to this manifest file.
tile[classifier_tags]
Mandatory, can be [ ]
Type: Array of strings.
Description: 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[resources]
Optional
Type: Array of Dictionaries.
Description: List of externally hosted resources (blog posts, documentation, etc.) that appear in the “Dive Deeper” section of the integration tile with rich previews.
tile[resources[resource_type]]
Mandatory
Type: String.
Description: Type of resource being linked. Can be blog, documentation, faq, or other.
tile[resources[url]]
Mandatory
Type: String.
Description: Link to resource.

Tags de classification

Vous pouvez définir plusieurs catégories et spécifier les types de données envoyées ou interrogées pour l’intégration à l’aide du paramètre classifier_tags.

Vous trouverez ci-dessous la liste complète des tags de classification pour le fichier manifest.json :

NameDescription
Category::AIIntegrations that monitor AI technologies.
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::Machine Learning & LLMIntegrations that monitor Machine Learning technologies, Large Language Models, and assist with ML Operations.
Category::MainframeIntegrations that monitor mainframe systems such as IBM z/OS.
Category::MarketplaceIntegrations that are sold in the Datadog Marketplace for an additional fee.
Category::MessagingIntegrations 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.

Fichier service_check

Le fichier service_check.json décrit les checks de service effectués par l’intégration.

Vous trouverez ci-dessous la liste complète des attributs obligatoires pour le fichier service_checks.json :

AttributRôle
agent_versionLa version minimale prise en charge de l’Agent.
integrationLe nom de l’intégration qui envoie le check de service. Doit correspondre au tile.title non normalisé de manifest.json.
checkNom du check de service. Il doit être unique.
statusesLa liste des différents statuts du check. Valeurs autorisées : ok, warning, critical ou unknown.
groupsTags envoyés avec le check de service.
nameLe nom d’affichage du check de service. Le nom d’affichage doit être clair et unique dans l’ensemble des intégrations.
descriptionDescription du check de service.

Fichier metadata des métriques

Le fichier metadata.csv décrit toutes les métriques pouvant être recueillies par l’intégration.

Vous trouverez ci-dessous la liste complète des attributs obligatoires et facultatifs pour le fichier metadata.csv :

Nom de la colonneObligatoire ou facultatifRôle
metric_nameObligatoireNom de la métrique.
metric_typeObligatoireType de la métrique. Pour une liste des types d’envoi de métriques disponibles, consultez la section Types de métriques.
intervalFacultatifIntervalle de collecte de la métrique en secondes.
unit_nameFacultatifUnité de la métrique. Pour une liste complète des unités prises en charge, consultez la section Unités de métriques.
per_unit_nameFacultatifS’il existe une sous-unité, comme request per second.
descriptionFacultatifDescription de la métrique.
orientationObligatoireDéfinissez sur 1 si la métrique doit augmenter, comme myapp.turnover. Définissez sur 0 si les variations de la métrique sont sans importance. Définissez sur -1 si la métrique doit diminuer, comme myapp.latency.
integrationObligatoireNom de l’intégration qui envoie la métrique. Doit correspondre à la version normalisée du tile.title dans le fichier manifest.json. Les caractères autres que les lettres, underscores, tirets et nombres sont convertis en underscores. Exemples : Openstack Controller -> openstack_controller, ASP.NET -> asp_net et CRI-o -> cri-o.
short_nameObligatoireVersion abrégée et lisible du nom de la métrique. Ne répétez pas le nom de l’intégration. Par exemple, postgresql.index_blocks_hit doit être abrégé en idx blks hit.
curated_metricFacultatifIndique quelles métriques d’une intégration sont remarquables pour un type donné (cpu et memory sont acceptés). Ces métriques sont affichées dans l’interface utilisateur au-dessus des autres métriques de l’intégration.
sample_tagsFacultatifListe d’exemples de tags associés à la métrique, séparés par des virgules sans espaces. Par exemple : host,region,deployment.

Pour aller plus loin