Skip to content

Add pluggable component for health check feature #254

Description

@jeevatkm

The goal is to create a pluggable component for health check feature in aah.

Goals:

Design:

  • Create a go library
  • Spec:
    • Provide an interface for implementing health check reporter
      • interface method func Check() error
    • Provide a method to create new health check component
    • Provide methods to add one or more health check reporter into health check registry with or without interval duration to call
      • e.g.: hc.AddReporter(healthcheck.Config{/* report name, implementation based on above interface, duration, skip on error, etc... */})
    • Provide a method to register controller and route for the aah application (by domain name if multiple domains application)
      • For non-Kubernetes - accept URL relative path for the route - returns the response payload with status code
      • For Kubernetes - to add liveness and readiness endpoints (accept URL relative path for the route for both endpoints) - return only status code with empty body since Kubernetes only cares about status code
  • Status Codes for response
    • 200 OK if every registered health checker/reporter returns nil
    • 503 Service Unavailable if any registered checker/reporter return non-nil except skip on error

Sample response payload (a conceptual idea, yet to be finalized)

{
	"status": "OK", // OK or Service Unavailable
	"timestamp": "RFC3339 or ISO 8061", // yet to be decided
	"reportname": bool, // true or false, this line will be repeated for all registered health checker/reporter
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions