Tools I stole from work — New Relic

Second in the Tools I Stole From Work series: putting work-grade observability under a home network, and trimming the free tier when it hit 100GB.

· 5 min read · sre-at-home ·observability ·homelab

Second in the series. Last time it was Playwright. This time it’s New Relic, which has been sitting underneath my homelab for the better part of a year and is almost invisible — which is what I want from an observability stack.

What I stole

New Relic’s free tier gives you 100 GB of ingest a month and a single full-user seat. At work I’d been using it for backend services where the ingest volume was managed by a careful sampling plan; at home I assumed the volume problem would solve itself, because — how much data could a homelab possibly emit?

The answer, of course, is a great deal of it, if you let every process on every host phone home every fifteen seconds.

The shape

The setup is unfussy:

Dashboards are deliberately boring. One per host, one per service, one for “the house” that draws from a handful of Home Assistant–backed metrics through a TimescaleDB middle layer. If a panel needs me to think about what it means, I rework it.

The week the free tier bit

A few weeks in, the ingest dial started running hot. Closer to the 100 GB limit than I’d ever expected. The culprit wasn’t the services I’d been deliberate about — it was the infrastructure agent, doing what infrastructure agents do by default: emitting process-level metrics for every process on every host, every fifteen seconds.

At work you’d notice this because cost dashboards exist and someone owns them. At home I noticed it because the New Relic dashboard told me, in the same UI it tells me everything else, that I was about to fall off the free tier.

The fix was two changes, applied fleet-wide:

# /etc/newrelic-infra.yml
enable_process_metrics: false
metrics_process_sample_rate_seconds: 30

Process-level metrics off entirely; the remaining sample rate halved. Ingest dropped to a comfortable steady-state inside the 100 GB cap with no perceptible loss of useful signal. The process-level data is the kind of thing you want when you’re debugging a specific incident, and you can turn it back on per-host for the duration. Carrying it always-on, for every process, for every host, was a vanity setting.

What I stole, more precisely

The free tier didn’t teach me to do this. Cost-aware observability taught me to do this, at work, on a much bigger pipeline. The instincts that ported across:

None of that is exotic. All of it would have been written down on the wall of any platform team I’ve worked on. At home, with no platform team, I am the wall.

What didn’t port across

Two things I’d insist on at work, I haven’t bothered with at home:

The general point

The free tier of a serious observability tool is genuinely good. The thing that lets you stay inside it isn’t the price — it’s the habit, learned at work, of treating telemetry as a budget rather than a default. Tools are cheap. Judgement about what to measure is what makes them work.

Next: a tool I started using at work in the last few months and brought straight home. Claude Code.

← All writing