monitoring

package
v0.0.0-...-f883f01 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitializeKeyHealthMonitor

func InitializeKeyHealthMonitor(monitoringConfig config.MonitoringConfig) error

InitializeKeyHealthMonitor initializes the global key health monitor

func StopKeyHealthMonitor

func StopKeyHealthMonitor()

StopKeyHealthMonitor stops the global key health monitor

Types

type DatabaseHealthCheck

type DatabaseHealthCheck struct {
	// contains filtered or unexported fields
}

DatabaseHealthCheck checks database connectivity

func (*DatabaseHealthCheck) Check

func (d *DatabaseHealthCheck) Check() HealthCheck

func (*DatabaseHealthCheck) Name

func (d *DatabaseHealthCheck) Name() string

type DiskInfo

type DiskInfo struct {
	Total     uint64  `json:"total"`
	Used      uint64  `json:"used"`
	Available uint64  `json:"available"`
	UsedPct   float64 `json:"used_percent"`
}

DiskInfo provides disk usage information

type HealthCheck

type HealthCheck struct {
	Name        string            `json:"name"`
	Status      HealthStatus      `json:"status"`
	Message     string            `json:"message,omitempty"`
	Duration    time.Duration     `json:"duration"`
	Timestamp   time.Time         `json:"timestamp"`
	Details     map[string]string `json:"details,omitempty"`
	LastSuccess *time.Time        `json:"last_success,omitempty"`
	LastFailure *time.Time        `json:"last_failure,omitempty"`
}

HealthCheck represents a single health check result

type HealthChecker

type HealthChecker interface {
	Check() HealthCheck
	Name() string
}

HealthChecker interface for implementing health checks

type HealthMonitor

type HealthMonitor struct {
	// contains filtered or unexported fields
}

HealthMonitor manages health checks and monitoring

func NewHealthMonitor

func NewHealthMonitor(db *sql.DB, cfg *config.Config, version string) *HealthMonitor

NewHealthMonitor creates a new health monitor

func (*HealthMonitor) GetHealthStatus

func (hm *HealthMonitor) GetHealthStatus() HealthResponse

GetHealthStatus performs all health checks and returns the status

func (*HealthMonitor) HealthHandler

func (hm *HealthMonitor) HealthHandler(c echo.Context) error

HealthHandler returns the complete health status

func (*HealthMonitor) LivenessHandler

func (hm *HealthMonitor) LivenessHandler(c echo.Context) error

LivenessHandler returns liveness status (minimal check)

func (*HealthMonitor) MetricsHandler

func (hm *HealthMonitor) MetricsHandler(c echo.Context) error

MetricsHandler returns Prometheus-compatible metrics

func (*HealthMonitor) ReadinessHandler

func (hm *HealthMonitor) ReadinessHandler(c echo.Context) error

ReadinessHandler returns readiness status (simplified health check)

func (*HealthMonitor) RegisterCheck

func (hm *HealthMonitor) RegisterCheck(checker HealthChecker)

RegisterCheck registers a new health check

type HealthResponse

type HealthResponse struct {
	Status    HealthStatus           `json:"status"`
	Timestamp time.Time              `json:"timestamp"`
	Version   string                 `json:"version"`
	Uptime    time.Duration          `json:"uptime"`
	Checks    map[string]HealthCheck `json:"checks"`
	System    SystemInfo             `json:"system"`
	Summary   HealthSummary          `json:"summary"`
}

HealthResponse represents the complete health check response

type HealthStatus

type HealthStatus string

HealthStatus represents the overall health status

const (
	StatusHealthy   HealthStatus = "healthy"
	StatusDegraded  HealthStatus = "degraded"
	StatusUnhealthy HealthStatus = "unhealthy"
)

type HealthSummary

type HealthSummary struct {
	Total     int `json:"total"`
	Healthy   int `json:"healthy"`
	Degraded  int `json:"degraded"`
	Unhealthy int `json:"unhealthy"`
}

HealthSummary provides summary statistics

type KeyComponent

type KeyComponent struct {
	Name         string                 `json:"name"`
	Type         string                 `json:"type"` // "opaque_server", "jwt_signing", "tls_cert", "entity_id"
	Path         string                 `json:"path"` // File path or identifier
	Status       KeyHealthStatus        `json:"status"`
	LastChecked  time.Time              `json:"last_checked"`
	NextCheck    time.Time              `json:"next_check"`
	Details      map[string]interface{} `json:"details"`
	AlertLevel   string                 `json:"alert_level"`
	ErrorMessage string                 `json:"error_message,omitempty"`
}

KeyComponent represents a monitored cryptographic component

type KeyHealthCheck

type KeyHealthCheck struct {
	// contains filtered or unexported fields
}

KeyHealthCheck checks cryptographic key health

func (*KeyHealthCheck) Check

func (k *KeyHealthCheck) Check() HealthCheck

func (*KeyHealthCheck) Name

func (k *KeyHealthCheck) Name() string

type KeyHealthMonitor

type KeyHealthMonitor struct {
	// contains filtered or unexported fields
}

KeyHealthMonitor monitors the health of cryptographic keys and certificates

var DefaultKeyHealthMonitor *KeyHealthMonitor

Global key health monitor instance

func NewKeyHealthMonitor

func NewKeyHealthMonitor(db *sql.DB, monitoringConfig config.MonitoringConfig) *KeyHealthMonitor

NewKeyHealthMonitor creates a new key health monitor

func (*KeyHealthMonitor) GetHealthStatus

func (khm *KeyHealthMonitor) GetHealthStatus() ([]KeyComponent, error)

GetHealthStatus returns the current health status of all components

func (*KeyHealthMonitor) PerformHealthCheck

func (khm *KeyHealthMonitor) PerformHealthCheck()

PerformHealthCheck performs a comprehensive health check of all key components

func (*KeyHealthMonitor) Start

func (khm *KeyHealthMonitor) Start()

Start begins the key health monitoring routine

func (*KeyHealthMonitor) Stop

func (khm *KeyHealthMonitor) Stop()

Stop stops the key health monitoring routine

type KeyHealthStatus

type KeyHealthStatus string

KeyHealthStatus represents the health status of a cryptographic component

const (
	HealthStatusHealthy  KeyHealthStatus = "healthy"
	HealthStatusWarning  KeyHealthStatus = "warning"
	HealthStatusCritical KeyHealthStatus = "critical"
	HealthStatusUnknown  KeyHealthStatus = "unknown"
)

type StorageHealthCheck

type StorageHealthCheck struct {
	// contains filtered or unexported fields
}

StorageHealthCheck checks storage backend connectivity

func (*StorageHealthCheck) Check

func (s *StorageHealthCheck) Check() HealthCheck

func (*StorageHealthCheck) Name

func (s *StorageHealthCheck) Name() string

type SystemHealthCheck

type SystemHealthCheck struct{}

SystemHealthCheck checks system resources

func (*SystemHealthCheck) Check

func (s *SystemHealthCheck) Check() HealthCheck

func (*SystemHealthCheck) Name

func (s *SystemHealthCheck) Name() string

type SystemInfo

type SystemInfo struct {
	GoVersion    string `json:"go_version"`
	NumGoroutine int    `json:"num_goroutine"`
	NumCPU       int    `json:"num_cpu"`
	MemStats     struct {
		Alloc      uint64 `json:"alloc"`
		TotalAlloc uint64 `json:"total_alloc"`
		Sys        uint64 `json:"sys"`
		NumGC      uint32 `json:"num_gc"`
		LastGC     string `json:"last_gc"`
	} `json:"memory"`
	DiskUsage map[string]DiskInfo `json:"disk_usage"`
}

SystemInfo provides system-level information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL