Documentation
¶
Index ¶
- type AdvancedCheckFunc
- type AdvancedCheckResult
- type AdvancedCheckerConfig
- type AdvancedHealthChecker
- func (hc *AdvancedHealthChecker) CheckAdvancedHealth(ctx context.Context) *AdvancedHealthResult
- func (hc *AdvancedHealthChecker) CloseAdvanced() error
- func (hc *AdvancedHealthChecker) GetAdvancedLastResult() *AdvancedHealthResult
- func (hc *AdvancedHealthChecker) HTTPAdvancedHandler() http.HandlerFunc
- func (hc *AdvancedHealthChecker) RegisterAdvancedCheck(name string, checkFunc AdvancedCheckFunc)
- type AdvancedHealthResult
- type AdvancedHealthSummary
- type AdvancedStatus
- type AdvancedSystemInfo
- type CheckResult
- type Checker
- func (c *Checker) AddChecker(checker HealthChecker)
- func (c *Checker) Check(ctx context.Context) HealthResponse
- func (c *Checker) GetComponentStatus(ctx context.Context, componentName string) (ComponentHealth, bool)
- func (c *Checker) GetServiceInfo() map[string]interface{}
- func (c *Checker) IsHealthy(ctx context.Context) bool
- func (c *Checker) IsLive(ctx context.Context) bool
- func (c *Checker) IsReady(ctx context.Context) bool
- func (c *Checker) ListComponents() []string
- type CheckerOption
- type ComponentHealth
- type GCStats
- type Handler
- func (h *Handler) Component(c *gin.Context)
- func (h *Handler) Components(c *gin.Context)
- func (h *Handler) Health(c *gin.Context)
- func (h *Handler) Info(c *gin.Context)
- func (h *Handler) Liveness(c *gin.Context)
- func (h *Handler) Middleware() gin.HandlerFunc
- func (h *Handler) Readiness(c *gin.Context)
- func (h *Handler) RegisterRoutes(router gin.IRouter)
- type HealthAlert
- type HealthChecker
- type HealthMetricsCollector
- type HealthResponse
- type HealthTrend
- type ResourceUsage
- type RuntimeInfo
- type Severity
- type Status
- type SystemInfo
- type TrendAnalyzer
- type TrendDataPoint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdvancedCheckFunc ¶ added in v1.0.2
type AdvancedCheckFunc func(ctx context.Context, metadata map[string]interface{}) *AdvancedCheckResult
AdvancedCheckFunc representa una función de health check mejorada
type AdvancedCheckResult ¶ added in v1.0.2
type AdvancedCheckResult struct {
Name string `json:"name"`
Status AdvancedStatus `json:"status"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
Duration time.Duration `json:"duration"`
Timestamp time.Time `json:"timestamp"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
Critical bool `json:"critical"`
Timeout time.Duration `json:"timeout"`
LastSuccess time.Time `json:"last_success,omitempty"`
// Campos extendidos para gopherkit
Severity Severity `json:"severity"`
Component string `json:"component"`
Category string `json:"category"`
Recommendations []string `json:"recommendations,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
Metrics map[string]float64 `json:"metrics,omitempty"`
Trend HealthTrend `json:"trend,omitempty"`
RetryCount int `json:"retry_count,omitempty"`
MaxRetries int `json:"max_retries,omitempty"`
}
AdvancedCheckResult representa el resultado de un health check con información extendida
type AdvancedCheckerConfig ¶ added in v1.0.2
type AdvancedCheckerConfig struct {
ServiceName string
DatabaseMode string
DatabaseSchema string
DatabaseURL string
RedisURL string
RedisNamespace string
DefaultTimeout time.Duration
CriticalChecks []string
Metadata map[string]interface{}
// Configuración extendida
Environment string
EnableTrendAnalysis bool
EnableSystemInfo bool
EnableRecommendations bool
EnablePrometheusMetrics bool
MaxHistoryEntries int
CheckInterval time.Duration
ParallelCheckLimit int
// Integración con gopherkit
BaseConfig *config.BaseConfig
AlertManager *monitoring.AlertManager
}
AdvancedCheckerConfig mantiene la configuración del health checker avanzado
func LoadAdvancedConfigFromBase ¶ added in v1.0.2
func LoadAdvancedConfigFromBase(baseConfig *config.BaseConfig, serviceName string) *AdvancedCheckerConfig
LoadAdvancedConfigFromBase carga configuración avanzada desde BaseConfig de gopherkit
func LoadAdvancedDefaultConfig ¶ added in v1.0.2
func LoadAdvancedDefaultConfig() *AdvancedCheckerConfig
LoadAdvancedDefaultConfig carga configuración por defecto avanzada
type AdvancedHealthChecker ¶ added in v1.0.2
type AdvancedHealthChecker struct {
// contains filtered or unexported fields
}
AdvancedHealthChecker realiza health checks con funcionalidades avanzadas
func NewAdvancedHealthChecker ¶ added in v1.0.2
func NewAdvancedHealthChecker(config *AdvancedCheckerConfig, db *sql.DB, redisClient *redis.Client) *AdvancedHealthChecker
NewAdvancedHealthChecker crea un nuevo health checker con funcionalidades avanzadas
func (*AdvancedHealthChecker) CheckAdvancedHealth ¶ added in v1.0.2
func (hc *AdvancedHealthChecker) CheckAdvancedHealth(ctx context.Context) *AdvancedHealthResult
CheckAdvancedHealth realiza todos los health checks avanzados
func (*AdvancedHealthChecker) CloseAdvanced ¶ added in v1.0.2
func (hc *AdvancedHealthChecker) CloseAdvanced() error
CloseAdvanced cierra el health checker avanzado de forma graciosa
func (*AdvancedHealthChecker) GetAdvancedLastResult ¶ added in v1.0.2
func (hc *AdvancedHealthChecker) GetAdvancedLastResult() *AdvancedHealthResult
GetAdvancedLastResult retorna el último resultado de health check avanzado
func (*AdvancedHealthChecker) HTTPAdvancedHandler ¶ added in v1.0.2
func (hc *AdvancedHealthChecker) HTTPAdvancedHandler() http.HandlerFunc
HTTPAdvancedHandler retorna un handler HTTP para health checks avanzados
func (*AdvancedHealthChecker) RegisterAdvancedCheck ¶ added in v1.0.2
func (hc *AdvancedHealthChecker) RegisterAdvancedCheck(name string, checkFunc AdvancedCheckFunc)
RegisterAdvancedCheck registra un nuevo health check avanzado
type AdvancedHealthResult ¶ added in v1.0.2
type AdvancedHealthResult struct {
Status AdvancedStatus `json:"status"`
Timestamp time.Time `json:"timestamp"`
Duration time.Duration `json:"duration"`
Checks map[string]*AdvancedCheckResult `json:"checks"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
Version string `json:"version,omitempty"`
Service string `json:"service"`
Mode string `json:"mode"`
// Campos extendidos
Environment string `json:"environment"`
OverallSeverity Severity `json:"overall_severity"`
Summary AdvancedHealthSummary `json:"summary"`
SystemInfo AdvancedSystemInfo `json:"system_info"`
Alerts []HealthAlert `json:"alerts,omitempty"`
Recommendations []string `json:"recommendations,omitempty"`
TrendAnalysis map[string]HealthTrend `json:"trend_analysis,omitempty"`
}
AdvancedHealthResult representa el resultado general de health checks con funcionalidades avanzadas
type AdvancedHealthSummary ¶ added in v1.0.2
type AdvancedHealthSummary struct {
TotalChecks int `json:"total_checks"`
HealthyChecks int `json:"healthy_checks"`
CriticalIssues int `json:"critical_issues"`
Warnings int `json:"warnings"`
ByCategory map[string]int `json:"by_category"`
BySeverity map[Severity]int `json:"by_severity"`
UpTime time.Duration `json:"uptime"`
LastRestart time.Time `json:"last_restart,omitempty"`
}
AdvancedHealthSummary proporciona un resumen ejecutivo del estado de salud
type AdvancedStatus ¶ added in v1.0.2
type AdvancedStatus string
Status representa el estado de salud de un componente con estados extendidos
const ( AdvancedStatusHealthy AdvancedStatus = "healthy" AdvancedStatusUnhealthy AdvancedStatus = "unhealthy" AdvancedStatusDegraded AdvancedStatus = "degraded" AdvancedStatusUnknown AdvancedStatus = "unknown" AdvancedStatusMaintenance AdvancedStatus = "maintenance" AdvancedStatusWarning AdvancedStatus = "warning" AdvancedStatusCritical AdvancedStatus = "critical" AdvancedStatusRecovering AdvancedStatus = "recovering" )
type AdvancedSystemInfo ¶ added in v1.0.2
type AdvancedSystemInfo struct {
GoVersion string `json:"go_version"`
Runtime RuntimeInfo `json:"runtime"`
Dependencies map[string]string `json:"dependencies"`
Configuration map[string]string `json:"configuration"`
Resources ResourceUsage `json:"resources"`
Capabilities []string `json:"capabilities"`
}
AdvancedSystemInfo proporciona información extendida del sistema
type CheckResult ¶
type CheckResult struct {
Name string
Health ComponentHealth
Error error
}
CheckResult representa el resultado de un health check individual
type Checker ¶
type Checker struct {
// contains filtered or unexported fields
}
Checker agregado que combina múltiples health checkers
func NewChecker ¶
func NewChecker(service, version string, opts ...CheckerOption) *Checker
NewChecker crea un nuevo health checker agregado
func (*Checker) AddChecker ¶
func (c *Checker) AddChecker(checker HealthChecker)
AddChecker añade un health checker
func (*Checker) Check ¶
func (c *Checker) Check(ctx context.Context) HealthResponse
Check ejecuta todos los health checks
func (*Checker) GetComponentStatus ¶
func (c *Checker) GetComponentStatus(ctx context.Context, componentName string) (ComponentHealth, bool)
GetComponentStatus obtiene el estado de un componente específico
func (*Checker) GetServiceInfo ¶
GetServiceInfo retorna información básica del servicio
func (*Checker) ListComponents ¶
ListComponents retorna la lista de nombres de componentes
type CheckerOption ¶
type CheckerOption func(*Checker)
CheckerOption define opciones para configurar el Checker
func WithBuildInfo ¶
func WithBuildInfo(buildTime, gitCommit string) CheckerOption
WithBuildInfo configura información de build
func WithEnvironment ¶
func WithEnvironment(env string) CheckerOption
WithEnvironment configura el environment
type ComponentHealth ¶
type ComponentHealth struct {
Status Status `json:"status"`
Message string `json:"message,omitempty"`
Timestamp time.Time `json:"timestamp"`
Duration time.Duration `json:"duration"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
Error string `json:"error,omitempty"`
LastChecked time.Time `json:"last_checked"`
}
ComponentHealth representa la salud de un componente individual
func NewComponentHealth ¶
func NewComponentHealth(status Status, message string) ComponentHealth
NewComponentHealth crea un nuevo ComponentHealth
func (ComponentHealth) WithDuration ¶
func (c ComponentHealth) WithDuration(duration time.Duration) ComponentHealth
WithDuration añade duración al ComponentHealth
func (ComponentHealth) WithError ¶
func (c ComponentHealth) WithError(err error) ComponentHealth
WithError añade un error al ComponentHealth
func (ComponentHealth) WithMetadata ¶
func (c ComponentHealth) WithMetadata(key string, value interface{}) ComponentHealth
WithMetadata añade metadata al ComponentHealth
type GCStats ¶ added in v1.0.2
type GCStats struct {
NextGC uint64 `json:"next_gc"`
LastGC time.Time `json:"last_gc"`
PauseTotalNs uint64 `json:"pause_total_ns"`
NumGC uint32 `json:"num_gc"`
GCPercent int `json:"gc_percent"`
}
GCStats estadísticas del garbage collector
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler maneja las rutas de health check
func NewHandler ¶
NewHandler crea un nuevo handler de health checks
func (*Handler) Component ¶
Component maneja GET /health/component/{name} - health check de componente específico
func (*Handler) Components ¶
Components maneja GET /health/components - lista todos los componentes
func (*Handler) Middleware ¶
func (h *Handler) Middleware() gin.HandlerFunc
Middleware crea un middleware que registra health check requests
func (*Handler) RegisterRoutes ¶
RegisterRoutes registra todas las rutas de health check en un router Gin
type HealthAlert ¶ added in v1.0.2
type HealthAlert struct {
ID string `json:"id"`
Level string `json:"level"`
Message string `json:"message"`
Component string `json:"component"`
Timestamp time.Time `json:"timestamp"`
Resolved bool `json:"resolved"`
ResolvedAt *time.Time `json:"resolved_at,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
HealthAlert representa una alerta de salud
type HealthChecker ¶
type HealthChecker interface {
// Name retorna el nombre del componente
Name() string
// Check ejecuta el health check
Check(ctx context.Context) ComponentHealth
// IsRequired indica si este componente es requerido para la salud general
IsRequired() bool
// Timeout retorna el timeout para este health check
Timeout() time.Duration
}
HealthChecker define la interfaz para health checkers
type HealthMetricsCollector ¶ added in v1.0.2
type HealthMetricsCollector struct {
// contains filtered or unexported fields
}
HealthMetricsCollector recopila métricas de salud para Prometheus
func NewHealthMetricsCollector ¶ added in v1.0.2
func NewHealthMetricsCollector(serviceName string) *HealthMetricsCollector
func (*HealthMetricsCollector) RecordAdvancedHealthCheck ¶ added in v1.0.2
func (hmc *HealthMetricsCollector) RecordAdvancedHealthCheck(result *AdvancedHealthResult)
type HealthResponse ¶
type HealthResponse struct {
Status Status `json:"status"`
Service string `json:"service"`
Version string `json:"version"`
Timestamp time.Time `json:"timestamp"`
Uptime time.Duration `json:"uptime"`
Components map[string]ComponentHealth `json:"components"`
SystemInfo SystemInfo `json:"system_info"`
RequestID string `json:"request_id,omitempty"`
Environment string `json:"environment,omitempty"`
}
HealthResponse representa la respuesta completa de health check
type HealthTrend ¶ added in v1.0.2
type HealthTrend struct {
Direction string `json:"direction"` // "improving", "declining", "stable"
Confidence float64 `json:"confidence"`
DataPoints int `json:"data_points"`
LastUpdated time.Time `json:"last_updated"`
TrendMetrics map[string]float64 `json:"trend_metrics,omitempty"`
}
HealthTrend representa la tendencia de salud de un componente
type ResourceUsage ¶ added in v1.0.2
type ResourceUsage struct {
MemoryUsageMB float64 `json:"memory_usage_mb"`
CPUUsagePercent float64 `json:"cpu_usage_percent"`
DiskUsageMB float64 `json:"disk_usage_mb"`
NetworkBytesIn uint64 `json:"network_bytes_in"`
NetworkBytesOut uint64 `json:"network_bytes_out"`
LastUpdated time.Time `json:"last_updated"`
}
ResourceUsage información de uso de recursos
type RuntimeInfo ¶ added in v1.0.2
type RuntimeInfo struct {
NumGoroutines int `json:"num_goroutines"`
NumCPU int `json:"num_cpu"`
MemStats runtime.MemStats `json:"mem_stats"`
GCStats GCStats `json:"gc_stats"`
}
RuntimeInfo información del runtime de Go
type Severity ¶ added in v1.0.2
type Severity int
Severity define la severidad de un problema de salud
type Status ¶
type Status string
Status representa el estado de salud de un componente
func OverallStatus ¶
func OverallStatus(components map[string]ComponentHealth) Status
OverallStatus calcula el estado general basado en los componentes
type SystemInfo ¶
type SystemInfo struct {
Version string `json:"version"`
BuildTime string `json:"build_time,omitempty"`
GitCommit string `json:"git_commit,omitempty"`
GoVersion string `json:"go_version"`
Platform string `json:"platform"`
StartTime time.Time `json:"start_time"`
Uptime string `json:"uptime"`
Environment string `json:"environment,omitempty"`
}
SystemInfo representa información del sistema
type TrendAnalyzer ¶ added in v1.0.2
type TrendAnalyzer struct {
// contains filtered or unexported fields
}
TrendAnalyzer analiza tendencias de salud a lo largo del tiempo
func NewTrendAnalyzer ¶ added in v1.0.2
func NewTrendAnalyzer(maxDataPoints int, analysisWindow time.Duration) *TrendAnalyzer
func (*TrendAnalyzer) AddAdvancedDataPoint ¶ added in v1.0.2
func (ta *TrendAnalyzer) AddAdvancedDataPoint(result *AdvancedHealthResult)
func (*TrendAnalyzer) AnalyzeAdvancedTrends ¶ added in v1.0.2
func (ta *TrendAnalyzer) AnalyzeAdvancedTrends() map[string]HealthTrend
type TrendDataPoint ¶ added in v1.0.2
type TrendDataPoint struct {
Timestamp time.Time
Status AdvancedStatus
Duration time.Duration
Metrics map[string]float64
}
TrendDataPoint representa un punto de datos para análisis de tendencias