Documentation
¶
Index ¶
- type CompositeHealthCheck
- type Config
- type DatabaseHealthCheck
- type DiskSpaceHealthCheck
- type HTTPHealthCheck
- type HealthCheck
- type HealthResult
- type MemoryHealthCheck
- type MetricsCollector
- func (mc *MetricsCollector) DecHTTPRequestsInFlight(ctx context.Context)
- func (mc *MetricsCollector) GetMeter() metric.Meter
- func (mc *MetricsCollector) IncHTTPRequestsInFlight(ctx context.Context)
- func (mc *MetricsCollector) RecordBusinessEvent(ctx context.Context, eventType string, labels map[string]string)
- func (mc *MetricsCollector) RecordCacheHit(ctx context.Context, cacheType string)
- func (mc *MetricsCollector) RecordCacheMiss(ctx context.Context, cacheType string)
- func (mc *MetricsCollector) RecordDatabaseConnection(ctx context.Context, delta int64)
- func (mc *MetricsCollector) RecordError(ctx context.Context, errorType string, component string)
- func (mc *MetricsCollector) RecordHTTPRequest(ctx context.Context, method, path string, statusCode int, ...)
- func (mc *MetricsCollector) Shutdown(ctx context.Context) error
- type MetricsConfig
- type ObservabilityMiddleware
- func (om *ObservabilityMiddleware) BusinessMetrics() gin.HandlerFunc
- func (om *ObservabilityMiddleware) GetMetricsCollector() *MetricsCollector
- func (om *ObservabilityMiddleware) Logging(logger logger.Logger) gin.HandlerFunc
- func (om *ObservabilityMiddleware) Metrics() gin.HandlerFunc
- func (om *ObservabilityMiddleware) Tracing() gin.HandlerFunc
- type RedisHealthCheck
- type SimpleObservabilityMiddleware
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompositeHealthCheck ¶
type CompositeHealthCheck struct {
// contains filtered or unexported fields
}
CompositeHealthCheck combines multiple health checks
func NewCompositeHealthCheck ¶
func NewCompositeHealthCheck(name string, checks ...HealthCheck) *CompositeHealthCheck
NewCompositeHealthCheck creates a new composite health check
func (*CompositeHealthCheck) Check ¶
func (h *CompositeHealthCheck) Check(ctx context.Context) HealthResult
func (*CompositeHealthCheck) Name ¶
func (h *CompositeHealthCheck) Name() string
type Config ¶
type Config struct { ServiceName string ServiceVersion string TracingEnabled bool MetricsEnabled bool }
Config holds observability middleware configuration
type DatabaseHealthCheck ¶
type DatabaseHealthCheck struct {
// contains filtered or unexported fields
}
DatabaseHealthCheck checks database connectivity
func NewDatabaseHealthCheck ¶
func NewDatabaseHealthCheck(name string, db *sql.DB) *DatabaseHealthCheck
NewDatabaseHealthCheck creates a new database health check
func (*DatabaseHealthCheck) Check ¶
func (h *DatabaseHealthCheck) Check(ctx context.Context) HealthResult
func (*DatabaseHealthCheck) Name ¶
func (h *DatabaseHealthCheck) Name() string
type DiskSpaceHealthCheck ¶
type DiskSpaceHealthCheck struct {
// contains filtered or unexported fields
}
DiskSpaceHealthCheck checks disk space
func NewDiskSpaceHealthCheck ¶
func NewDiskSpaceHealthCheck(name, path string, minFreePercent float64) *DiskSpaceHealthCheck
NewDiskSpaceHealthCheck creates a new disk space health check
func (*DiskSpaceHealthCheck) Check ¶
func (h *DiskSpaceHealthCheck) Check(ctx context.Context) HealthResult
func (*DiskSpaceHealthCheck) Name ¶
func (h *DiskSpaceHealthCheck) Name() string
type HTTPHealthCheck ¶
type HTTPHealthCheck struct {
// contains filtered or unexported fields
}
HTTPHealthCheck checks external HTTP services
func NewHTTPHealthCheck ¶
func NewHTTPHealthCheck(name, url string, expectedStatus int) *HTTPHealthCheck
NewHTTPHealthCheck creates a new HTTP service health check
func (*HTTPHealthCheck) Check ¶
func (h *HTTPHealthCheck) Check(ctx context.Context) HealthResult
func (*HTTPHealthCheck) Name ¶
func (h *HTTPHealthCheck) Name() string
type HealthCheck ¶
type HealthCheck interface { Name() string Check(ctx context.Context) HealthResult }
HealthCheck represents a health check
type HealthResult ¶
type HealthResult struct { Healthy bool `json:"healthy"` Message string `json:"message"` Latency time.Duration `json:"latency"` Details map[string]interface{} `json:"details,omitempty"` }
HealthResult represents the result of a health check
type MemoryHealthCheck ¶
type MemoryHealthCheck struct {
// contains filtered or unexported fields
}
MemoryHealthCheck checks memory usage
func NewMemoryHealthCheck ¶
func NewMemoryHealthCheck(name string, maxMemoryPercent float64) *MemoryHealthCheck
NewMemoryHealthCheck creates a new memory health check
func (*MemoryHealthCheck) Check ¶
func (h *MemoryHealthCheck) Check(ctx context.Context) HealthResult
func (*MemoryHealthCheck) Name ¶
func (h *MemoryHealthCheck) Name() string
type MetricsCollector ¶
type MetricsCollector struct {
// contains filtered or unexported fields
}
MetricsCollector provides OpenTelemetry metrics collection
func NewMetricsCollector ¶
func NewMetricsCollector(config MetricsConfig, logger logger.Logger) (*MetricsCollector, error)
NewMetricsCollector creates a new metrics collector
func (*MetricsCollector) DecHTTPRequestsInFlight ¶
func (mc *MetricsCollector) DecHTTPRequestsInFlight(ctx context.Context)
func (*MetricsCollector) GetMeter ¶
func (mc *MetricsCollector) GetMeter() metric.Meter
GetMeter returns the OpenTelemetry meter for custom metrics
func (*MetricsCollector) IncHTTPRequestsInFlight ¶
func (mc *MetricsCollector) IncHTTPRequestsInFlight(ctx context.Context)
func (*MetricsCollector) RecordBusinessEvent ¶
func (mc *MetricsCollector) RecordBusinessEvent(ctx context.Context, eventType string, labels map[string]string)
Business Event Metrics
func (*MetricsCollector) RecordCacheHit ¶
func (mc *MetricsCollector) RecordCacheHit(ctx context.Context, cacheType string)
Cache Metrics
func (*MetricsCollector) RecordCacheMiss ¶
func (mc *MetricsCollector) RecordCacheMiss(ctx context.Context, cacheType string)
func (*MetricsCollector) RecordDatabaseConnection ¶
func (mc *MetricsCollector) RecordDatabaseConnection(ctx context.Context, delta int64)
Database Metrics
func (*MetricsCollector) RecordError ¶
func (mc *MetricsCollector) RecordError(ctx context.Context, errorType string, component string)
Error Metrics
func (*MetricsCollector) RecordHTTPRequest ¶
func (mc *MetricsCollector) RecordHTTPRequest(ctx context.Context, method, path string, statusCode int, duration time.Duration)
HTTP Metrics
type MetricsConfig ¶
type MetricsConfig struct { ServiceName string ServiceVersion string Environment string Enabled bool }
MetricsConfig holds configuration for metrics
type ObservabilityMiddleware ¶
type ObservabilityMiddleware struct {
// contains filtered or unexported fields
}
ObservabilityMiddleware provides observability middleware
func NewObservabilityMiddleware ¶
func NewObservabilityMiddleware(config Config, logger logger.Logger) (*ObservabilityMiddleware, error)
NewObservabilityMiddleware creates a new observability middleware
func (*ObservabilityMiddleware) BusinessMetrics ¶
func (om *ObservabilityMiddleware) BusinessMetrics() gin.HandlerFunc
BusinessMetrics middleware records business-specific metrics
func (*ObservabilityMiddleware) GetMetricsCollector ¶
func (om *ObservabilityMiddleware) GetMetricsCollector() *MetricsCollector
GetMetricsCollector returns the metrics collector for additional custom metrics
func (*ObservabilityMiddleware) Logging ¶
func (om *ObservabilityMiddleware) Logging(logger logger.Logger) gin.HandlerFunc
Logging middleware provides structured logging for HTTP requests
func (*ObservabilityMiddleware) Metrics ¶
func (om *ObservabilityMiddleware) Metrics() gin.HandlerFunc
Metrics middleware records HTTP metrics
func (*ObservabilityMiddleware) Tracing ¶
func (om *ObservabilityMiddleware) Tracing() gin.HandlerFunc
Tracing middleware provides distributed tracing
type RedisHealthCheck ¶
type RedisHealthCheck struct {
// contains filtered or unexported fields
}
RedisHealthCheck checks Redis connectivity
func NewRedisHealthCheck ¶
func NewRedisHealthCheck(name string, client redis.UniversalClient) *RedisHealthCheck
NewRedisHealthCheck creates a new Redis health check
func (*RedisHealthCheck) Check ¶
func (h *RedisHealthCheck) Check(ctx context.Context) HealthResult
func (*RedisHealthCheck) Name ¶
func (h *RedisHealthCheck) Name() string
type SimpleObservabilityMiddleware ¶
type SimpleObservabilityMiddleware struct {
// contains filtered or unexported fields
}
SimpleObservabilityMiddleware provides basic observability without OpenTelemetry
func NewSimpleObservabilityMiddleware ¶
func NewSimpleObservabilityMiddleware(config Config, logger logger.Logger) *SimpleObservabilityMiddleware
NewSimpleObservabilityMiddleware creates a basic observability middleware
func (*SimpleObservabilityMiddleware) BusinessMetrics ¶
func (som *SimpleObservabilityMiddleware) BusinessMetrics() gin.HandlerFunc
BusinessMetrics middleware records business-specific metrics
func (*SimpleObservabilityMiddleware) Logging ¶
func (som *SimpleObservabilityMiddleware) Logging(logger logger.Logger) gin.HandlerFunc
Logging middleware provides structured logging for HTTP requests
func (*SimpleObservabilityMiddleware) Metrics ¶
func (som *SimpleObservabilityMiddleware) Metrics() gin.HandlerFunc
Metrics middleware records basic HTTP metrics (simplified)
func (*SimpleObservabilityMiddleware) Tracing ¶
func (som *SimpleObservabilityMiddleware) Tracing() gin.HandlerFunc
Tracing middleware provides basic request tracing (simplified without OpenTelemetry)