2 个版本
新版本 0.1.1 | 2024 年 8 月 15 日 |
---|---|
0.1.0 | 2024 年 8 月 15 日 |
#482 in 异步
每月 161 次下载
34KB
648 行
Kapacitor 多指标批量 UDF
概述
此项目实现了一个用于 Kapacitor 的用户自定义函数 (UDF),提供了多个金融指标的批量处理功能。目前,它支持指数移动平均 (EMA) 和简单移动平均 (SMA) 计算,并且可以轻松扩展以支持其他指标。
功能
- 时间序列数据的批量处理
- 支持多个指标(EMA 和 SMA)
- 与 Kapacitor 使用 Unix 套接字通信
- 使用 async-std 进行异步处理
- 每个指标的可配置选项
要求
- Rust 1.70 或更高版本
- Kapacitor 1.6 或更高版本
安装
-
克隆仓库
git clone https://github.com/suitable-name/kapacitor-udf-indicator-batch-rs cd kapacitor-multi-indicator-udf
-
构建/安装项目
cargo build --release
或
sudo cargo install --path . --root /usr/local
用法
-
启动 UDF 服务器
./target/release/kapacitor-multi-indicator-udf
默认情况下,服务器监听
/tmp/indicator-batch.sock
。您可以使用-s
或--socket
选项指定不同的套接字路径./target/release/kapacitor-multi-indicator-udf -s /path/to/custom/socket.sock
-
配置 Kapacitor 以使用此 UDF。将以下内容添加到您的 Kapacitor 配置文件中
[udfs] [udfs.functions] [udfs.functions.indicator] socket = "/tmp/kapacitor-multi-indicator-udf" timeout = "10s"
-
在您的 TICKscripts 中使用 UDF
batch |query(''' SELECT "EUR" FROM "stocks"."autogen"."ticker_data" ''') .period(1d) // Process one day's worth of data .every(1d) // Run the batch every day .offset(0s) // Start from the earliest data available .groupBy('ticker') @indicators() .type('EMA') .field('last_price') .as('last_price_ema') .period(14) .ticker_field('ticker') |influxDBOut() .database('stocks') .retentionPolicy('autogen') .measurement('Stocks_EMA_batch') .tag('kapacitor', 'true')
配置选项
type
:要计算的指标类型(EMA
或SMA
)period
:指标计算周期field
:用于计算的数据中的字段名称as
:用于输出中计算指标值的字段名称ticker_field
:包含数据点的交易或符号的字段名称
开发
以调试日志运行
RUST_LOG=debug ./target/release/kapacitor-multi-indicator-udf
贡献
欢迎贡献!请随意提交拉取请求。
许可证
本项目采用MIT许可证 - 详细信息请参阅LICENSE文件。
依赖项
~14–27MB
~389K SLoC