What should you monitor for a production web application?
Once an app is live, you stop watching code and start watching the running system across four layers: is it up, is the box healthy, are requests fast, and is the business logic actually working.
The golden rule of monitoring is to watch from the outside in, the way a real user experiences the app. A server can report "all green" internally while users see a blank page, so the most important check runs from an external location.
Uptime — the outermost layer. Probe at fixed intervals from a machine outside your network and escalate two distinct levels: is the host reachable at all (a ping), and does the app actually respond to a real HTTP GET? A server can answer ping while the web app is crashed, which is exactly the failure uptime checks exist to catch. This layer underpins any Service Level Agreement (SLA) — a contractual promise like "99.9% available," which you can only prove if you measure it.
Infrastructure — the health of the box itself: disk space, memory, CPU utilization, and bandwidth. A disk that quietly fills to 100% is a classic outage cause: logs stop writing, the database refuses new rows, and the app falls over with no code bug in sight.
Request performance — how long each request takes, measured start to end. The single number matters less than the trend: as data volume grows, a query that took 50 ms can creep to 5 s. Watching the trend lets you catch the slowdown weeks before it becomes a visible outage.
Application-specific — metrics only your domain knows: signup rates, failed-payment counts, error rates, user activity. A sudden drop in completed checkouts is invisible to ping and CPU graphs but tells you the business is broken right now.
Memory tip: outside-in — uptime (can users reach it?) → infrastructure (is the box ok?) → performance (is it fast?) → app metrics (is it doing the right thing?).
Go deeper:
Observability (Wikipedia) — how metrics, logs, and traces let you explore why a live system misbehaves, beyond pre-set monitoring alerts.
Core Web Vitals (web.dev) — Google's user-centric performance metrics (LCP, CLS, INP) for the request-performance layer.