18 个版本
0.6.0 | 2024年5月29日 |
---|---|
0.5.4 | 2023年11月5日 |
0.5.3 | 2023年8月8日 |
0.5.2 | 2023年6月14日 |
0.1.1 | 2020年8月2日 |
#1 在 #sparklines 中
每月下载量 265
45KB
700 行
krapslog
使用 sparklines 可视化日志文件
在生产服务中解决问题时,我经常需要获取日志文件的大致形状。是否有峰值?在事件发生期间负载是否高于之前?还有其他什么值得注意的吗?如果没有工具的帮助,大量的日志文件不过是数据的一团糟。这个工具旨在快速揭示日志的关键特征——然后让路。
安装
Homebrew
brew install acj/taps/krapslog
从源代码
cargo install krapslog
用法
$ krapslog --help
Visualize log files using sparklines
Usage: krapslog [OPTIONS] [FILE]
Arguments:
[FILE] Log file to analyze
Options:
-F, --format <FORMAT> Timestamp format to match [default: %d/%b/%Y:%H:%M:%S%.f]
-m, --markers <MARKERS> Number of time markers to display [default: 0]
-h, --height <HEIGHT> Height (in lines) of the displayed sparkline [default: 1]
-c, --concurrency <CONCURRENCY> Number of threads to use when processing large files (defaults to number of CPU cores) [default: 8]
-h, --help Print help
-V, --version Print version
示例
获取基本形状
$ krapslog /var/log/haproxy.log
▂▂▂▂▂▁▂▁▁▁▁▂▁▁▁▁▂▂▂▁▁▁▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▃▂▂▂▃▂▂▂▂▃▃▃▃▃▄▅▅▅▄▅▃▄▃▄▄▅▅▆▇▆▆▆▆▆▆▆▆▇▇▇▇██
添加时间点
$ krapslog --markers 10 /var/log/haproxy.log
Sat Nov 23 14:15:56
Sat Nov 23 13:22:29 |
Sat Nov 23 12:29:01 | |
Sat Nov 23 11:35:33 | | |
Sat Nov 23 10:48:02 | | | |
| | | | |
▂▂▂▂▂▁▂▁▁▁▁▂▁▁▁▁▂▂▂▁▁▁▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▃▂▂▂▃▂▂▂▂▃▃▃▃▃▄▅▅▅▄▅▃▄▃▄▄▅▅▆▇▆▆▆▆▆▆▆▆▇▇▇▇██
| | | | |
| | | | Sat Nov 23 09:54:34
| | | Sat Nov 23 09:01:07
| | Sat Nov 23 08:13:36
| Sat Nov 23 07:20:08
Sat Nov 23 06:26:40
提高显示分辨率
$ krapslog --height 5 /var/log/haproxy.log
▁ ▁ ▁▃▃██
▁ ▁▅█▃▅▂▂▄▃▃▅▅▇▆█▇██████
▁▆▅▇▅▃▆▇ ▁ ▁▁▄█▇██████████████████████
▁▁ ▁▂ ▅▂ ▂▃▂▁ ▃▁ ▂▂▅▅▂▄▅████████▇▆█▅███████████████████████████
▇▇▇▆▇▇▅▅▆▅▅▄▃▄▄▇▄▆▃▅▄▅▅▆▅▅▃▁▁▃▃▄▄▄▃▄▅▅▆█▅▅▇▅██▇██████▇████▇█████████████████████████████████████████████████
与其他工具集成
$ zcat /var/log/haproxy.log.1.gz | grep -v "unimportant.html" | krapslog
▂▁▂▁▂▁▂▂▂▁▃▁▁▁▁▁▁▁▁▁▁▁▂▂▁▁▂▃▂▂▃▁▂▁▂▂▂▂▁▂▁▂▄▂▂▂▂▂▂▂▃▂▂▂▂▄▃▃▄▃▃▃▃▄▄▄▄▄▃▄▄▅▄▃▄▄▅▅▅▅
自定义日期格式
默认情况下,krapslog 假设日志时间戳遵循 通用日志格式 (CLF),如下所示:"02/Jan/2006:15:04:05.000"(时区偏移被忽略)。但是,您可以使用 format
参数来查找其他格式的时间戳。参数值必须使用由 strftime 识别的格式。
例如,如果您的日志包含类似 "Jan 1, 2020 15:04:05" 的日期,您可以使用以下方式运行 krapslog
krapslog --format "%b %d, %Y %H:%M:%S" ...
当前支持的指定符
指定符 | 含义 |
---|---|
%Y | 完整的儒略历年份,左填充到 4 位。 |
%C | 儒略历年份除以 100,左填充到 2 位。 |
%y | 儒略历年份对 100 取模,左填充到 2 位。 |
%m | 月份编号(01--12),左填充到 2 位。 |
%b | 缩写月份名称。总是 3 个字母。 |
%B | 完整的月份名称。解析时也接受相应的缩写。 |
%h | 与 %b 相同。 |
%d | 日期编号(01--31),左填充到 2 位。 |
%H | 小时编号(00--23),左填充到 2 位。 |
%M | 分钟编号(00--59),左填充到 2 位。 |
%S | 秒编号(00--60),左填充到 2 位。 |
%.f | 类似于 .%f 但左对齐。这些都消耗开头的点。 |
%s | UNIX 时间戳。自 1970-01-01 00:00 UTC 以来经过的秒数。 |
贡献
请友好相处。我们都在尽力而为。
如果你发现了一个错误,请打开一个issue。(或者更好,提交一个修复它的pull request!)
如果你想看到新功能或想自己添加一个,请打开一个issue,以便我们可以讨论。
依赖
~7-18MB
~232K SLoC