Documentation
¶
Index ¶
- func NewLogger(level string) *slog.Logger
- type ComponentHealth
- type ComponentStatus
- type HealthCheckFunc
- type HealthChecker
- func (h *HealthChecker) CheckComponent(ctx context.Context, name string, checkFunc HealthCheckFunc)
- func (h *HealthChecker) GetHealth() HealthStatus
- func (h *HealthChecker) HealthHandler() http.HandlerFunc
- func (h *HealthChecker) ReadyHandler() http.HandlerFunc
- func (h *HealthChecker) RegisterComponent(name string)
- func (h *HealthChecker) StartPeriodicChecks(ctx context.Context, interval time.Duration, checks map[string]HealthCheckFunc)
- func (h *HealthChecker) UpdateComponentHealth(name string, status ComponentStatus, message string)
- type HealthStatus
- type Metrics
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ComponentHealth ¶
type ComponentHealth struct {
Status ComponentStatus `json:"status"`
Message string `json:"message,omitempty"`
LastCheck time.Time `json:"last_check"`
}
ComponentHealth represents the health of a single component
type ComponentStatus ¶
type ComponentStatus string
ComponentStatus represents the health status of a component
const ( StatusHealthy ComponentStatus = "healthy" StatusUnhealthy ComponentStatus = "unhealthy" StatusUnknown ComponentStatus = "unknown" )
type HealthCheckFunc ¶
HealthCheckFunc is a function that checks the health of a component
type HealthChecker ¶
type HealthChecker struct {
// contains filtered or unexported fields
}
HealthChecker provides health check functionality
func NewHealthChecker ¶
func NewHealthChecker(logger *slog.Logger) *HealthChecker
NewHealthChecker creates a new health checker
func (*HealthChecker) CheckComponent ¶
func (h *HealthChecker) CheckComponent(ctx context.Context, name string, checkFunc HealthCheckFunc)
CheckComponent runs a health check function and updates the component status
func (*HealthChecker) GetHealth ¶
func (h *HealthChecker) GetHealth() HealthStatus
GetHealth returns the current health status
func (*HealthChecker) HealthHandler ¶
func (h *HealthChecker) HealthHandler() http.HandlerFunc
HealthHandler returns an HTTP handler for the health endpoint
func (*HealthChecker) ReadyHandler ¶
func (h *HealthChecker) ReadyHandler() http.HandlerFunc
ReadyHandler returns an HTTP handler for the readiness endpoint
func (*HealthChecker) RegisterComponent ¶
func (h *HealthChecker) RegisterComponent(name string)
RegisterComponent registers a component for health checking
func (*HealthChecker) StartPeriodicChecks ¶
func (h *HealthChecker) StartPeriodicChecks(ctx context.Context, interval time.Duration, checks map[string]HealthCheckFunc)
StartPeriodicChecks starts periodic health checks for registered components
func (*HealthChecker) UpdateComponentHealth ¶
func (h *HealthChecker) UpdateComponentHealth(name string, status ComponentStatus, message string)
UpdateComponentHealth updates the health status of a component
type HealthStatus ¶
type HealthStatus struct {
Status ComponentStatus `json:"status"`
Components map[string]ComponentHealth `json:"components"`
Timestamp time.Time `json:"timestamp"`
}
HealthStatus represents the overall health status
type Metrics ¶
type Metrics struct {
// Queue metrics
QueueDepth prometheus.Gauge
QueueEnqueued prometheus.Counter
QueueDequeued prometheus.Counter
QueueCompleted prometheus.Counter
QueueFailed prometheus.Counter
// Scan metrics
ScansTotal prometheus.Counter
ScansFailed prometheus.Counter
ScanDuration prometheus.Histogram
// Policy metrics
PolicyPassed prometheus.Counter
PolicyFailed prometheus.Counter
// Vulnerability metrics
VulnerabilitiesFound *prometheus.CounterVec
ToleratedCVEs prometheus.Counter
// Attestation metrics
AttestationsCreated *prometheus.CounterVec
AttestationsFailed *prometheus.CounterVec
// Signing metrics
ImagesSigned prometheus.Counter
SigningFailed prometheus.Counter
// Discovery metrics
ImagesDiscovered prometheus.Counter
DiscoveryErrors prometheus.Counter
// Worker metrics
WorkerTasksProcessed prometheus.Counter
WorkerErrors prometheus.Counter
// Conditional scanning metrics
ConditionalScanDecisionsTotal *prometheus.CounterVec
ConditionalScanSkippedTotal *prometheus.CounterVec
ConditionalScanEnqueuedTotal *prometheus.CounterVec
ConditionalScanSkipAgeSeconds *prometheus.HistogramVec
}
Metrics holds all Prometheus metrics for the application
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server provides HTTP endpoints for metrics and health checks
func NewServer ¶
func NewServer(metricsPort, healthPort int, logger *slog.Logger, healthChecker *HealthChecker) *Server
NewServer creates a new observability server