Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A green /health response does not prove your database or another dependency is working. It proves only that the endpoint’s configured checks passed—and a default ASP.NET Core health endpoint may have no dependency checks registered at all. The fix is to define what each probe should tell its caller, then register and evaluate checks accordingly.

Why does /health return OK when the database is down?

A health URL is not dependency-aware just because it is named /health. In ASP.NET Core, the health-check middleware reports the result of the checks registered and included in that endpoint. By default, no specific checks are registered to test a dependency or subsystem, so an endpoint can respond successfully without contacting a database. See Microsoft’s ASP.NET Core health-check documentation.

That means an HTTP 200 from a shallow endpoint can be accurate about one narrow fact—the app answered the request—while saying nothing about whether it can serve a request that needs the database. A health response is an operational contract with its caller: decide whether the caller should restart a process, stop routing traffic to a replica, or alert an operator before deciding what the endpoint should check.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What is the difference between liveness, readiness, and startup probes?

Probe Question it answers Typical consequence of failure
Liveness Is this process functioning, or should it be restarted? The orchestrator may restart the process.
Readiness Should this instance receive traffic now? The instance may be removed from traffic routing.
Startup Has initialization completed enough for the other probes to apply? Other probes can be held back while the application starts.

These are distinct decisions, not interchangeable names for one check. Kubernetes documents the probe roles, and AWS’s guidance for applications on Amazon EKS likewise distinguishes restart behavior from traffic routing: AWS probe guidance.

Liveness should usually describe the process

If liveness depends on an external database, a database outage can make otherwise functioning application processes fail liveness. The orchestrator may then restart them, adding churn without repairing the shared dependency. Keep liveness focused on conditions where restarting that process is a sensible recovery action; do not use it as a general dependency monitor.

Readiness should describe whether this instance can serve its intended traffic

A dependency can belong in readiness when requests represented by that endpoint require it and the service has no useful fallback. If the application can still serve some traffic without the dependency, a single all-or-nothing readiness result may hide that distinction. Also consider failure scope: if every replica shares the same database, a database-sensitive readiness check can mark every replica unready at once. A deeper probe is not automatically a safer probe.

Startup handles slow initialization

When initialization takes time, a startup probe can distinguish an application that is still starting from one that is dead or ready. This avoids treating expected startup work as a liveness failure before the process has completed initialization. Exact timing and threshold settings depend on the application and deployment environment; the cited guidance does not establish universal values.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should your readiness probe check the database?

Check the database in readiness only if its state changes whether this instance should accept the traffic being assessed. Work through these questions before adding the check:

Rank #3
Necto Cellular Temperature Monitor, Power Outage Alarm & Humidity Sensor
  • 2 Years of Cellular Service Included – Necto offers the most affordable cellular-enabled sensor with 2 full years of 4G LTE service included—no hidden fees, contracts, or WiFi required. With a built-in multi-network SIM card, you can remotely monitor conditions 24/7 and receive real-time alerts. After 2 years, you can renew the subscription from the app for only $6.99 a month.
  • Instant Alert & 24/7 Monitoring - Keep tabs on your Home, RV, Car, or Pets from anywhere with the 3-in-1 temperature, humidity & power outage monitor. Customize the high and low temp/humidity thresholds and add up to 5 contacts for unlimited text and email alerts. Receive real-time alerts if critical changes in temp/humidity or a power loss occurs.
  • Rechargeable Internal Battery - The Necto smart RV and pet monitor has a 3 day long-lasting rechargeable battery. Unlike WiFi sensors, Necto provides continuous monitoring in the event of a power outage, via its built-in battery and cellular technology. Receive instant alerts on your phone when battery power is low or if the device disconnects from the network.
  • Intuitive Mobile App & Easy Setup - Our user-friendly mobile app gives you remote access to your sensor from anywhere. Use your smartphone or PC to customize alert thresholds, view past readings, and manage device settings with ease. The sensor takes minutes to install and requires no technical expertise. Simply activate the device through the app and plug it into any standard wall outlet.
  • Fast Refresh & Free Data Storage - The industrial built-in temperature and humidity sensor takes readings every 10 seconds to make sure the temp/humidity are within the safe range. Every 10 minutes the most recent reading is updated on the online portal. Readings are stored on our servers for 1 year and can be downloaded anytime on a CSV file.
  • Request relevance: Do the requests routed to this instance require the database, or can the service respond safely using a fallback?
  • Operational consequence: Will a failed result stop traffic to this instance, restart it, or merely alert someone? The check should match that action.
  • Failure scope: Do all replicas share the dependency? If so, one outage could cause all of them to fail readiness together.
  • Startup behavior: Is the dependency unavailable only while initialization is underway, or is the application genuinely unable to serve?
  • Caller behavior: How does the orchestrator, load balancer, or monitoring service interpret the response and status code?

These same considerations apply to external services. A check that makes a replica unready during a shared provider outage may reduce capacity for requests that could otherwise be handled. Conversely, routing traffic to an instance that cannot perform essential work may be worse. Choose based on the service’s actual behavior and the action its caller takes, not on a universal rule that every dependency must be probed.

How to make an ASP.NET Core health endpoint dependency-aware

In ASP.NET Core 10.0, register health checks with the health-check services, then map endpoints whose results include the appropriate checks. Microsoft’s documentation shows separate readiness and liveness endpoints, check selection, and a database-probe scenario: ASP.NET Core health checks.

Rank #4
Sipeed NanoKVM IP KVM Remote Control via the Internet, 1080P HDMI, Keyboard Video and Mouse Remote Control, Ideal mini KVM for Home Offices Data Centres Server Management (NanoKVM Full W)
  • 【Remote Control Operations Server】Sipeed NanoKVM is an IP-KVM solution based on the LicheeRV Nano RISC-V Linux single-board computer, inheriting the Nano's compact form factor and powerful capabilities. Breaking free from traditional host requirements for network connectivity and system software, NanoKVM functions as an external hardware device directly providing remote control capabilities.
  • 【Powerful Interfaces】Sipeed NanoKVM features one HDMI input port that can be recognized by a computer as a display to capture screen content. One USB 2.0 port connects to the computer host, functioning as a HID device (e.g., keyboard, mouse, touchpad). It also utilizes spare TF card storage space, mounting it as a USB flash drive device.
  • 【100Mbps Ethernet Support】Sipeed NanoKVM features a 100Mbps Ethernet port for network transmission of video and control signals. The Full version additionally includes an ATX power control interface (USB-C) for remote host power status monitoring and control. The Full version housing also incorporates an OLED display showing the device's IP address and KVM-related status.
  • 【Server Management】Sipeed NanoKVM enables real-time monitoring and control of server operations. Supports remote desktop access and host power cycling: NanoKVM overcomes limitations requiring the host to be networked or specific system software, functioning as external hardware to provide direct remote control capabilities.
  • 【Supports Remote Installation】Sipeed NanoKVM emulates a USB flash drive device, enabling mounting of installation images for system deployment or access to computer BIOS settings. The NanoKVM Lite features two serial ports for use with IPMI or connection to other development boards via web-based serial terminal interaction. Users may also expand functionality with additional accessories.
  1. Register the checks your service needs. Add the health-check services and register an appropriate database check or other dependency check. A mapped route alone does not create those checks.
  2. Separate probe semantics. Map distinct endpoints for liveness and readiness if the deployment environment needs to make different decisions. Keep external dependency checks out of liveness when their failure should not trigger a process restart.
  3. Include relevant checks in readiness. Use the framework’s check-selection mechanisms so readiness evaluates the checks that determine whether the instance can serve its intended traffic.
  4. Configure the consumer to use the intended endpoint. Point the orchestrator or load balancer’s restart, traffic, and startup checks at the corresponding routes; verify how it treats unsuccessful results and response codes.

The exact check package and configuration depend on the dependency and application setup. This ASP.NET Core mechanism is framework-specific; other languages and frameworks use their own registration and routing systems.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What does /health prove in Kubernetes?

For an application running in Kubernetes, a failed liveness probe can lead to a container restart, while a failed readiness probe can remove the pod from service traffic. A startup probe can allow initialization to complete before liveness and readiness take effect. Configure each probe for the action it is meant to control, rather than pointing all three at one endpoint with identical semantics.

There is a separate naming detail for the Kubernetes API server itself: its own health endpoints are /livez and /readyz, and Kubernetes says the API server’s /healthz endpoint has been deprecated since v1.16. That deprecation applies to the API server endpoint; it does not mean every application’s /health or /healthz route is deprecated. See Kubernetes API health endpoints.

How to diagnose a misleading green health response

  1. Identify the caller and its action. Find whether the route is used by a load balancer, container orchestrator, or monitoring system, and whether failure affects traffic, restarts, or alerts.
  2. Inspect the endpoint’s actual check set. In ASP.NET Core, verify that dependency checks are registered and included in the endpoint’s evaluation. Do not infer coverage from the route name or HTTP status alone.
  3. Compare the check with request needs. Determine whether the dependency is essential to the traffic the endpoint represents, including whether a fallback can serve requests.
  4. Separate restart and routing decisions. Use different liveness and readiness semantics where the environment needs both. Use startup behavior for slow initialization rather than making an external outage look like a dead process.
  5. Consider shared failure behavior. Assess what happens if a dependency check fails on every replica simultaneously, and whether removing all instances from traffic would help or worsen the incident.

Health checks are commonly used by container orchestrators and external monitoring services, but their value depends on whether the result matches the decision the consumer makes. An endpoint that answers quickly can still be useful as a liveness signal; it simply should not be mistaken for proof that every dependency is available.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.