Health Check
Fiber 애플리케이션의 활성화 및 준비 상태를 확인하는 두 개의 엔드포인트를 제공하는 Fiber 미들웨어입니다.
Overview
Liveness Probe: 서버가 실행 중인지 확인합니다.
기본 엔드포인트:
/livez
동작: 기본적으로 서버가 작동 중일 때 즉시
true
를 반환합니다.
Readiness Probe: 애플리케이션이 요청을 처리할 준비가 되었는지 평가합니다.
기본 엔드포인트:
/readyz
동작: 기본적으로 서버가 작동 중일 때 즉시
true
를 반환합니다.
HTTP 상태 코드:
200 OK
: 체커 함수가true
로 평가될 때 반환됩니다.503 Service Unavailable
: 체커 함수가false
로 평가될 때 반환됩니다.
Signatures
func New(config Config) fiber.Handler
Examples
Fiber 웹 프레임워크의 일부인 미들웨어 패키지를 가져옵니다.
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/healthcheck"
)
Fiber 앱을 초기화한 후, 다음과 같은 가능성을 사용할 수 있습니다:
// 최소 구성 제공
app.Use(healthcheck.New())
// 또는 사용자 지정을 위해 구성 확장
app.Use(healthcheck.New(healthcheck.Config{
LivenessProbe: func(c *fiber.Ctx) bool {
return true
},
LivenessEndpoint: "/live",
ReadinessProbe: func(c *fiber.Ctx) bool {
return serviceA.Ready() && serviceB.Ready() && ...
},
ReadinessEndpoint: "/ready",
}))
Config
type Config struct {
// Next는 true를 반환할 때 이 미들웨어를 건너뛰는 함수를 정의합니다.
//
// 선택사항. 기본값: nil
Next func(c *fiber.Ctx) bool
// 애플리케이션의 활성 상태를 확인하는 데 사용되는 함수입니다. 애플리케이션이
// 실행 중이면 true를, 그렇지 않으면 false를 반환합니다. Liveness Probe는 일반적으로
// 애플리케이션이 요청을 처리할 수 있는 상태인지 나타내는 데 사용됩니다(예: 서버가 실행 중임).
//
// 선택사항. 기본값: func(c *fiber.Ctx) bool { return true }
LivenessProbe HealthChecker
// Liveness Probe가 사용 가능한 HTTP 엔드포인트입니다.
//
// 선택사항. 기본값: "/livez"
LivenessEndpoint string
// 애플리케이션의 준비 상태를 확인하는 데 사용되는 함수입니다. 애플리케이션이
// 요청을 처리할 준비가 되었으면 true를, 그렇지 않으면 false를 반환합니다. Readiness Probe는
// 일반적으로 애플리케이션이 올바르게 작동하는 데 필요한 모든 서비스, 데이터베이스 및 기타
// 종속성을 사용할 수 있는지 확인합니다.
//
// 선택사항. 기본값: func(c *fiber.Ctx) bool { return true }
ReadinessProbe HealthChecker
// Readiness Probe가 사용 가능한 HTTP 엔드포인트입니다.
//
// 선택사항. 기본값: "/readyz"
ReadinessEndpoint string
}
Default Config
이 미들웨어에서 사용하는 기본 구성은 다음과 같이 정의됩니다:
func defaultLivenessProbe(*fiber.Ctx) bool { return true }
func defaultReadinessProbe(*fiber.Ctx) bool { return true }
var ConfigDefault = Config{
LivenessProbe: defaultLivenessProbe,
ReadinessProbe: defaultReadinessProbe,
LivenessEndpoint: "/livez",
ReadinessEndpoint: "/readyz",
}
Last updated