Skip to content

Application Observability Requirements

To ensure reliable operations, predictable deployments, and effective monitoring within Kubernetes, all applications must expose standardized observability endpoints. These endpoints allow DevOps, monitoring systems, and orchestration tools to validate application readiness, diagnose issues, and collect operational metadata.

Health Check Endpoint (GET /health)

Every web application must provide a GET /health endpoint.
This endpoint is used by Kubernetes readiness/liveness probes and must return:

  • HTTP 200 OK when all of the following conditions are true:

    1. The application has successfully bootstrapped.
    2. All required data sources (e.g., databases, caches, queues) are reachable.
    3. All required dependent services (e.g., internal APIs) are reachable.
  • HTTP 503 Service Unavailable when any of the above checks fail.

Requirements

  • The endpoint must respond quickly (within milliseconds).
  • The endpoint must perform non-destructive checks (no heavy operations).
  • The endpoint must require no authentication.
  • The endpoint must return a simple JSON object or plain text indicator.

Status Endpoint (GET /status)

Every application must additionally expose a GET /status endpoint that returns metadata about the running instance. This endpoint is used for debugging, audits, support diagnostics, and identifying which version is currently deployed.

It must return HTTP 200 OK with the following response schema:

json
{
  "name": "string",
  "version": "string",
  "startTime": "string (date-time)",
  "host": "string"
}

Field Descriptions

  • name – The logical name of the application.
  • version – The version currently deployed (must match GitHub Release or tag).
  • startTime – ISO 8601 timestamp of when the application successfully started.
  • host – The hostname or pod name where the application is running.

Example Response

json
{
  "name": "simple-api",
  "version": "0.1.0",
  "startTime": "2021-10-28T14:49:08.06+00:00",
  "host": "simple-api-deployment-c99cdcfdf-xrfh4"
}

Summary

All applications must expose:

  • GET /health → readiness and liveness indicator
  • GET /status → operational metadata

Failure to implement these endpoints will prevent the application from being deployed or monitored correctly in Kubernetes.