2 个版本
新 0.1.1 | 2024 年 8 月 15 日 |
---|---|
0.1.0 | 2024 年 8 月 15 日 |
796 在 异步 中
183 每月下载量
31KB
581 行
Kapacitor 多指标流 UDF
概述
本项目实现了一个用于 Kapacitor 的用户自定义函数 (UDF),为多个金融指标提供流处理能力。目前,它支持指数移动平均 (EMA) 和简单移动平均 (SMA) 计算,并且可以轻松扩展以支持其他指标。
特性
- 时间序列数据的流处理
- 支持多个指标(EMA 和 SMA)
- 使用 Unix socket 与 Kapacitor 通信
- 使用 async-std 进行异步处理
- 每个指标的可配置选项
要求
- Rust 1.70 或更高版本
- Kapacitor 1.6 或更高版本
安装
-
克隆仓库
git clone <https://github.com/suitable-name/kapacitor-udf-indicator-stream-rs> cd kapacitor-multi-indicator-stream-udf
-
构建/安装项目
cargo build --release
或
sudo cargo install --path . --root /usr/local
使用方法
-
启动 UDF 服务器
./target/release/kapacitor-multi-indicator-stream-udf
默认情况下,服务器监听
/tmp/indicator-stream.sock
。您可以使用-s
或--socket
选项指定不同的套接字路径./target/release/kapacitor-multi-indicator-stream-udf -s /path/to/custom/socket.sock
-
配置 Kapacitor 以使用此 UDF。将以下内容添加到您的 Kapacitor 配置文件中
[udfs] [udfs.functions] [udfs.functions.indicator_stream] socket = "/tmp/kapacitor-multi-indicator-stream-udf" timeout = "10s"
-
在您的 TICKscripts 中使用 UDF
stream |from() .measurement('ticker_data') @indicator_stream() .type('EMA') .field('last_price') .as('last_price_ema') .period(14) .ticker_field('ticker') |influxDBOut() .database('stocks') .retentionPolicy('autogen') .measurement('Stocks_EMA_stream') .tag('kapacitor', 'true')
配置选项
type
:要计算的指标类型(EMA
或SMA
)period
:指标计算的周期field
:用于计算的字段名as
:用于输出中计算出的指标值的字段名ticker_field
:包含数据点的股票代码或符号的字段名
开发
要启用调试日志运行
RUST_LOG=debug ./target/release/kapacitor-multi-indicator-stream-udf
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
本项目采用MIT许可协议 - 请参阅LICENSE文件获取详细信息。
依赖项
约14–26MB
约378K SLoC