Modbus and Google BigQuery 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 Google BigQuery plugin allows you to send metrics from Telegraf to Google Cloud BigQuery, a powerful data analysis tool.
Integration details
Modbus
The Modbus plugin collects discrete inputs, coils, input registers, and holding registers via Modbus TCP or Modbus RTU/ASCII.
Google BigQuery
This plugin writes to Google Cloud BigQuery and requires authentication with Google Cloud using either a service account or user credentials. It accesses APIs that are chargeable and might incur costs. The plugin requires the dataset to specify under which BigQuery dataset the corresponding metrics tables reside. Each metric should have a corresponding table in BigQuery, with specific schema requirements for timestamps, tags, and fields.
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]},
]
Google BigQuery
# Configuration for Google Cloud BigQuery to send entries
[[outputs.bigquery]]
## Credentials File
credentials_file = "/path/to/service/account/key.json"
## Google Cloud Platform Project
# project = ""
## The namespace for the metric descriptor
dataset = "telegraf"
## Timeout for BigQuery operations.
# timeout = "5s"
## Character to replace hyphens on Metric name
# replace_hyphen_to = "_"
## Write all metrics in a single compact table
# compact_table = ""
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.
Google BigQuery
- Centralized Metric Storage: Use the Google BigQuery Output Plugin to store all your metrics in one centralized location, making it easier to analyze patterns and trends over time.
- Cost Monitoring: If you’re running multiple services across Google Cloud, this plugin can help you monitor and analyze costs associated with different metrics by sending them to BigQuery for deeper insights and reporting.
- Real-Time Analytics: Combine this plugin with other Google Cloud services to enable real-time analytics on metric data, helping you make informed decisions quickly.
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