Développeurs

Présentation

La section Développeurs contient des références sur le développement pour Datadog. Il peut être intéressant de développer une solution pour Datadog si vous souhaitez visualiser des données jusque là indisponibles dans Datadog. Dans ce cas, il est possible que Datadog prenne d’ores et déjà en charge la technologie dont vous avez besoin. Consultez le tableau des technologies fréquemment demandées pour trouver un produit ou une intégration susceptible de répondre à vos besoins.

Si la solution dont vous avez besoin n’est pas du tout disponible, vous pouvez contacter l’assistance Datadog pour demander l’ajout d’une fonctionnalité. Il est également possible de créer votre propre solution à l’aide des références de cette page.

Partenaires et Marketplace Datadog

Nos partenaires ont la possibilité de concevoir une solution pour Datadog et de contribuer au Marketplace Datadog ou aux intégrations de la communauté Datadog. Pour découvrir comment devenir partenaire Datadog, consultez les détails du programme des partenaires (en anglais).

Technologies fréquemment demandées

Si vous souhaitez surveiller des données avec Datadog alors qu’elles ne sont actuellement pas prises en charge, avant de développer quoi que ce soit, passez en revue les solutions et intégrations Datadog suivantes :

logo
OpenMetricsThe Agent includes OpenMetrics and Prometheus checks capable of scraping Prometheus endpoints.
logo
Windows Performance CountersWindows services or applications that expose performance counters can be collected with the PDH integration.
logo
JMX BeansJVM-based applications expose JMX metrics that can be collected with the JMX integration. For example, the JMX integration is already used for official integrations like Solr, Tomcat, Cassandra, and more.
logo
LogsMost applications generate some type of log, it may be possible to leverage the Log Management product to accomplish base monitoring.
logo
APMThe Datadog APM & Continuous Profiler product provides out-of-the-box performance dashboards for web services, queues, and databases to monitor requests, errors, and latency.
logo
Custom MetricsCustom metrics can be submitted for business stats using developer tools like the API and DogStatsD.
logo
Custom IntegrationsDatadog Agent integrations are Python files querying for metrics. All Agent code is open source, so it's possible to write your own custom Agent integration. The integrations-extras GitHub repository contains many community developed custom Agent integrations.
logo
SNMP / Network TrafficNetwork devices, such as routers, switches, and printers emit SNMP (Simple Network Management Protocol) metrics, which can be collected with the Network Device Monitoring product. There is also the Network Performance Monitoring product, which can track all network traffic in and out of a host.
logo
EndpointFor URL uptimes, use an HTTP check or Synthetics Monitoring to validate if an endpoint or URL is running and accessible. Both work with public and private endpoints.
logo
ProcessesTo collect resource usage metrics for specific running processes on any host such as CPU, memory, I/O, etc. use the Processes integration. To query across all your running processes for open-ended debugging use Live Process Monitoring (like htop without having to SSH).
logo
Files / DirectoriesMeasuring the age of files, the number of files in a directory, or the size of a directory can be accomplished with the Directory check.
logo
Cloud ProvidersAll the major Cloud providers (AWS, GCP, Azure, Alibaba) emit metrics through APIs. Use the Datadog integration tiles in your account to configure these integrations which use Datadog servers to crawl and store your metrics.

Créer votre propre solution

Vous n’avez pas trouvé d’alternative pour surveiller le type de données souhaité ? Vous disposez de plusieurs options pour envoyer des données non prises en charge à Datadog.

  • DogStatsD est un service d’agrégation de métriques qui prend en charge les métriques custom, les événements et les checks de service.

  • Les checks custom vous permettent de recueillir des métriques à partir d’applications ou de systèmes personnalisés. Les checks custom d’Agent peuvent être utilisés dans de nombreux scénarios. Pour répondre à des besoins plus avancés (par exemple, pour le pré-traitement des métriques), il peut être plus pertinent de rédiger un check OpenMetrics.

  • Les integrations vous permettent également de recueillir des métriques, des événements et des checks de service à partir d’applications ou de systèmes personnalisés. Elles sont réutilisables. Vous pouvez développer une intégration que vous seul pourrez utiliser, ou rédiger une intégration publique incluse dans le référentiel d’intégrations de la communauté Datadog, afin que d’autres développeurs puissent en tirer profit.

Comparaison entre les checks custom et les intégrations

Ce qui différencie avant tout les checks custom des intégrations, c’est que les intégrations sont des composants réutilisables qui peuvent intégrer l’écosystème Datadog. Leur développement est généralement plus difficile et nécessite plus de temps. Elles sont particulièrement utiles pour des outils généraux (frameworks d’application, projets open source ou logiciels couramment utilisés). Si vous souhaitez répondre à des besoins plus spécifiques, par exemple surveiller des services peu utilisés en dehors de votre équipe ou de votre organisation, Datadog vous recommande de rédiger un check custom.

Il peut toutefois être plus pertinent de concevoir une intégration qu’un check custom si votre scénario implique la publication et le déploiement de votre solution en tant que wheel Python (.whl). Les métriques générées par les checks custom sont considérées comme des métriques custom : leur coût est donc calculé en fonction de votre offre d’abonnement. À l’inverse, dès lors qu’une intégration rejoint l’écosystème Datadog, ses métriques ne sont plus considérées comme des métriques custom, et ne sont donc pas comptabilisées dans votre total de métriques custom. Pour en savoir plus sur l’impact de cette particularité sur vos coûts, consultez les tarifs Datadog.

Remarque : il est plus difficile de concevoir une intégration publique (à savoir, une intégration incluse dans l’écosystème Datadog, pouvant être installée avec la commande datadog-agent integration et faisant partie du référentiel integrations-extras ou integrations-core de Datadog) qu’une intégration privée. En effet, les intégrations publiques doivent réussir toutes les étapes ddev validate, proposer des tests utilisables et faire l’objet d’un examen de leur code. En tant qu’auteur du code, vous devez vous occuper activement de l’intégration et êtes responsable de son bon fonctionnement.

Pour bien choisir l’approche à adopter pour envoyer des données non prises en charge à Datadog, il convient avant tout de tenir compte de la difficulté (durée du développement) et du budget associé (coût des métriques custom). Si vous essayez de visualiser des données que Datadog ne prend pas en charge, commencez par opter pour la méthode qui vous paraît la plus logique :

TypeDifficultéMétriques customLangage
DogStatsDMinimaleOuiTous
Check customFaibleOuiPython
Intégration privéeMoyenneOuiPython
Intégration publiqueÉlevéeNonPython

Si vous êtes un partenaire et que vous développez une solution pour le Marketplace Datadog ou une intégration de la communauté, consultez en priorité la section Marketplace et la documentation relative à la conception d’une intégration.

Quelle est la différence entre les checks custom et les checks de service ?

Les checks custom, ou checks custom d’Agent, vous permettent d’envoyer des données sur un service interne à Datadog. Les check de service sont bien plus simples : ils surveillent le statut de disponibilité d’un service spécifique. Bien que ces deux outils soient des checks, leur fonctionnement diffère. Ils peuvent être utilisés de façon distincte ou conjointe en fonction de vos besoins en matière de surveillance. Pour en savoir plus sur ces ressources, consultez les sections Checks custom et Check de service.

Ressources générales pour les développeurs


Envoyer des données en fonction de leur type


Communauté


Other


Pour aller plus loin