upti.my
All Articles
API Monitoring··6 min read

Why Basic Ping Checks Are Not Enough

A ping tells you a server is reachable. It tells you nothing about whether your application actually works. Here is what you should monitor instead.

A ping check tells you one thing: the network path between the monitoring server and your host is open. That is it. It does not tell you if your app is running, if your database is connected, if your API is returning correct data, or if your users can actually do anything useful.

Yet most teams start with ping checks and never move beyond them. They set up a monitor, see the green "up" badge, and assume everything is fine. Until a customer emails asking why the app is broken.

What Ping Actually Checks

An ICMP ping verifies that the host is reachable at the network level. It confirms:

  • The server is powered on
  • The network interface is up
  • Routing between the two hosts works
  • No firewall is blocking ICMP

It does not verify that any application process is running on that server. Your web server could be crashed, your database could be unreachable, and your application could be returning 500 errors to every request. Ping would still return success.

Real Failures That Ping Misses

🚨

All of these happened with green ping checks

  • Nginx running, app crashed: The reverse proxy returns a 502 Bad Gateway for every request. Ping says up.
  • Database connection pool exhausted: API returns empty results for all queries. Ping says up.
  • TLS certificate expired: Every browser shows a security warning. Ping says up (ICMP doesn't use TLS).
  • DNS record changed: Domain points to the wrong IP. Ping checks the old IP directly and says up.
  • App serving stale cache: Content is hours old, but responses are fast and return 200. Even HTTP checks say up.

The Monitoring Ladder

Think of monitoring depth as a ladder. Each rung gives you more confidence that things actually work:

Level 1: Ping / ICMP

Is the host reachable? Good for infrastructure, useless for applications.

Level 2: TCP Port Check

Is something listening on port 443? Better. At least you know the web server process is running.

Level 3: HTTP Status Code

Does the endpoint return 200? Getting closer, but status codes can lie.

Level 4: Response Body Validation

Does the response contain the expected data structure? Now you're verifying application behavior.

monitor-config.json
{
  "url": "https://api.example.com/health",
  "assertions": [
    { "type": "status", "value": 200 },
    { "type": "responseTime", "operator": "lt", "value": 2000 },
    { "type": "jsonPath", "path": "$.status", "value": "healthy" },
    { "type": "jsonPath", "path": "$.database", "value": "connected" }
  ]
}

Level 5: Multi-Step / Browser Checks

Can a user actually complete a workflow? Log in, navigate, submit a form? This is the highest confidence check.

What to Monitor Instead

Replace your ping checks with monitors that validate real behavior:

  • HTTP checks with assertions: Validate status codes, response time, and response body content.
  • SSL checks: Monitor certificate expiry and chain validity separately from your HTTP checks.
  • DNS checks: Verify your DNS records resolve to the correct IPs and haven't been tampered with.
  • Heartbeat checks: Monitor cron jobs and background workers that don't listen on ports.
  • Playwright checks: Run real browser interactions to verify user-facing flows.

The Cost of Under-Monitoring

Ping-only monitoring gives you a false sense of security. You build dashboards with green status badges, tell stakeholders your uptime is 99.9%, and then discover that your users have been hitting errors for the last three hours because your payment API started returning malformed responses.

The monitoring that matters is the monitoring that catches what your users would catch. If your user would notice a problem that your monitoring wouldn't, your monitoring is not deep enough.

📌Key Takeaways

  • 1Ping checks verify network reachability, not application health
  • 2A server can be reachable while every application on it is broken
  • 3HTTP checks with response body validation catch failures that ping misses
  • 4SSL, DNS, and heartbeat monitoring cover blind spots that HTTP alone cannot
  • 5The right level of monitoring depth matches what your users would notice