mirror of https://github.com/gofiber/fiber.git
85 lines
2.3 KiB
Go
85 lines
2.3 KiB
Go
package healthcheck
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v3"
|
|
)
|
|
|
|
// Config defines the configuration options for the healthcheck middleware.
|
|
type Config struct {
|
|
// Next defines a function to skip this middleware when returned true.
|
|
//
|
|
// Optional. Default: nil
|
|
Next func(fiber.Ctx) bool
|
|
|
|
// Function used for checking the liveness of the application. Returns true if the application
|
|
// is running and false if it is not. The liveness probe is typically used to indicate if
|
|
// the application is in a state where it can handle requests (e.g., the server is up and running).
|
|
//
|
|
// Optional. Default: func(c fiber.Ctx) bool { return true }
|
|
LivenessProbe HealthChecker
|
|
|
|
// HTTP endpoint at which the liveness probe will be available.
|
|
//
|
|
// Optional. Default: "/livez"
|
|
LivenessEndpoint string
|
|
|
|
// Function used for checking the readiness of the application. Returns true if the application
|
|
// is ready to process requests and false otherwise. The readiness probe typically checks if all necessary
|
|
// services, databases, and other dependencies are available for the application to function correctly.
|
|
//
|
|
// Optional. Default: func(c fiber.Ctx) bool { return true }
|
|
ReadinessProbe HealthChecker
|
|
|
|
// HTTP endpoint at which the readiness probe will be available.
|
|
// Optional. Default: "/readyz"
|
|
ReadinessEndpoint string
|
|
}
|
|
|
|
const (
|
|
DefaultLivenessEndpoint = "/livez"
|
|
DefaultReadinessEndpoint = "/readyz"
|
|
)
|
|
|
|
func defaultLivenessProbe(fiber.Ctx) bool { return true }
|
|
|
|
func defaultReadinessProbe(fiber.Ctx) bool { return true }
|
|
|
|
// ConfigDefault is the default config
|
|
var ConfigDefault = Config{
|
|
LivenessProbe: defaultLivenessProbe,
|
|
ReadinessProbe: defaultReadinessProbe,
|
|
LivenessEndpoint: DefaultLivenessEndpoint,
|
|
ReadinessEndpoint: DefaultReadinessEndpoint,
|
|
}
|
|
|
|
// defaultConfig returns a default config for the healthcheck middleware.
|
|
func defaultConfig(config ...Config) Config {
|
|
if len(config) < 1 {
|
|
return ConfigDefault
|
|
}
|
|
|
|
cfg := config[0]
|
|
|
|
if cfg.Next == nil {
|
|
cfg.Next = ConfigDefault.Next
|
|
}
|
|
|
|
if cfg.LivenessProbe == nil {
|
|
cfg.LivenessProbe = defaultLivenessProbe
|
|
}
|
|
|
|
if cfg.ReadinessProbe == nil {
|
|
cfg.ReadinessProbe = defaultReadinessProbe
|
|
}
|
|
|
|
if cfg.LivenessEndpoint == "" {
|
|
cfg.LivenessEndpoint = DefaultLivenessEndpoint
|
|
}
|
|
|
|
if cfg.ReadinessEndpoint == "" {
|
|
cfg.ReadinessEndpoint = DefaultReadinessEndpoint
|
|
}
|
|
|
|
return cfg
|
|
}
|