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 :

NomRôle
Category::AIDes intégrations qui surveillent les technologies de l’IA.
Category::AlertingDes intégrations qui collectent des données de Datadog pour émettre des alertes, ou qui envoient des alertes à Datadog.
Category::AutomationDes intégrations pour les technologies qui automatisent les processus tels que la sécurité, la conformité, les tests et les AIOps.
Category::AWSDes intégrations qui envoient des données à partir d’Amazon Web Services et de ses services connexes.
Category::AzureDes intégrations qui envoient des données à partir d’Azure et de ses services connexes.
Category::CachingDes intégrations qui surveillent les technologies de caches et de mises en cache.
Category::CloudDes intégrations qui envoient des données à partir des plateformes de cloud et de leurs services connexes.
Category::CollaborationDes intégrations pour les plates-formes axées sur la communication et la collaboration, telles que la collaboration en matière de code, les logiciels de messagerie et les conférences téléphoniques.
Category::ComplianceDes intégrations qui surveillent et envoient des données de conformité à Datadog, comme la prise en charge des normes HIPPA, SOC2, GDPR, etc.
Category::Configuration & DeploymentDes intégrations qui surveillent des plateformes qui peuvent configurer et déployer une infrastructure.
Category::ContainersDes intégrations qui suivent les métriques, les logs, les événements et les traces à partir de conteneurs et de technologies de gestion des conteneurs.
Category::Cost ManagementDes intégrations qui permettent de suivre et de gérer les coûts de l’informatique dématérialisée.
Category::Data StoresDes intégrations qui surveillent les solutions de stockage de données telles que les bases de données, les clusters, les lacs de données, etc.
Category::Developer ToolsDes intégrations pour les technologies que les développeurs utilisent afin de créer des applications telles que le contrôle de version, CI/CD, et infrastructure as code.
Category::Event ManagementDes intégrations qui envoient des événements à Datadog ou interrogent des événements pour les envoyer vers des plates-formes externes.
Category::Google CloudDes intégrations qui envoient des données à partir de Google Cloud et de ses services connexes.
Category::IncidentsDes intégrations qui envoient des incidents à Datadog, ou créent des incidents en externe sur la base des données de Datadog.
Category::IOTDes intégrations qui surveillent les appareils IoT (Internet des objets).
Category::Issue TrackingDes intégrations permettant aux utilisateurs dʼidentifier et de gérer des problèmes dans leur infrastructure ou leur code.
Category::KubernetesDes intégrations qui envoient des données à partir de Kubernetes et de ses services connexes.
Category::LanguagesDes intégrations qui envoient des métriques et des données supplémentaires basées sur des langages de programmation spécifiques.
Category::Log CollectionDes intégrations qui envoient ou interrogent les logs à partir de Datadog.
Category::Machine Learning & LLMDes intégrations qui surveillent les technologies dʼapprentissage automatique, les grands modèles de langage (LLM), et qui aident aux opérations de ML.
Category::MainframeDes intégrations qui surveillent les systèmes centraux tels que IBM z/OS.
Category::MarketplaceDes intégrations qui sont vendues sur Datadog Marketplace moyennant un supplément.
Category::MessagingDes intégrations qui surveillent les files d’attente et les systèmes de messagerie.
Category::MetricsDes intégrations qui soumettent et interrogent des métriques de Datadog.
Category::MobileDes intégrations qui surveillent les appareils et les applications mobiles.
Category::NetworkDes intégrations qui surveillent les réseaux et les périphériques réseau.
Category::NotificationsDes intégrations pour les technologies qui se concentrent sur les notifications, par exemple, la réponse aux incidents.
Category::OracleDes intégrations qui surveillent les technologies basées sur Oracle.
Category::OrchestrationDes intégrations pour les technologies qui fournissent une orchestration pour les conteneurs et plus encore.
Category::OS & SystemDes intégrations qui surveillent les systèmes dʼexploitation ou dʼautres systèmes de bas niveau.
Category::ProvisioningDes intégrations pour les technologies qui gèrent lʼapprovisionnement en ressource dans le cloud, les conteneurs, etc.
Category::SAPDes intégrations pour les technologies SAP.
Category::SecurityDes intégrations qui surveillent des outils de sécurité ou qui fournissent des rapports de sécurité.
Category::SNMPDes intégrations qui surveillent SNMP et les outils connexes.
Category::Source ControlDes intégrations qui surveillent des outils de collaboration de code source tels que Git.
Category::TestingDes intégrations qui surveillent des technologies qui exécutent des tests de navigateur, des tests de charge, etc.
Category::TracingDes intégrations qui envoient ou interrogent les traces à partir de Datadog, et interagissent avec lʼAPM Datadog.
Offering::IntegrationIl s’agit d’une offre qui envoie ou interroge des données à partir du compte Datadog d’un utilisateur.
Offering::Professional ServiceIl s’agit d’une offre payante qui propose des services professionnels de tiers services, tels que le conseil, la création dʼintégrations, et plus encore, aux clients de Datadog par l’intermédiaire de Datadog Marketplace.
Offering::Software LicenseIl s’agit d’une offre payante qui fournit un abonnement à un produit SaaS via Datadog Marketplace.
Offering::UI ExtensionIl s’agit d’un widget de dashboard personnalisé qui affiche une iFrame interactive sur la page d’accueil des utilisateurs de Datadog.
Queried Data Type::MetricsUne intégration qui lit des métriques à partir du compte d’un utilisateur Datadog.
Queried Data Type::LogsUne intégration qui lit des logs à partir du compte d’un utilisateur Datadog.
Queried Data Type::TracesUne intégration qui lit des traces à partir du compte d’un utilisateur Datadog.
Queried Data Type::EventsUne intégration qui lit des événements à partir du compte d’un utilisateur Datadog.
Queried Data Type::IncidentsUne intégration qui lit des incidents à partir du compte d’un utilisateur Datadog.
Submitted Data Type::MetricsUne intégration qui envoie des métriques vers le compte d’un utilisateur Datadog.
Submitted Data Type::LogsUne intégration qui envoie des logs vers le compte d’un utilisateur Datadog.
Submitted Data Type::TracesUne intégration qui envoie des traces vers le compte d’un utilisateur Datadog.
Submitted Data Type::EventsUne intégration qui envoie des événements vers le compte d’un utilisateur Datadog.
Submitted Data Type::IncidentsUne intégration qui envoie des incidents vers le compte d’un utilisateur Datadog.
Supported OS::AndroidUne intégration qui peut fonctionner et interroger ou envoyer des données d’Android.
Supported OS::AnyUne intégration qui peut fonctionner et interroger ou envoyer des données de nʼimporte quel système dʼexploitation.
Supported OS::HP-UXUne intégration qui peut fonctionner et interroger ou envoyer des données de HP-UX.
Supported OS::IBM i/OSUne intégration qui peut fonctionner et interroger ou envoyer des données dʼIBM i/OS.
Supported OS::IBM z/OSUne intégration qui peut fonctionner et interroger ou envoyer des données dʼIBM z/OS.
Supported OS::iOSUne intégration qui peut fonctionner et interroger ou envoyer des données dʼiOS.
Supported OS::LinuxUne intégration qui peut fonctionner et interroger ou envoyer des données de Linux.
Supported OS::macOSUne intégration qui peut fonctionner et interroger ou envoyer des données de macOS.
Supported OS::SolarisUne intégration qui peut fonctionner et interroger ou envoyer des données de Solaris.
Supported OS::WindowsUne intégration qui peut fonctionner et interroger ou envoyer des données de 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