4 个版本
新 0.1.3 | 2024年8月13日 |
---|---|
0.1.2 | 2024年8月13日 |
0.1.1 | 2024年2月25日 |
0.1.0 | 2024年2月25日 |
13 在 #时间序列数据库
124 每月下载量
70KB
1.5K SLoC
RRDCached-Client
RRDCached-Client 是一个 Rust™ RRDCached 客户端库。
它允许您连接到 RRDCached API。RRDCached 是一个服务器,用于处理多个 RRDTool 数据库。
RRDTool 数据库是使用循环队列数据结构的时间序列数据库。RRDTool 数据库文件在文件系统上始终是相同的尺寸和位置。它不会增长。旧数据会随着时间的推移而被丢弃,但可以将数据下采样以保持更长的历史记录。例如,可以有一个一天的 1 秒分辨率,一个月的 1 分钟分辨率,一年的 1 小时分辨率,以及 10 年的 1 天分辨率。查询数据库几乎是瞬时的。
虽然与更现代的时间序列数据库(如 Prometheus 或 InfluxDB)相比,这项技术已经过时,但它仍然受到欢迎,因为它简单且适用于某些工作负载。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
rrdcached-client = "0.1"
示例
let mut client = RRDCachedClient::connect_tcp("localhost:42217")
.await?;
client.create("hello", &[
RRA::Gauge {
xff: 0.5,
steps: 1,
rows: 10,
}
]).await?;
client.update_one("hello", None, 4.2).await?;
运行 RRDCached 服务器
该仓库包含一个 Dockerfile,可以快速运行用于测试和开发目的的 RRDCached 服务器。它监听 localhost:42217 (tcp)。
docker build . -f rrdcached.Dockerfile -t rrdcached
docker run -it --rm -p 127.0.0.1:42217:42217 --name rrdcached rrdcached
要测试 Unix 套接字功能,您可以使用 socat
创建一个 Unix 套接字代理到 tcp 服务器。
socat UNIX-LISTEN:./rrdcached.sock,reuseaddr,fork TCP:localhost:42217
为什么?
当外面下着雪(2024年2月24日)时,玩 RRDCached API 看起来很有趣。
许可证
本项目采用 Apache 许可证,版本 2.0 - 有关详细信息,请参阅LICENSE 文件。
请注意,RRDTool 和 RRDCached 采用 GPL v2.0 许可。但我们通过 Unix 或 TCP 套接字连接,因此在本项目中采用 Apache 许可证是有效的。如果 RRDTool 或 RRDCached 采用 Affero GPL 许可,则本项目也必须采用 Affero GPL 许可。
我应该在生产中使用这个吗?
如许可证所述,此免费软件不提供任何保证。它已开发数小时,并且尚未用于生产。
单元和集成测试覆盖率相对较高,该库得益于 Rust 生态系统的强大功能,被设计为安全且健壮。但它是一个年轻的项目,并且可能存在错误。
您可能应该在生产中使用更现代的时间序列数据库。但您可能是一位 RRDTool 爱好者,并发现此库很有用。
依赖关系
~3–10MB
~93K SLoC