StatsD
大约 2 分钟
StatsD
1. 引言
StatsD 是一款基于UDP/TCP,用于聚合和传输性能指标(metric)的工具。狭义来讲,它是一个监听UDP或者TCP的守护进程,根据简单的协议收集StatsD客户端发送来的数据,聚合之后定时推送给后端。只需要在 StatsD 的配置文件中填写运行 IoTDB_Adapter 的服务器域名(或 IP 地址)和相应端口即可将 StatsD 的数据无缝写入到 IoTDB 中,这种集成方式能够直接调用 IoTDB 对时序数据的核心优势——包括高吞吐写入、高效压缩存储、快速时间范围查询以及分布式集群对海量数据的扩展处理能力,从而为监控指标提供长期存储、复杂分析和规模化管理的技术支撑。
2. 前置条件
将 StatsD 采集的数据存储到 IoTDB 需要做如下的准备:
IoTDB>=V2.0.5.1,已经部署并且能够正常运行StatsD已经下载,并且已成功启动IoTDB_Adapter能够正常运行
3. 安装与配置步骤
3.1 IoTDB_Adapter 配置
联系天谋工作人员获取
IoTDB_Adapter安装包解压压缩包
# 以1.0版本为例 unzip IoTDB_Adapter-1.0.zip修改配置文件 conf/application.properties ,设置监听接口、
IoTDB的节点地址、用户名、密码和路径前缀。# 启动 Adapter 监听的端口 port=2003 # IoTDB 的实例地址,多个 nodeUrls 用 ; 分割 iotdb.nodeUrls=127.0.0.1:6667 # 写入IoTDB的数据的路径前缀,如 root.testdb (sqlDialect不为table的时候生效) iotdb.prefix=root.statsD # IoTDB 用户名 iotdb.user=root # IoTDB 密码 iotdb.password=root # IoTDB SqlDialect(可选tree/table,默认tree) iotdb.sqlDialect=table # IoTDB DataBase (sqlDialect为table的时候生效) iotdb.database=statsd # IoTDB Table (sqlDialect为table的时候生效) iotdb.table=test # payload_formatter:支持 statsd 和 opentsdb(默认) 两种 payload.formatter=statsd # 源数据精度(默认秒s|毫秒ms|微妙us|纳秒ns) time.precision.source=s # 目标 IoTDB 数据精度(默认秒) time.precision.iotdb=ms注意:表模型下,参数 iotdb.database 中设置的数据库需要提前创建
重新启动
IoTDB_Adapter服务。
/sbin/start.sh3.2 StatsD 配置
下载安装
StatsD- 源码地址:GitHub-StatsD
参考
exampleConfig.js新建配置文件config.js修改配置文件
config.js内容- 设置
Adapter接口以及发送协议。
# StatsD 服务器接口 port: 8125, # 发送协议 repeaterProtocol: "tcp", # 发送端口 graphitePort: 2003, # 发送的 IP graphiteHost: "127.0.0.1", backends: [ "./backends/graphite" ]- 设置
启动
StatsD服务,指令格式如下:
node stats.js config.js3.3 验证测试
通过 IoTDB CLI查询数据,验证数据是否已成功写入。
IoTDB:statsd> select * from test limit 1
+-----------------------------+-------------------------------------+-------------+
| time| metric| value|
+-----------------------------+-------------------------------------+-------------+
|2025-07-23T11:13:56.736+08:00|stats.statsd.graphiteStats.last_flush|1.753240453E9|
+-----------------------------+-------------------------------------+-------------+