Telegraf writing
Telegraf is a viral, open-source, metrics collection software. Telegraf can collect the operation information of various components without having to write any scripts to collect regularly, reducing the difficulty of data acquisition.
Telegraf's data can be written to TDengine by simply adding the output configuration of Telegraf to the URL corresponding to taosAdapter and modifying several configuration items. The presence of Telegraf data in TDengine can take advantage of TDengine's efficient storage query performance and clustering capabilities for time-series data.
Prerequisites
To write Telegraf data to TDengine requires the following preparations.
- The TDengine cluster is deployed and functioning properly
- taosAdapter is installed and running properly. Please refer to the taosAdapter manual for details.
- Telegraf has been installed. Please refer to the official documentation for Telegraf installation.
- Telegraf collects the running status measurements of current system. You can enable input plugins to insert other formats data to Telegraf then forward to TDengine.
Configuration steps
In the Telegraf configuration file (default location /etc/telegraf/telegraf.conf
) add an outputs.http
section.
[[outputs.http]]
url = "http://<taosAdapter's host>:<REST service port>/influxdb/v1/write?db=<database name>"
...
username = "<TDengine's username>"
password = "<TDengine's password>"
...
Where <taosAdapter's host> please fill in the server's domain name or IP address running the taosAdapter service. <REST service port> please fill in the port of the REST service (default is 6041). <TDengine's username> and <TDengine's password> please fill in the actual configuration of the currently running TDengine. And <database name> please fill in the database name where you want to store Telegraf data in TDengine.
An example is as follows.
[[outputs.http]]
url = "http://127.0.0.1:6041/influxdb/v1/write?db=telegraf"
method = "POST"
timeout = "5s"
username = "root"
password = "taosdata"
data_format = "influx"
Verification method
Restart Telegraf service:
sudo systemctl restart telegraf
Use TDengine CLI to verify Telegraf correctly writing data to TDengine and read out:
taos> show databases;
name |
=================================
information_schema |
performance_schema |
telegraf |
Query OK, 3 rows in database (0.010568s)
taos> use telegraf;
Database changed.
taos> show stables;
name |
=================================
swap |
cpu |
system |
diskio |
kernel |
mem |
processes |
disk |
Query OK, 8 row(s) in set (0.000521s)
taos> select * from telegraf.system limit 10;
ts | load1 | load5 | load15 | n_cpus | n_users | uptime | uptime_format | host
|
=============================================================================================================================================================================================================================================
2022-04-20 08:47:50.000000000 | 0.000000000 | 0.050000000 | 0.070000000 | 4 | 1 | 5533 | 1:32 | shuduo-1804
|
2022-04-20 08:48:00.000000000 | 0.000000000 | 0.050000000 | 0.070000000 | 4 | 1 | 5543 | 1:32 | shuduo-1804
|
2022-04-20 08:48:10.000000000 | 0.000000000 | 0.040000000 | 0.070000000 | 4 | 1 | 5553 | 1:32 | shuduo-1804
|
Query OK, 3 row(s) in set (0.013269s)
- TDengine take influxdb format data and create unique ID for table names by the rule.
The user can configure
smlChildTableName
parameter to generate specified table names if he/she needs. And he/she also need to insert data with specified data format. For example, AddsmlChildTableName=tname
in the taos.cfg file. Insert datast,tname=cpu1,t1=4 c1=3 1626006833639000000
then the table name will be cpu1. If there are multiple lines has same tname but different tag_set, the first line's tag_set will be used to automatically creating table and ignore other lines. Please refer to TDengine Schemaless