#事件日志 #日志解析器 #LCS #解析器 #流式解析器 #日志 #事件

spell

Spell 是一个基于 LCS (最长公共子序列) 的流式事件日志解析器

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解析器实现

MIT/Apache

30KB
706

spell-rs

Crates.io Build Status Documentation License

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

详情

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

其他实现

许可证

本项目许可协议为以下之一:

任选其一。

依赖项

~0.4–1MB
~24K SLoC