Documentation
¶
Overview ¶
Package observability provides metrics, logging, and health checks for GopherQueue.
Index ¶
- type ComponentHealth
- type HealthChecker
- type HealthStatus
- type Metrics
- type MetricsCollector
- type SimpleHealthChecker
- type SimpleMetrics
- func (m *SimpleMetrics) GetMetrics() *Metrics
- func (m *SimpleMetrics) RecordJobCompleted(jobType string, duration time.Duration, success bool)
- func (m *SimpleMetrics) RecordJobEnqueued(jobType string, priority int)
- func (m *SimpleMetrics) RecordJobRetry(jobType string, attempt int)
- func (m *SimpleMetrics) ServeHTTP(w http.ResponseWriter, r *http.Request)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComponentHealth ¶
type ComponentHealth struct {
Healthy bool `json:"healthy"`
Message string `json:"message,omitempty"`
Latency time.Duration `json:"latency,omitempty"`
}
ComponentHealth represents health of a single component.
type HealthChecker ¶
type HealthChecker interface {
// CheckHealth performs a health check.
CheckHealth(ctx context.Context) *HealthStatus
// ServeHTTP handles health check requests.
ServeHTTP(w http.ResponseWriter, r *http.Request)
}
HealthChecker provides health check endpoints.
type HealthStatus ¶
type HealthStatus struct {
Healthy bool `json:"healthy"`
Components map[string]*ComponentHealth `json:"components"`
Timestamp time.Time `json:"timestamp"`
}
HealthStatus contains health check results.
type Metrics ¶
type Metrics struct {
// Job metrics
JobsEnqueued int64 `json:"jobs_enqueued"`
JobsCompleted int64 `json:"jobs_completed"`
JobsFailed int64 `json:"jobs_failed"`
JobsRetried int64 `json:"jobs_retried"`
JobsByType map[string]int64 `json:"jobs_by_type"`
// Latency metrics
AvgProcessingTime time.Duration `json:"avg_processing_time"`
MaxProcessingTime time.Duration `json:"max_processing_time"`
// Queue metrics
QueueDepth int64 `json:"queue_depth"`
// System metrics
Uptime time.Duration `json:"uptime"`
Timestamp time.Time `json:"timestamp"`
}
Metrics contains all system metrics.
type MetricsCollector ¶
type MetricsCollector interface {
// RecordJobEnqueued records a job being enqueued.
RecordJobEnqueued(jobType string, priority int)
// RecordJobCompleted records a job completion.
RecordJobCompleted(jobType string, duration time.Duration, success bool)
// RecordJobRetry records a job retry.
RecordJobRetry(jobType string, attempt int)
// GetMetrics returns current metrics.
GetMetrics() *Metrics
// ServeHTTP handles metrics requests.
ServeHTTP(w http.ResponseWriter, r *http.Request)
}
MetricsCollector collects and exposes system metrics.
type SimpleHealthChecker ¶
type SimpleHealthChecker struct {
// contains filtered or unexported fields
}
SimpleHealthChecker is a basic health checker implementation.
func NewSimpleHealthChecker ¶
func NewSimpleHealthChecker(store persistence.JobStore, sched scheduler.Scheduler, pool worker.WorkerPool) *SimpleHealthChecker
NewSimpleHealthChecker creates a new health checker.
func (*SimpleHealthChecker) CheckHealth ¶
func (h *SimpleHealthChecker) CheckHealth(ctx context.Context) *HealthStatus
CheckHealth performs a health check.
func (*SimpleHealthChecker) ServeHTTP ¶
func (h *SimpleHealthChecker) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP handles health check requests.
type SimpleMetrics ¶
type SimpleMetrics struct {
// contains filtered or unexported fields
}
SimpleMetrics is a basic metrics collector implementation.
func NewSimpleMetrics ¶
func NewSimpleMetrics() *SimpleMetrics
NewSimpleMetrics creates a new metrics collector.
func (*SimpleMetrics) GetMetrics ¶
func (m *SimpleMetrics) GetMetrics() *Metrics
GetMetrics returns current metrics.
func (*SimpleMetrics) RecordJobCompleted ¶
func (m *SimpleMetrics) RecordJobCompleted(jobType string, duration time.Duration, success bool)
RecordJobCompleted records a job completion.
func (*SimpleMetrics) RecordJobEnqueued ¶
func (m *SimpleMetrics) RecordJobEnqueued(jobType string, priority int)
RecordJobEnqueued records a job being enqueued.
func (*SimpleMetrics) RecordJobRetry ¶
func (m *SimpleMetrics) RecordJobRetry(jobType string, attempt int)
RecordJobRetry records a job retry.
func (*SimpleMetrics) ServeHTTP ¶
func (m *SimpleMetrics) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP handles metrics requests.