angle-grinder  by rcoh

CLI tool for log analysis, parsing, and aggregation

created 7 years ago
3,631 stars

Top 13.6% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Angle-grinder is a command-line tool for parsing, aggregating, and analyzing log data in real-time. It's designed for users who need to perform sophisticated log analysis without relying on external logging platforms, offering high performance for large datasets and live terminal updates.

How It Works

Angle-grinder processes logs through a pipeline of filters and operators, defined by a functional programming language. It supports various parsing methods (JSON, logfmt, regex, custom patterns) and offers a rich set of operators for data manipulation, aggregation (count, sum, average, percentiles), and transformation. Its live-updating terminal UI provides immediate feedback on data as it's processed.

Quick Start & Requirements

  • Installation: Binaries are available for Linux and macOS. For Linux (MUSL compatible):
    curl -L https://github.com/rcoh/angle-grinder/releases/download/v0.18.0/agrind-x86_64-unknown-linux-musl.tar.gz | tar Ozxf - | sudo tee /usr/local/bin/agrind > /dev/null && sudo chmod +x /usr/local/bin/agrind
    
    Alternatively, compile from source using cargo install angle-grinder (requires Rust >= 1.26).
  • Prerequisites: Rust toolchain for compilation.
  • Documentation: Query Syntax Overview

Highlighted Details

  • Processes over 1 million rows per second, with simple pipelines reaching 5 million.
  • Live-updating terminal UI for real-time analysis.
  • Supports custom aliases for common log formats and pipelines.
  • Extensible with new operators and parsers.

Maintenance & Community

The project is actively maintained by rcoh. Contributions are welcomed, with specific areas for improvement highlighted in the README, such as enhancing error reporting.

Licensing & Compatibility

The project is licensed under the MIT License, allowing for commercial use and integration with closed-source applications.

Limitations & Caveats

The alias feature is currently considered experimental. The count_distinct operator is not memory-fixed and may consume significant resources with large numbers of distinct values.

Health Check
Last commit

3 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
50 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.