Live logs

Watch your production breathe.

The errorgap-agent tails your logs and streams them live. Three views — stream, list, aggregate — and the aggregate view strips timestamps and groups duplicates, so 412 identical lines read as one.

LIVE · ox-coffee · productionaggregate · 5m window
×412ERRStripe::CardError · card_declinedapp/services/checkout/charge.rb:81
×128ERRActiveRecord::RecordNotFoundproducts_controller.rb:34
×64WARNN+1 query · Spree::Variant_card.html.erb:8
×41WARNSlow request · >2000msPOST /checkout/payment
×9INFOSidekiq retry · OrderMailerJobqueue=mailers
×1INFODeploy detected · v2.14.1GitHub Actions
timestamps stripped · duplicates groupedstream · list · aggregate
How it works

One agent, three views.

Install the agent next to your app. It ships logs as they happen — you pick the lens.

01 · Stream

The raw tail, live

Every line as it lands, sub-second. Pause, scrub, resume — like tail -f with a memory.

02 · List

Filter and page

The same lines as a queryable list — filter by level, source, or time range when you’re hunting something specific.

03 · Aggregate

Duplicates become counts

Leading timestamps are stripped, identical lines group, and a count gutter shows what’s actually loud. The 2am view.

Aggregate view

412 lines. One row.

Production log volume is mostly repetition. The aggregate view strips the leading timestamp from each line and groups what remains — so the gutter count tells you the shape of the problem at a glance.

  • Leading-timestamp stripping, automatic
  • Duplicate grouping with per-line counts
tail -f · errorgap-agentsub-second
14:32:01.412 ERR Stripe::CardError: Your card was declined.
14:32:01.890 ERR Stripe::CardError: Your card was declined.
14:32:02.118 WARN N+1 query detected: Spree::Variant (×24)
14:32:02.341 ERR Stripe::CardError: Your card was declined.
14:32:03.007 INFO GET /products 200 · 184ms
14:32:03.448 ERR Stripe::CardError: Your card was declined.
The agent

One binary. Four ways to ship it.

errorgap-agent is a single static binary. Run it as a tarball, install it from your package manager, or drop the container next to your app.

  • Binary tarball, deb, rpm, and container image
  • Points at your log files or journald, ships everything above your level
Read the agent docs →
distributioninstall
debapt install errorgap-agent
rpmdnf install errorgap-agent
containerghcr.io/errorgap/agent
binary tarballcurl | tar, single static binary
Install

Install the agent.

Pick your distribution. The agent starts shipping logs the moment it has a key.

# Debian / Ubuntu $ curl -fsSL https://pkg.errorgap.com/gpg | sudo tee /etc/apt/keyrings/errorgap.asc $ sudo apt install errorgap-agent # point it at your project $ errorgap-agent configure --key=prj_019df…

Close the errorgap.

Start free, no credit card. Turn scattered production signals into one investigable incident in under five minutes. Cancel anytime, keep your data.