#data #time-series #plotter #recorder #terminal-based #points #unit

bin+lib trk

简单的基于终端的时间序列数据记录器和绘图器

1 个不稳定版本

使用旧的 Rust 2015

0.2.0 2019年1月22日

#327可视化

MIT 许可证

1MB
832

trk

真的,真的非常简单的基于终端的时间序列数据记录器和绘图器。

我有很多脚本能将数据注入现成的应用中,生成报告,比较各种系统中的数据,等等。这些都是当你处理一堆旧基础设施时(以及清理它们时)会做的所有有趣的事情。

这帮助我跟踪随着时间的推移问题数量,并能快速简单地识别何时发生大的变化。

用法

# Add a new series with specific units
$ trk add-series -n inv.req.time -u ms
$ trk add-series -n devices.alive

# Or interactively
$ trk add-series
Series Name: services.provisioned
Input Unit (eg ms, bps): svc
Created services.valid

# Then add some data points
$ trk add -s inv.req.time 9
$ trk add -s inv.req.time 8
$ trk add -s inv.req.time 9

# Or via the bulk command (for integrating with scripts)
$ cat <<EOL > points.txt
inv.req.time=3
devices.alive=42
services.provisioned=100
EOL

$ cat points.txt | trk bulk

# You can always use -c to auto-create the series if you don't want to pre-populate
$ trk add -c -s new.series 20

# trk stores files in $HOME/.trk by default, customise this if desired
$ trk -d ~/my-metrics bulk -c < points.txt

# Or use different data files to keep things separate
$ trk -f app1 add -c -s metric.a 33
$ trk -f app2 add -c -s metric.a 983

# And then plot the output (see screenshots below, the braille text doesn't space correctly here)
$ trk plot -s inv.req.time

# If you want the detail, add a table to
$ trk plot -s inv.req.time -t

# Or if you're not sure what you've been plotting, don't specify a series and use the interactive list
$ trk plot

贡献

发送 PR。

我刚开始使用 Rust,所以预计还有很多可以改进的地方。我(低优先级)待办事项列表上的事情

  • 找一个好的 SQL 生成器(如 Perl 的 SQL::Abstract 或 ...)
  • 可能支持 JSON 以进行批量导入?
  • 清理模块结构

许可证

查看许可证文件。

src/textplots 下的代码是 MIT 许可证,但 (C) Alexey Suslov

依赖关系

~28MB
~517K SLoC