observability

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package observability provides metrics, logging, and health checks for GopherQueue.

Index

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.

Jump to

Keyboard shortcuts

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