The Developers section contains reference materials for developing on Datadog. You may want to develop on Datadog if there is data you want to see in the product that you are not seeing. If this is the case, Datadog may already support the technology you need. Refer to the table of commonly requested technologies to find the product or integration that may fulfill your needs.
Additionally, you may also be a partner who wants to build on Datadog and contribute to the Datadog Marketplace or to Datadog’s community integrations. For more information about becoming a Datadog partner, see the Partner program page.
If there is data you want to monitor with Datadog that you are not seeing, before building something custom, consider the following Datadog products and integrations:
|OpenMetrics||The Agent includes OpenMetrics and Prometheus checks capable of scraping Prometheus endpoints.|
|Windows Performance Counters||Windows services or applications that expose performance counters can be collected with the PDH integration.|
|JMX Beans||JVM-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.|
|Logs||Most applications generate some type of log, it may be possible to leverage the Log Management product to accomplish base monitoring.|
|APM||The Datadog APM & Continuous Profiler product provides out-of-the-box performance dashboards for web services, queues, and databases to monitor requests, errors, and latency.|
|Custom Metrics||Custom metrics can be submitted for business stats using developer tools like the API and DogStatsD.|
|Custom Integrations||Datadog 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.|
|SNMP / Network Traffic||Network 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.|
|Endpoint||For 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.|
|Processes||To 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).|
|Files / Directories||Measuring the age of files, the number of files in a directory, or the size of a directory can be accomplished with the Directory check.|
|Cloud Providers||All 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.|
Still not seeing the type of data that you need? Developers have several choices for sending unsupported data to Datadog.
DogStatsD is a metrics aggregation service that accepts custom metrics, events, and service checks.
Custom checks enable you to collect metrics from custom applications or systems. Custom Agent checks are suitable for many needs. For more advanced requirements like metrics preprocessing, you may choose to write an OpenMetrics check.
Integrations also enable you to collect metrics, events, and service checks from custom applications or systems. Integrations are reusable. You may keep your integration private, or write a public integration contributing to Datadog’s repository of community integrations to be used by other developers.
The primary difference between custom checks and integrations is that integrations are reusable components that can become part of the Datadog’s ecosystem. They generally take more effort (time to develop) and are best suited for general use-cases such as application frameworks, open source projects, or commonly used software. For more niche scenarios, such as monitoring services that are not widely used outside your team or organization, writing a custom check may be the most efficient option.
However, you may choose to write an integration instead of a custom check if your particular use-case requires you to publish and deploy your solution as a Python wheel (
.whl). Metrics emitted through custom checks are considered custom metrics, which have a cost associated based on your subscription plan. However, once an integration gets accepted into the Datadog ecosystem, metrics that it emits are no longer considered custom metrics, and do not count against your custom metric count. For more information about how this might impact cost, see the Datadog Pricing Page.
Note that writing a public integration (that is, one that is part of Datadog’s ecosystem, can be installed with the
datadog-agent integration command, and is accepted into Datadog’s integrations-extras or integrations-core repositories) requires more work than a private integration. These integrations must pass all
ddev validate steps, have usable tests, and undergo code review. You, as the code author, are the active maintainer of the integration and are responsible for ensuring its functionality.
When deciding how to send unsupported data to Datadog, the main considerations are effort (time to develop) and budget (cost of custom metrics). If you are trying to see data that Datadog doesn’t currently support, start by deciding which method makes the most sense to start sending data:
A custom check, also know as a custom Agent check, lets you send internal service data to Datadog. A service check is much simpler and lets you monitor the up or down status of the specific service. Even though these are both checks, they have very different functionality and can be used separately and together based on your monitoring needs. For more information about each, see the custom check, and service check documentation sections.
Send your own metrics to Datadog:
Learn about the types of data you can submit to Datadog and how to submit them:
Collaborate with the Datadog developer community:
Other developer resources:
Additional helpful documentation, links, and articles: