Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions internal/sms-gateway/jwt/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import (

// Metric constants.
const (
metricsNamespace = "sms"
metricsSubsystem = "auth"

Comment thread
coderabbitai[bot] marked this conversation as resolved.
MetricTokensIssuedTotal = "jwt_tokens_issued_total" //nolint:gosec // false positive
MetricTokensValidatedTotal = "jwt_tokens_validated_total" //nolint:gosec // false positive
MetricTokensRevokedTotal = "jwt_tokens_revoked_total" //nolint:gosec // false positive
Expand Down Expand Up @@ -37,67 +40,64 @@ type Metrics struct {

// NewMetrics creates and initializes all JWT metrics.
func NewMetrics() *Metrics {
const namespace = "sms"
const subsystem = "auth"

var defBuckets = []float64{.0005, .001, .0025, .005, .01, .025, .05, .1, .25, .5, 1}

return &Metrics{
tokensIssuedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricTokensIssuedTotal,
Help: "Total number of JWT tokens issued",
}, []string{labelStatus}),

tokensValidatedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricTokensValidatedTotal,
Help: "Total number of JWT tokens validated",
}, []string{labelStatus}),

tokensRevokedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricTokensRevokedTotal,
Help: "Total number of JWT tokens revoked",
}, []string{labelStatus}),

tokensRefreshedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricTokensRefreshedTotal,
Help: "Total number of JWT tokens refreshed",
}, []string{labelStatus}),

issuanceDurationHistogram: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricIssuanceDurationSeconds,
Help: "JWT issuance duration in seconds",
Buckets: defBuckets,
}),

validationDurationHistogram: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricValidationDurationSeconds,
Help: "JWT validation duration in seconds",
Buckets: defBuckets,
}),

revocationDurationHistogram: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricRevocationDurationSeconds,
Help: "JWT revocation duration in seconds",
Buckets: defBuckets,
}),

refreshDurationHistogram: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricRefreshDurationSeconds,
Help: "JWT refresh duration in seconds",
Buckets: defBuckets,
Expand Down
18 changes: 9 additions & 9 deletions internal/sms-gateway/modules/events/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import (

// Metric constants.
const (
metricsNamespace = "sms"
metricsSubsystem = "events"

MetricEnqueuedTotal = "enqueued_total"
MetricSentTotal = "sent_total"
MetricFailedTotal = "failed_total"
Expand Down Expand Up @@ -35,25 +38,22 @@ type metrics struct {

// newMetrics creates and initializes all events metrics.
func newMetrics() *metrics {
const namespace = "sms"
const subsystem = "events"

return &metrics{
enqueuedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricEnqueuedTotal,
Help: "Total number of events enqueued",
}, []string{LabelEvent}),
sentCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricSentTotal,
Help: "Total number of events sent",
}, []string{LabelEvent, LabelDeliveryType}),
failedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricFailedTotal,
Help: "Total number of failed notifications",
}, []string{LabelEvent, LabelDeliveryType, LabelReason}),
Expand Down
22 changes: 11 additions & 11 deletions internal/sms-gateway/modules/push/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import (
type BlacklistOperation string

const (
metricsNamespace = "sms"
metricsSubsystem = "push"

BlacklistOperationAdded BlacklistOperation = "added"
BlacklistOperationSkipped BlacklistOperation = "skipped"
)
Expand All @@ -20,34 +23,31 @@ type metrics struct {
}

func newMetrics() *metrics {
const namespace = "sms"
const subsystem = "push"

return &metrics{
enqueuedCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "enqueued_total",
Help: "Total number of messages enqueued",
}, []string{"event"}),

retriesCounter: promauto.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "retries_total",
Help: "Total retry attempts",
}),

blacklistCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "blacklist_total",
Help: "Blacklist operations",
}, []string{"operation"}),

errorsCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "errors_total",
Help: "Total number of errors",
}, []string{}),
Expand Down
25 changes: 13 additions & 12 deletions internal/sms-gateway/modules/sse/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import (

// Metric constants.
const (
metricsNamespace = "sms"
metricsSubsystem = "sse"

MetricActiveConnections = "active_connections"
MetricEventsSent = "events_sent_total"
MetricConnectionErrors = "connection_errors_total"
Expand All @@ -33,39 +36,37 @@ type metrics struct {

// newMetrics creates and initializes all SSE metrics.
func newMetrics() *metrics {
const namespace = "sms"
const subsystem = "sse"
var defBuckets = []float64{1e-6, 5e-6, 1e-5, 5e-5, 1e-4, 5e-4, .001, .005, .01, .05, .1}

metrics := &metrics{
activeConnections: promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricActiveConnections,
Help: "Current number of active SSE connections",
}, []string{}),
eventsSent: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricEventsSent,
Help: "Total number of SSE events sent, labeled by event type",
}, []string{LabelEventType}),
connectionErrors: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricConnectionErrors,
Help: "Total number of SSE connection errors, labeled by error type",
}, []string{LabelErrorType}),
eventDeliveryLatency: promauto.NewHistogramVec(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricEventLatency,
Help: "Event delivery latency in seconds",
Buckets: defBuckets,
}, []string{}),
keepalivesSent: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: MetricKeepalivesSent,
Help: "Total keepalive messages sent",
}, []string{}),
Expand Down
29 changes: 15 additions & 14 deletions internal/sms-gateway/online/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import (

// Metric constants.
const (
metricsNamespace = "sms"
metricsSubsystem = "online"

metricStatusSetTotal = "status_set_total"
metricCacheOperations = "cache_operations_total"
metricCacheLatency = "cache_latency_seconds"
Expand Down Expand Up @@ -36,52 +39,50 @@ type metrics struct {

// newMetrics creates and initializes all online metrics.
func newMetrics() *metrics {
const namespace = "sms"
const subsystem = "online"
var memBuckets = []float64{1e-6, 5e-6, 1e-5, 5e-5, 1e-4, 5e-4, .001, .005, .01, .05, .1}
var dbBuckets = []float64{.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10}

return &metrics{
statusSetCounter: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricStatusSetTotal,
Help: "Total number of online status updates",
}, []string{labelStatus}),

cacheOperations: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricCacheOperations,
Help: "Total cache operations by type",
}, []string{labelOperation, labelStatus}),

cacheLatency: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricCacheLatency,
Help: "Cache operation latency in seconds",
Buckets: memBuckets,
}),

persistenceLatency: promauto.NewHistogram(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricPersistenceLatency,
Help: "Persistence operation latency in seconds",
Buckets: dbBuckets,
}),

persistenceErrors: promauto.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricPersistenceErrors,
Help: "Total persistence errors by type",
}),

batchSize: promauto.NewGauge(prometheus.GaugeOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: metricBatchSize,
Help: "Current batch size",
}),
Expand Down
18 changes: 9 additions & 9 deletions internal/worker/executor/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import (
type metricsTaskResult string

const (
metricsNamespace = "worker"
metricsSubsystem = "executor"

metricsTaskResultSuccess metricsTaskResult = "success"
metricsTaskResultError metricsTaskResult = "error"
)
Expand All @@ -21,27 +24,24 @@ type metrics struct {
}

func newMetrics() *metrics {
const namespace = "worker"
const subsystem = "executor"

var defBuckets = []float64{.01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10, 25}

return &metrics{
activeTasksCounter: promauto.NewGauge(prometheus.GaugeOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "active_tasks",
Help: "Number of active tasks",
}),
taskResult: promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "task_result_total",
Help: "Task result, labeled by task name and result",
}, []string{"task", "result"}),
taskDuration: promauto.NewHistogramVec(prometheus.HistogramOpts{
Namespace: namespace,
Subsystem: subsystem,
Namespace: metricsNamespace,
Subsystem: metricsSubsystem,
Name: "task_duration_seconds",
Help: "Task duration in seconds",
Buckets: defBuckets,
Expand Down
Loading