Modbus and Datadog Integration
Powerful performance with an easy integration, powered by Telegraf, the open source data connector built by InfluxData.
5B+
Telegraf downloads
#1
Time series database
Source: DB Engines
1B+
Downloads of InfluxDB
2,800+
Contributors
Table of Contents
Powerful Performance, Limitless Scale
Collect, organize, and act on massive volumes of high-velocity data. Any data is more valuable when you think of it as time series data. with InfluxDB, the #1 time series platform built to scale with Telegraf.
See Ways to Get Started
Input and output integration overview
The Modbus plugin allows you to collect data from Modbus devices using various communication methods, enhancing your ability to monitor and control industrial processes.
The Datadog Telegraf Plugin enables the submission of metrics to the Datadog Metrics API, facilitating efficient monitoring and data analysis through a reliable metric ingestion process.
Integration details
Modbus
The Modbus plugin collects discrete inputs, coils, input registers, and holding registers via Modbus TCP or Modbus RTU/ASCII.
Datadog
This plugin writes to the Datadog Metrics API, enabling users to send metrics for monitoring and performance analysis. By utilizing the Datadog API key, users can configure the plugin to establish a connection with Datadog’s v1 API. The plugin supports various configuration options including connection timeouts, HTTP proxy settings, and data compression methods, ensuring adaptability to different deployment environments. The ability to transform count metrics into rates enhances the integration of Telegraf with Datadog agents, particularly beneficial for applications that rely on real-time performance metrics.
Configuration
Modbus
[[inputs.modbus]]
name = "Device"
slave_id = 1
timeout = "1s"
configuration_type = "register"
discrete_inputs = [
{ name = "start", address = [0]},
{ name = "stop", address = [1]},
{ name = "reset", address = [2]},
{ name = "emergency_stop", address = [3]},
]
coils = [
{ name = "motor1_run", address = [0]},
{ name = "motor1_jog", address = [1]},
{ name = "motor1_stop", address = [2]},
]
holding_registers = [
{ name = "power_factor", byte_order = "AB", data_type = "FIXED", scale=0.01, address = [8]},
{ name = "voltage", byte_order = "AB", data_type = "FIXED", scale=0.1, address = [0]},
{ name = "energy", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [5,6]},
{ name = "current", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [1,2]},
{ name = "frequency", byte_order = "AB", data_type = "UFIXED", scale=0.1, address = [7]},
{ name = "power", byte_order = "ABCD", data_type = "UFIXED", scale=0.1, address = [3,4]},
{ name = "firmware", byte_order = "AB", data_type = "STRING", address = [5, 6, 7, 8, 9, 10, 11, 12]},
]
input_registers = [
{ name = "tank_level", byte_order = "AB", data_type = "INT16", scale=1.0, address = [0]},
{ name = "tank_ph", byte_order = "AB", data_type = "INT16", scale=1.0, address = [1]},
{ name = "pump1_speed", byte_order = "ABCD", data_type = "INT32", scale=1.0, address = [3,4]},
]
Datadog
[[outputs.datadog]]
## Datadog API key
apikey = "my-secret-key"
## Connection timeout.
# timeout = "5s"
## Write URL override; useful for debugging.
## This plugin only supports the v1 API currently due to the authentication
## method used.
# url = "https://app.datadoghq.com/api/v1/series"
## Set http_proxy
# use_system_proxy = false
# http_proxy_url = "http://localhost:8888"
## Override the default (none) compression used to send data.
## Supports: "zlib", "none"
# compression = "none"
## When non-zero, converts count metrics submitted by inputs.statsd
## into rate, while dividing the metric value by this number.
## Note that in order for metrics to be submitted simultaenously alongside
## a Datadog agent, rate_interval has to match the interval used by the
## agent - which defaults to 10s
# rate_interval = 0s
Input and output integration examples
Modbus
- Basic Usage: To read from a single device, configure it with the device name and IP address, specifying the slave ID and registers of interest.
- Multiple Requests: You can define multiple requests to fetch data from different Modbus slave devices in a single configuration by specifying multiple
[[inputs.modbus.request]]
sections. - Data Processing: Utilize the scaling features to convert raw Modbus readings into useful metrics, adjusting for unit conversions as needed.
Datadog
-
Real-Time Infrastructure Monitoring: Use the Datadog plugin to monitor server metrics in real-time by sending CPU usage and memory statistics directly to Datadog. This integration allows IT teams to visualize and analyze system performance metrics in a centralized dashboard, enabling proactive response to any emerging issues, such as resource bottlenecks or server overloads.
-
Application Performance Tracking: Leverage this plugin to submit application-specific metrics, such as request counts and error rates, to Datadog. By integrating with application monitoring tools, teams can correlate infrastructure metrics with application performance, providing insights that enable them to optimize code performance and improve user experience.
-
Anomaly Detection in Metrics: Configure the Datadog plugin to send metrics that can trigger alerts and notifications based on unusual patterns detected by Datadog’s machine learning features. This proactive monitoring helps teams swiftly react to potential outages or performance degradation before customers are impacted.
-
Integrating with Cloud Services: By utilizing the Datadog plugin to send metrics from cloud resources, IT teams can gain visibility into cloud application performance. Monitoring metrics like latency and error rates helps with ensuring service-level agreements (SLAs) are met and also assists in optimizing resource allocation across cloud environments.
Feedback
Thank you for being part of our community! If you have any general feedback or found any bugs on these pages, we welcome and encourage your input. Please submit your feedback in the InfluxDB community Slack.
Powerful Performance, Limitless Scale
Collect, organize, and act on massive volumes of high-velocity data. Any data is more valuable when you think of it as time series data. with InfluxDB, the #1 time series platform built to scale with Telegraf.
See Ways to Get Started
Related Integrations
Related Integrations
HTTP and InfluxDB Integration
The HTTP plugin collects metrics from one or more HTTP(S) endpoints. It supports various authentication methods and configuration options for data formats.
View IntegrationKafka and InfluxDB Integration
This plugin reads messages from Kafka and allows the creation of metrics based on those messages. It supports various configurations including different Kafka settings and message processing options.
View IntegrationKinesis and InfluxDB Integration
The Kinesis plugin allows for reading metrics from AWS Kinesis streams. It supports multiple input data formats and offers checkpointing features with DynamoDB for reliable message processing.
View Integration