Angle Grinder Versions Save

Slice and dice logs on the command line

v0.12.0

4 years ago

This release adds 2 major new features:

  • Array support: json will now create an array when parsing a JSON array. Arrays can be accessed with [n], eg. sum(x.y[4]). (@rcoh )
  • split operator: The forcing function for array support was the split operator, enabling converting csv & similar formats into arrays for quick and easy analysis. See README for examples (@DarrenTsung )

This release also switches to use the crate of logfmt, allowing publishing releases to cargo, once again.

Users of v0.9.0 and later can upgrade with agrind --self-update

v0.11.0

4 years ago

This release adds a number of features contributed from the community:

  • logfmt parser: * | logfmt | ... see README for examples (@MikaelSmith)
  • min(col) & max(col) aggregate operators (@slaunay)
  • --format '{col a}: {col b}' flag for custom formatting -- see README (@MikaelSmith)
  • Support for nested records -- nested JSON records can be parsed and accessed with . notation (eg. sum(response.latency_ms)). Previously, nested JSON resulted in a string which need to be reparsed with json from nested. (@rcoh)

Users of v0.9.0 and later can upgrade with agrind --self-update

v0.10.0

4 years ago

The release adds support for complex filters in the query:

  • AND
  • OR
  • NOR

The keywords must always be all CAPS. Currently, expressions must be fully parenthesized. There was a bit of effort for helpful errors, but if you get a confusing error, file an issue and I'll try to improve it! Users of 0.9.0 and above can upgrade with agrind --self-update.

v0.9.0

5 years ago

Big release, thanks to @tstack and @akdor1154

  • Add the limit operator (@tstack ) see README for more info
  • Add nodrop option to the parse operator (@akdor1154 )
  • 'abc' is now accepted anywhere we accepted "abc" before. This change is required to make angle-grinder easier to use on Windows. A preliminary windows build should be available fairly shortly. (@rcoh )
  • Error messages are now useful! For a few cases, you'll now get a great error message, complete with color, highlighting and location (@tstack)
  • Long values in aggregates no longer break the renderer, instead they should be elided with "..." (@rcoh )
  • agrind now supports self-updates via the --self-update flag. It will update to the most recent Github release and is useful for Linux users where upgrading was annoying.

v0.8.0

5 years ago
  • Wildcard/keword search: Thanks to @tstack for contributing big improvements to the filter part of the query. You can now do queries like host-* to match lines like host-44, host-abc, etc.
host-* | parse "host-*" as hostname | count by hostname 
  • total operator: As requested by @tallpsmith, angle grinder now has a total(column) operator which will compute a running total for aggregates. Examples in the docs.
* | sum(num_queries) by host, url | total(_sum)

v0.7.6

5 years ago

v0.7.5

5 years ago

The rendering pipeline is now multi threaded -- updates to the UI no longer block the main reader thread. This update also fixes a performance bug where output being written to a file was significantly slower than output being written to the terminal.

v0.7.3

6 years ago

Aggregate groups can now be any expression. The most useful is probably a boolean expression in queries like:

* | json | p50(response_time), p90(response_time) by url, status_code >= 400

where is now out of beta and supports the full range of comparators (==, <=, !=, >=, >, <)

This release marks one of the last that changes the language. Future releases will be focused on usuability

v0.7.2

6 years ago

v0.7.1

6 years ago