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