StatsD 是汇总和总结应用指标的一个简单的守护进程,近些年来发展迅速,已经变成了一个用于收集应用性能指标的统一的协议。
只需要在 StatsD 的配置文件中填写运行 taosAdapter 的服务器域名(或 IP 地址)和相应端口即可将 StatsD 的数据写入到 TDengine 中,可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。
前置条件
要将 StatsD 数据写入 TDengine 需要以下几方面的准备工作。
- TDengine 集群已经部署并正常运行
- taosAdapter 已经安装并正常运行。具体细节请参考 taosAdapter 的使用手册
- StatsD 已经安装。安装 StatsD 请参考 官方文档
配置步骤
配置 taosAdapter
配置 taosAdapter 接收 StatsD 数据的方法:
在 taosAdapter 配置文件(默认位置 /etc/taos/taosadapter.toml)中使能配置项
... [statsd] enable = true port = 6044 db = "statsd" user = "root" password = "taosdata" worker = 10 gatherInterval = "5s" protocol = "udp" maxTCPConnections = 250 tcpKeepAlive = false allowPendingMessages = 50000 deleteCounters = true deleteGauges = true deleteSets = true deleteTimings = true ...
其中 taosAdapter 默认写入的数据库名称为
statsd
,也可以修改 taosAdapter 配置文件 db 项来指定不同的名称。user 和 password 填写实际 TDengine 配置的值。修改过配置文件 taosAdapter 需重新启动。使用 taosAdapter 命令行参数或设置环境变量启动的方式,使能 taosAdapter 接收 StatsD 数据功能,具体细节请参考 taosAdapter 的参考手册
配置 StatsD
使用 StatsD 需要下载其源代码。其配置文件请参考其源代码下载到本地的根目录下的示例文件 exampleConfig.js
进行修改。其中 <taosAdapter’s host> 填写运行 taosAdapter 的服务器域名或 IP 地址,<port for StatsD> 请填写 taosAdapter 接收 StatsD 数据的端口(默认为 6044)。
backends 部分添加 "./backends/repeater"
repeater 部分添加 { host:'<taosAdapter's host>', port: <port for StatsD>}
示例配置文件:
{
port: 8125
, backends: ["./backends/repeater"]
, repeater: [{ host: '127.0.0.1', port: 6044}]
}
增加如下内容后启动 StatsD(假设配置文件修改为 config.js)。
npm install
node stats.js config.js &
验证方法
运行 StatsD:
$ node stats.js config.js &
[1] 8546
$ 20 Apr 09:54:41 - [8546] reading config file: config.js
20 Apr 09:54:41 - server is up INFO
使用 nc 写入测试数据:
$ echo "foo:1|c" | nc -u -w0 127.0.0.1 8125
使用 TDengine CLI 验证从 StatsD 向 TDengine 写入数据并能够正确读出:
taos> show databases;
name |
=================================
information_schema |
performance_schema |
statsd |
Query OK, 3 row(s) in set (0.003142s)
taos> use statsd;
Database changed.
taos> show stables;
name |
=================================
foo |
Query OK, 1 row(s) in set (0.002161s)
taos> select * from foo;
ts | value | metric_type |
=======================================================================================
2022-04-20 09:54:51.219614235 | 1 | counter |
Query OK, 1 row(s) in set (0.004179s)
taos>
提示
- TDengine will automatically create unique IDs for sub-table names by the rule.