Lorsque vous préparez une nouvelle intégration, vous devez inclure un exemple de configuration contenant les options requises et des valeurs par défaut appropriées. L’exemple de fichier de configuration, ici situé dans <NOM_CHECK>/datadog_checks/<NOM_CHECK>/data/conf.yaml.example, comprend deux éléments de premier niveau : init_config et instances. La configuration sous init_config est appliquée à l’ensemble de l’intégration et utilisée à chaque instanciation de l’intégration, tandis que ce qui trouve sous instances est spécifique à une instanciation donnée.
Les blocs de configuration sous chaque section prennent le format suivant :
Les blocs de configuration doivent respecter quelques principes :
La description ne doit pas être vide.
Les placeholders doivent toujours respecter ce format :
<CECI_EST_UN_PLACEHOLDER>, conformément aux règles de contribution à la 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.
En pratique, la seule commande est @param, qui est utilisée pour décrire les blocs de configuration, principalement à des fins de documentation. @param doit être implémentée en respectant l’un des formats suivants :
nom : le nom du paramètre, par exemple search_string (obligatoire).
type : le type de données de la valeur du paramètre (obligatoire). Valeurs autorisées :
boolean
string
Nombre entier
double
float
dictionary
list*
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.
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.
Chaque intégration contient un fichier manifest.json qui décrit les paramètres de fonctionnement de l’intégration, sa place dans l’écosystème d’intégrations global de Datadog, et d’autres informations semblables.
Il existe deux versions du fichier manifest.json. Bien que la version 1 du manifeste soit toujours prise en charge par les intégrations existantes, toutes les nouvelles intégrations, à savoir les Apps Datadog et les offres du Marketplace, doivent utiliser la version 2 du manifeste.
Si la ligne suivante figure en haut de votre fichier manifest.json, cela signifie qu’il s’agit de la version 2 :
"manifest_version": "2.0.0"
Si ce n’est pas le cas, vous utilisez la version 1 du manifeste.
Ces deux versions proposent différents attributs et différentes structures. Le tableau ci-dessous répertorie tous les attributs obligatoires et facultatifs des deux versions du fichier manifest.json :
Version du schéma du manifeste. Valeurs autorisées : 1.0.0 et 2.0.0.
app_id
Chaîne
Obligatoire
L’identifiant unique de l’offre. Il s’agit généralement du titre de l’application au format kebab. Par exemple, pour une application du nom de « Offre Marketplace », l’attribut app_id peut prendre pour valeur offre-marketeplace.
app_uuid
UUID
Obligatoire
UUID global et unique de l’application.
assets
Dictionnaire
Obligatoire
Objet contenant des entités installables sur Datadog.
assets[dashboards]
Dictionnaire
Facultatif
Dashboards prêts à l’emploi associés à l’offre.
assets[dashboards["dashboard_short_name"]]
Chaîne
Obligatoire
Paires key/value pour les dashboards prêts à l’emploi. La clé correspond au nom raccourci unique et global du dashboard, tandis que la valeur correspond au chemin relatif de la définition JSON du dashboard par rapport au manifeste.
assets[integration]
Dictionnaire
Facultatif
Objet contenant des informations à propos de l’intégration.
assets[integration[configuration]]
Dictionnaire
Obligatoire, mais peut être défini sur { }
Objet représentant la spécification de la configuration de l’intégration.
assets[integration[configuration[spec]]]
Chaîne
Obligatoire
Chemin relatif de la spécification de la configuration par rapport au manifeste.
assets[integration[events]]
Dictionnaire
Obligatoire
Informations à propos des événements générés par l’intégration.
assets[integration[events[creates_events]]]
Booléen
Obligatoire
Indique si cette intégration transmet des événements à Datadog.
assets[integration[metrics]]
Dictionnaire
Obligatoire
Informations à propos des métriques générées par l’intégration.
assets[integration[metrics[check]]]
Chaîne ou liste de chaînes
Obligatoire
Chaîne ou liste de chaînes représentant la ou les métriques systématiquement générées par l’intégration à chaque exécution.
assets[integration[metrics[metadata_path]]]
Chaîne
Obligatoire
Chemin relatif des métadonnées des métriques par rapport au manifeste.
assets[integration[metrics[prefix]]]
Chaîne
Obligatoire
Préfixe des métriques générées par l’intégration.
assets[integration[service_checks]]
Dictionnaire
Obligatoire, mais peut-être défini sur { }
Informations à propos des checks de service générés par l’intégration.
Chemin relatif des métadonnées des checks de service par rapport au manifeste.
assets[integration[source_type_name]]
Chaîne
Obligatoire
Nom public de l’intégration.
assets[monitors]
Dictionnaire
Facultatif
Monitors recommandés.
assets[monitors["monitor_short_name"]]
Chaîne
Obligatoire
Paires key/value pour les monitors recommandés. La clé correspond au nom raccourci unique et global du monitor, tandis que la valeur correspond au chemin relatif de la définition JSON du monitor par rapport au manifeste.
author
Dictionnaire
Obligatoire
Informations à propos de l’auteur de l’application.
author[homepage]
Chaîne (URL)
Obligatoire
L’URL Web de la page d’accueil de l’auteur.
author[name]
Chaîne
Obligatoire
Nom lisible de l’entreprise.
author[sales_email]
Chaîne (adresse e-mail)
Obligatoire
Adresse e-mail de la personne à contacter pour les événements liés à l’abonnement.
author[support_email]
Chaîne (adresse e-mail)
Obligatoire
Adresse e-mail de la personne à contacter pour les demandes d’assistance et d’entretien.
author[vendor_id]
Chaîne
Obligatoire
ID du fournisseur à utiliser à des fins d’abonnement. Cet attribut doit être globalement unique et ne peut pas être modifié. Vous devez impérativement suivre les règles de app_id et n’utiliser que des caractères alphabétiques et des traits d’union. Cette valeur est spécifiée par les fournisseurs.
classifier_tags
Tableau de chaînes
Obligatoire, mais peut être défini sur { }
Quelques informations de classification à propos de l’application, notamment supported_os et available_offerings.
display_on_public_website
Booléen
Obligatoire
Indique si l’offre doit être présentée sur le site de la documentation publique Datadog. Si vous définissez la valeur True, il n’est plus possible de modifier votre choix.
legal_terms
Dictionnaire
Obligatoire
Documentation juridique que l’utilisateur doit accepter pour pouvoir utiliser l’application.
legal_terms[eula]
Chaîne
Obligatoire
Chemin relatif du PDF des CGU (conditions générales d’utilisation) par rapport au manifeste.
pricing
Tableau de dictionnaires
Obligatoire
Liste d’objets représentant le modèle de tarification de l’intégration. Accédez au référentiel GitHub Marketplace pour en savoir plus sur les tarifs. Ce référentiel est privé : vous devez donc envoyer un e-mail à marketplace@datadog.com pour pouvoir y accéder.
tile
Dictionnaire
Obligatoire
Informations à propos de l’offre.
tile[media]
Tableau de dictionnaires
Obligatoire, mais peut être défini sur { }
Informations à propos des différents objets d’image et de vidéo présentés dans la galerie multimédia sur la page de l’offre.
tile[media[media_type]]
Chaîne ou énumération
Obligatoire
Type du fichier multimédia. Valeurs autorisées : image et video.
tile[media[caption]]
Chaîne
Obligatoire
Légende de l’image.
tile[media[image_url]]
Chaîne
Obligatoire
Chemin relatif de l’image par rapport au fichier du manifeste.
tile[description]
Chaîne[80]
Obligatoire
Courte description des caractéristiques de l’offre. 80 caractères maximum.
tile[title]
Chaîne[50]
Obligatoire
Title public de l’application.
Attribut
Type
Obligatoire/Facultatif
Description
integration_id
Chaîne
Obligatoire
Le nom d’identification unique de cette intégration. Généralement, il s’agit de la version kebab case du nom d’affichage.
categories
Tableau de chaînes
Obligatoire
Les catégories d’intégration utilisées sur la page Intégrations de la documentation publique.
creates_events
Booléen
Obligatoire
Définit si l’intégration est en mesure de créer des événements. Si cet attribut est défini sur false, une erreur se produit lorsque l’intégration tente de créer un événement.
display_name
Chaîne
Obligatoire
Le titre affiché sur le carré d’intégration correspondant sur le site Datadog et sur la page Intégrations.
guid
Chaîne
Obligatoire
L’ID unique de l’intégration. Cliquez ici pour générer un UUID.
is_public
Booléen
Obligatoire
Si cet attribut est défini sur false, le contenu du fichier README.md de l’intégration n’est pas inclus dans la documentation publique de Datadog.
maintainer
Chaîne
Obligatoire
L’adresse e-mail du propriétaire de l’intégration.
manifest_version
Chaîne
Obligatoire
La version du manifeste actuel.
name
Chaîne
Obligatoire
Le nom unique de l’intégration. Utilisez le nom du répertoire pour ce paramètre.
public_title
Chaîne
Obligatoire
Le titre de l’intégration affiché dans la documentation. Doit respecter le format : <NOM_INTÉGRATION>.
short_description
Chaîne
Obligatoire
Ce texte s’affiche en haut du carré d’intégration ainsi qu’au passage de la souris sur la page Intégrations. 80 caractères maximum.
support
Chaîne
Obligatoire
Le propriétaire de l’intégration.
supported_os
Tableau de chaînes
Obligatoire
La liste des systèmes d’exploitation pris en charge. Valeurs autorisées : linux, mac_os ou windows.
type
Chaîne
Obligatoire
Le type d’intégration, doit être défini sur check.
aliases
Tableau de chaînes
Facultatif
Une liste d’alias d’URL pour la documentation Datadog.
description
Chaîne
Facultatif
Ce texte s’affiche lorsque quelqu’un partage un lien vers la documentation de l’intégration.
is_beta
Booléen
Facultatif
false par défaut. Lorsque cet attribut est défini sur true, le contenu du fichier README.md de l’intégration ne s’affiche pas dans la documentation publique de Datadog.
metric_to_check
Chaîne
Facultatif
La présence de cette métrique indique que l’intégration fonctionne correctement. Si cette métrique n’est pas reçue une fois l’intégration installée, l’intégration est signalée comme non fonctionnelle sur le site Datadog.
metric_prefix
Chaîne
Facultatif
L’espace de nommage des métriques de cette intégration. Cette valeur est ajoutée en préfixe pour chaque métrique envoyée par cette intégration.
process_signatures
Tableau de chaînes
Facultatif
Une liste de signatures qui correspond à la ligne de commande de cette intégration.
assets
Dictionnaire
Obligatoire
L’emplacement relatif où se trouvent certains fichiers ressources et leurs noms respectifs.
assets-> dashboards
Dictionnaire
Obligatoire
Le dictionnaire dont la clé est le nom du dashboard (doit être unique dans l’ensemble des intégrations) et la valeur est le chemin relatif du fichier où se trouve la définition du dashboard.
assets-> monitors
Dictionnaire
Obligatoire
Le dictionnaire dont la clé est le nom du monitor (doit être unique dans l’ensemble des intégrations) et la valeur est le chemin relatif du fichier où se trouve la définition du dashboard.
assets-> service_checks
Chaîne
Obligatoire
L’emplacement relatif où se trouve le fichier service_checks.json.
En cas de sous-division de l’unité, p. ex. requêtes par seconde
description
Facultatif
Description de la métrique.
orientation
Obligatoire
Définir sur 1 si la métrique doit augmenter, p. ex. myapp.turnover. Définir sur 0 si les variations ne la métrique n’importent pas. Définir sur -1 si la métrique doit diminuer, p. ex. myapp.latency.
integration
Obligatoire
Nom de l’intégration qui envoie la métrique. Doit correspondre à la version normalisée du display_name 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_name
Obligatoire
Identifiant unique et explicite de la métrique.
curated_metric
Facultatif
Indique que la métrique est pertinente pour un type donné. Types acceptés : cpu et memory.