Documentation
¶
Overview ¶
Package metrics provides enterprise-grade metrics collection using Prometheus.
Index ¶
- func RecordBusinessOperation(operation, status, service string, duration time.Duration)
- func RecordError(errorType, code, severity, service string)
- func RecordHTTPRequest(method, path, status, service string, duration time.Duration, responseSize int)
- func SetGlobalMetrics(metrics *ApplicationMetrics)
- type ApplicationMetrics
- func (am *ApplicationMetrics) CreateCustomCounter(name, help string, labels []string) *prometheus.CounterVec
- func (am *ApplicationMetrics) CreateCustomGauge(name, help string, labels []string) *prometheus.GaugeVec
- func (am *ApplicationMetrics) CreateCustomHistogram(name, help string, labels []string, buckets []float64) *prometheus.HistogramVec
- func (am *ApplicationMetrics) GinMiddleware(service string) gin.HandlerFunc
- func (am *ApplicationMetrics) HTTPMiddleware(service string) func(http.Handler) http.Handler
- func (am *ApplicationMetrics) RecordBusinessOperation(operation, status, service string, duration time.Duration)
- func (am *ApplicationMetrics) RecordBusinessRuleViolation(rule, service string)
- func (am *ApplicationMetrics) RecordCacheOperation(operation, status, cacheName, service string)
- func (am *ApplicationMetrics) RecordCircuitBreakerFallback(name, service string)
- func (am *ApplicationMetrics) RecordCircuitBreakerRequest(name, status, service string)
- func (am *ApplicationMetrics) RecordCircuitBreakerStateChange(name, fromState, toState, service string)
- func (am *ApplicationMetrics) RecordDBConnection(active, idle int)
- func (am *ApplicationMetrics) RecordDBQuery(operation, table, service string, duration time.Duration)
- func (am *ApplicationMetrics) RecordDBTransaction(operation, service string, duration time.Duration)
- func (am *ApplicationMetrics) RecordError(errorType, code, severity, service string)
- func (am *ApplicationMetrics) RecordPanicRecovery()
- func (am *ApplicationMetrics) RecordQueueFailure(queueName, errorType, service string)
- func (am *ApplicationMetrics) RecordQueueProcessing(queueName, service string, duration time.Duration)
- func (am *ApplicationMetrics) RecordRateLimitExceeded(identifier, service string)
- func (am *ApplicationMetrics) UpdateCacheHitRatio(cacheName, service string, ratio float64)
- func (am *ApplicationMetrics) UpdateCacheSize(cacheName, service string, sizeBytes int64)
- func (am *ApplicationMetrics) UpdateQueueSize(queueName, service string, size int)
- func (am *ApplicationMetrics) UpdateRateLimitCurrentRequests(identifier, service string, count int)
- func (am *ApplicationMetrics) UpdateSystemMetrics(goroutines int, memoryBytes int64, cpuPercent float64)
- type Manager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RecordBusinessOperation ¶
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 ¶
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) RegisterCollector ¶
func (m *Manager) RegisterCollector(name string, collector prometheus.Collector) error
RegisterCollector registers a custom collector.
func (*Manager) UnregisterCollector ¶
UnregisterCollector unregisters a collector.