
Nginx as a Reverse Proxy: The Config, and What Breaks
The six lines that proxy, the four headers most examples omit, and the three failures a reverse proxy actually produces — 502, 504 and the 499 nobody receives.
Neeraj Jha
Topic
Monitoring tells you whether a known condition is true. Observability is whether you can answer a new question about your system without shipping new code. Having plenty of the first does not give you the second.
In practice that means recording metrics with enough dimensions to slice by, alerting on symptoms users feel rather than on causes, and being able to correlate a change in a graph with a change in the system. A dashboard nobody looks at during an incident is not observability.
Existing pages in an order where each step answers a question the previous one raised, with an exercise at the end.
Named errors and symptoms, each with its causes, a command that confirms each one, and the fix.
OOMKilled is the signature, and the question is whether the limit is too low, the application is leaking, a spike hit, or the node was overcommitted.Pairs of things that get mistaken for one another, and the problem the mix-up causes.
free is memory nothing is using at all; available is the kernel's estimate of how much a new program could get without swapping, which counts the page cache it can give back. On a Linux server free can be small even when nothing is wrong, and available is the number to watch — and even available is not pressure. Pressure is the kernel having to work for memory: reclaiming, swapping in and out, tasks stalling.A failure followed step by step: what each part of the system does, and what you can change.
Run in your browser; nothing you paste is sent anywhere.
Ordered by how much they are read.

The six lines that proxy, the four headers most examples omit, and the three failures a reverse proxy actually produces — 502, 504 and the 499 nobody receives.
Neeraj Jha

Set up a production-grade monitoring stack with Prometheus and Grafana — metrics collection, PromQL queries, alerting, and dashboards.
Neeraj Jha
Updated

A practical reference of essential Linux commands for DevOps — file operations, text processing, networking, process management, and more.
Neeraj Jha
Updated

What to actually do, in order, when a page arrives at 2am for a service you did not write — establishing whether it is real, what changed, and when to escalate.
Neeraj Jha

Autonomy is not one decision. The four levels, the three properties that make an action safe to automate, and why the guardrail cannot live in the prompt.
Neeraj Jha

The question is not how to eliminate flakiness. It is what to do with each flaky test — and there are exactly three answers, one of which people resist and should not.
Neeraj Jha

Security scanners produce findings, and findings are not work until somebody can act on them: how a DevSecOps team turns 312 of them into four. The triage, the gate decision, and why false positives destroy the whole programme.
Neeraj Jha

What actually changes moving from DevOps to platform engineering: your work stops being mandatory and starts being optional, and every design decision is now a negotiation with somebody's convenience.
Neeraj Jha

MLOps and AIOps sound alike and are different jobs. What transfers from DevOps, the one assumption that breaks, and the failure modes worth learning before you need them — with examples.
Neeraj Jha

Why a Kubernetes cluster is full at 10% utilisation: the scheduler commits against requests, not usage, and that gap is where most overspend lives. Your dashboards and the scheduler are both right.
Neeraj Jha
Real questions from the community, with an accepted answer.