4 个版本
0.1.6 | 2019年6月3日 |
---|---|
0.1.2 | 2019年1月20日 |
0.1.1 | 2019年1月4日 |
0.1.0 | 2018年12月17日 |
#1820 在 解析器实现
30KB
706 行
spell-rs
spell-rs 是 Rust 中的 Spell 实现。
Spell 是一个 流式 解析器,用于解析 事件 日志,并使用 LCS(最长公共子序列)。
由于使用了 use crate::
语法,最低支持的 Rust 版本是 1.31。
参考
Min Du 和 Feifei Li. Spell: Streaming Parsing of System Event Logs. 2016 IEEE 16th International Conference on Data Mining (ICDM) pp. 859-864, Barcelona, Spain, December, 2016. DOI: 10.1109/ICDM.2016.0103. https://ieeexplore.ieee.org/document/7837916
- 原始论文: https://www.cs.utah.edu/~lifeifei/papers/spell.pdf
- 演示幻灯片: https://www.cs.utah.edu/~mind/papers/spell_slides.pdf
详情
Spell 逐行读取日志并构建可以用于分析日志的格式化字符串列表。例如(见 演示幻灯片,第 19 页),给定两个日志条目
Temperature (41C) exceeds warning threshold
Temperature (42C, 43C) exceeds warning threshold
最长公共子序列是
Temperature * exceeds warning threshold
然后可以用来分析日志。
截至 cedf57a7a73b1052de937d13150c2b9d8a03237c,Rust 实现给出了与 Java 版本 相同的精确结果。
Python 包装器
使用 Docker 可以在所有平台上构建通用的 Python 包(wheel)
cd python
# Compile Rust code
pip install --editable .
# Test Python package
python ./test.py
# Build a wheel
python setup.py --verbose bdist_wheel
Docker
这只需要 Docker。
# Build a Docker image containing everything required
./docker/docker_build.sh
# Run the commands to build wheel inside a docker container
./docker/docker_run.sh
其他实现
许可证
本项目许可协议为以下之一:
- Apache License 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖项
~0.4–1MB
~24K SLoC