metrics

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package metrics provides enterprise-grade metrics collection using Prometheus.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RecordBusinessOperation

func RecordBusinessOperation(operation, status, service string, duration time.Duration)

RecordBusinessOperation records business operation using global metrics.

func RecordError

func RecordError(errorType, code, severity, service string)

RecordError records error using global metrics.

func RecordHTTPRequest

func RecordHTTPRequest(method, path, status, service string, duration time.Duration, responseSize int)

RecordHTTPRequest records HTTP request using global metrics.

func SetGlobalMetrics

func SetGlobalMetrics(metrics *ApplicationMetrics)

SetGlobalMetrics sets the global metrics instance.

Types

type ApplicationMetrics

type ApplicationMetrics struct {
	// HTTP Metrics
	HTTPRequestsTotal     *prometheus.CounterVec
	HTTPRequestDuration   *prometheus.HistogramVec
	HTTPResponseSizeBytes *prometheus.HistogramVec
	HTTPRequestSizeBytes  *prometheus.HistogramVec

	// Database Metrics
	DatabaseConnectionsActive   prometheus.Gauge
	DatabaseConnectionsIdle     prometheus.Gauge
	DatabaseConnectionsTotal    prometheus.Counter
	DatabaseQueryDuration       *prometheus.HistogramVec
	DatabaseTransactionDuration *prometheus.HistogramVec

	// Business Metrics
	BusinessOperationsTotal     *prometheus.CounterVec
	BusinessOperationDuration   *prometheus.HistogramVec
	BusinessRuleViolationsTotal *prometheus.CounterVec

	// System Metrics
	GoroutinesActive prometheus.Gauge
	MemoryUsageBytes prometheus.Gauge
	CPUUsagePercent  prometheus.Gauge

	// Error Metrics
	ErrorsTotal          *prometheus.CounterVec
	PanicRecoveriesTotal prometheus.Counter

	// Circuit Breaker Metrics
	CircuitBreakerStateChanges   *prometheus.CounterVec
	CircuitBreakerRequestsTotal  *prometheus.CounterVec
	CircuitBreakerFallbacksTotal *prometheus.CounterVec

	// Rate Limiting Metrics
	RateLimitExceededTotal   *prometheus.CounterVec
	RateLimitCurrentRequests *prometheus.GaugeVec

	// Cache Metrics
	CacheOperationsTotal *prometheus.CounterVec
	CacheHitRatio        *prometheus.GaugeVec
	CacheSizeBytes       *prometheus.GaugeVec

	// Queue Metrics
	QueueSizeTotal          *prometheus.GaugeVec
	QueueProcessingDuration *prometheus.HistogramVec
	QueueFailuresTotal      *prometheus.CounterVec

	// Custom Metrics
	CustomCounters   map[string]*prometheus.CounterVec
	CustomGauges     map[string]*prometheus.GaugeVec
	CustomHistograms map[string]*prometheus.HistogramVec
	// contains filtered or unexported fields
}

ApplicationMetrics provides enterprise application metrics.

func GetGlobalMetrics

func GetGlobalMetrics() *ApplicationMetrics

GetGlobalMetrics returns the global metrics instance.

func NewApplicationMetrics

func NewApplicationMetrics(namespace, service string) *ApplicationMetrics

NewApplicationMetrics creates new application metrics.

func (*ApplicationMetrics) CreateCustomCounter

func (am *ApplicationMetrics) CreateCustomCounter(name, help string, labels []string) *prometheus.CounterVec

CreateCustomCounter creates a custom counter metric.

func (*ApplicationMetrics) CreateCustomGauge

func (am *ApplicationMetrics) CreateCustomGauge(name, help string, labels []string) *prometheus.GaugeVec

CreateCustomGauge creates a custom gauge metric.

func (*ApplicationMetrics) CreateCustomHistogram

func (am *ApplicationMetrics) CreateCustomHistogram(name, help string, labels []string, buckets []float64) *prometheus.HistogramVec

CreateCustomHistogram creates a custom histogram metric.

func (*ApplicationMetrics) GinMiddleware added in v0.1.3

func (am *ApplicationMetrics) GinMiddleware(service string) gin.HandlerFunc

GinMiddleware provides Gin-compatible HTTP metrics middleware.

func (*ApplicationMetrics) HTTPMiddleware

func (am *ApplicationMetrics) HTTPMiddleware(service string) func(http.Handler) http.Handler

HTTPMiddleware provides HTTP metrics middleware.

func (*ApplicationMetrics) RecordBusinessOperation

func (am *ApplicationMetrics) RecordBusinessOperation(operation, status, service string, duration time.Duration)

RecordBusinessOperation records business operation metrics.

func (*ApplicationMetrics) RecordBusinessRuleViolation

func (am *ApplicationMetrics) RecordBusinessRuleViolation(rule, service string)

RecordBusinessRuleViolation records business rule violation.

func (*ApplicationMetrics) RecordCacheOperation

func (am *ApplicationMetrics) RecordCacheOperation(operation, status, cacheName, service string)

RecordCacheOperation records cache operation.

func (*ApplicationMetrics) RecordCircuitBreakerFallback

func (am *ApplicationMetrics) RecordCircuitBreakerFallback(name, service string)

RecordCircuitBreakerFallback records circuit breaker fallback.

func (*ApplicationMetrics) RecordCircuitBreakerRequest

func (am *ApplicationMetrics) RecordCircuitBreakerRequest(name, status, service string)

RecordCircuitBreakerRequest records circuit breaker request.

func (*ApplicationMetrics) RecordCircuitBreakerStateChange

func (am *ApplicationMetrics) RecordCircuitBreakerStateChange(name, fromState, toState, service string)

RecordCircuitBreakerStateChange records circuit breaker state change.

func (*ApplicationMetrics) RecordDBConnection

func (am *ApplicationMetrics) RecordDBConnection(active, idle int)

RecordDBConnection records database connection metrics.

func (*ApplicationMetrics) RecordDBQuery

func (am *ApplicationMetrics) RecordDBQuery(operation, table, service string, duration time.Duration)

RecordDBQuery records database query metrics.

func (*ApplicationMetrics) RecordDBTransaction

func (am *ApplicationMetrics) RecordDBTransaction(operation, service string, duration time.Duration)

RecordDBTransaction records database transaction metrics.

func (*ApplicationMetrics) RecordError

func (am *ApplicationMetrics) RecordError(errorType, code, severity, service string)

RecordError records error metrics.

func (*ApplicationMetrics) RecordPanicRecovery

func (am *ApplicationMetrics) RecordPanicRecovery()

RecordPanicRecovery records panic recovery.

func (*ApplicationMetrics) RecordQueueFailure

func (am *ApplicationMetrics) RecordQueueFailure(queueName, errorType, service string)

RecordQueueFailure records queue processing failure.

func (*ApplicationMetrics) RecordQueueProcessing

func (am *ApplicationMetrics) RecordQueueProcessing(queueName, service string, duration time.Duration)

RecordQueueProcessing records queue message processing.

func (*ApplicationMetrics) RecordRateLimitExceeded

func (am *ApplicationMetrics) RecordRateLimitExceeded(identifier, service string)

RecordRateLimitExceeded records rate limit exceeded event.

func (*ApplicationMetrics) UpdateCacheHitRatio

func (am *ApplicationMetrics) UpdateCacheHitRatio(cacheName, service string, ratio float64)

UpdateCacheHitRatio updates cache hit ratio.

func (*ApplicationMetrics) UpdateCacheSize

func (am *ApplicationMetrics) UpdateCacheSize(cacheName, service string, sizeBytes int64)

UpdateCacheSize updates cache size.

func (*ApplicationMetrics) UpdateQueueSize

func (am *ApplicationMetrics) UpdateQueueSize(queueName, service string, size int)

UpdateQueueSize updates queue size.

func (*ApplicationMetrics) UpdateRateLimitCurrentRequests

func (am *ApplicationMetrics) UpdateRateLimitCurrentRequests(identifier, service string, count int)

UpdateRateLimitCurrentRequests updates current requests in rate limit window.

func (*ApplicationMetrics) UpdateSystemMetrics

func (am *ApplicationMetrics) UpdateSystemMetrics(goroutines int, memoryBytes int64, cpuPercent float64)

UpdateSystemMetrics updates system metrics.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages metrics collection and exposure.

func NewManager

func NewManager(cfg config.MetricsConfig, logger *zap.Logger) *Manager

NewManager creates a new metrics manager.

func (*Manager) Handler

func (m *Manager) Handler() http.Handler

Handler returns an HTTP handler for exposing metrics.

func (*Manager) RegisterCollector

func (m *Manager) RegisterCollector(name string, collector prometheus.Collector) error

RegisterCollector registers a custom collector.

func (*Manager) Shutdown

func (m *Manager) Shutdown(ctx context.Context) error

Shutdown gracefully shuts down the metrics manager.

func (*Manager) UnregisterCollector

func (m *Manager) UnregisterCollector(name string) bool

UnregisterCollector unregisters a collector.

Jump to

Keyboard shortcuts

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