使用 StatsD 向 TDengine 写入

StatsD 是汇总和总结应用指标的一个简单的守护进程,近些年来发展迅速,已经变成了一个用于收集应用性能指标的统一的协议。

只需要在 StatsD 的配置文件中填写运行 taosAdapter 的服务器域名(或 IP 地址)和相应端口即可将 StatsD 的数据写入到 TDengine 中,可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。

前置条件

要将 StatsD 数据写入 TDengine 需要以下几方面的准备工作。

  • TDengine 集群已经部署并正常运行
  • taosAdapter 已经安装并正常运行。具体细节请参考 taosAdapter 的使用手册
  • StatsD 已经安装。安装 StatsD 请参考 官方文档

配置步骤

配置 taosAdapter

配置 taosAdapter 接收 StatsD 数据的方法:

  • 在 taosAdapter 配置文件(默认位置 /etc/taos/taosadapter.toml)中使能配置项

    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>}

示例配置文件:

js 复制代码
{
port: 8125
, backends: ["./backends/repeater"]
, repeater: [{ host: '127.0.0.1', port: 6044}]
}

增加如下内容后启动 StatsD(假设配置文件修改为 config.js)。

shell 复制代码
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.
相关推荐
星期天要睡觉12 分钟前
MySQL 综合练习
数据库·mysql
Y40900117 分钟前
数据库基础知识——聚合函数、分组查询
android·数据库
茶本无香19 分钟前
RequestContextFilter介绍
java·spring·filter·requestcontext
iナナ33 分钟前
初识JVM
java·jvm
m0_5704664142 分钟前
代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和
java·开发语言·算法
瓦哥架构实战1 小时前
从 Prompt 到 Context:LLM OS 时代的核心工程范式演进
大数据
JosieBook1 小时前
【数据库】MySQL 数据库创建存储过程及使用场景详解
数据库·mysql
weixin_lynhgworld1 小时前
盲盒抽卡机小程序系统开发:以技术创新驱动娱乐体验升级
大数据·盲盒·抽谷机
处女座_三月1 小时前
改 TDengine 数据库的时间写入限制
数据库·sql·mysql
酷ku的森2 小时前
Redis中的hash数据类型
数据库·redis·哈希算法