🔍 CILens - CI/CD Pipeline Analytics for GitLab

Hey everyone! :waving_hand:

I built CILens, a CLI tool for analyzing GitLab CI/CD pipelines and finding optimization opportunities.

GitHub - dsalaza4/cilens: A lightweight Rust tool that extracts structured insights from GitLab CI pipelines.

I’ve been using it at my company and it’s given me really valuable insights into our pipelines—identifying slow jobs, flaky tests, and bottlenecks. It’s particularly useful for DevOps, platform, and infra engineers who need to optimize build times and improve CI reliability.

What it does:

  • :electric_plug: Fetches pipeline & job data from GitLab’s GraphQL API
  • :puzzle_piece: Groups pipelines by job signature (smart clustering)
  • :bar_chart: Shows P50/P95/P99 duration percentiles instead of misleading averages
  • :warning: Detects flaky jobs (intermittent failures that slow down your team)
  • :stopwatch: Calculates time-to-feedback per job (actual developer wait times)
  • :bullseye: Ranks jobs by P95 time-to-feedback to identify highest-impact optimization targets
  • :page_facing_up: Outputs human-readable summaries or JSON for programmatic use

Key features:

  • :heart: Installable via Nix Flakes
  • :high_voltage: Written un Rust for maximum performance
  • :floppy_disk: Intelligent caching (~90% cache hit rate on reruns)
  • :rocket: Fast concurrent fetching (handles 500+ pipelines efficiently)
  • :counterclockwise_arrows_button: Automatic retries for rate limits and network errors
  • :package: Cross-platform (Linux, macOS, Windows)

Currently supports GitLab only, but the architecture is designed to support other CI/CD providers (GitHub Actions, Jenkins, CircleCI, etc.) in the future.

Would love feedback from the Nix community! :rocket:

2 Likes

I like it, it’d be really neat to have this kind of insight conveniently available for an organization. We’re stuck with github actions, sadly, but I’d love to give this a shot when I delve into CI optimization again :slight_smile:

1 Like

This looks pretty neat and I’m glad that it works with self-hosted GitLab as well!

1 Like