metrics

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MeasureDBQuery

func MeasureDBQuery(m *Metrics, operation, backend string) func()

MeasureDBQuery wraps a database operation with timing instrumentation. Usage:

defer metrics.MeasureDBQuery(m, "get_product", "postgres")()

Or with explicit start time:

start := time.Now()
// ... do database work ...
metrics.RecordDBQuery(m, "get_product", "postgres", time.Since(start))

func RecordDBQuery

func RecordDBQuery(m *Metrics, operation, backend string, duration time.Duration)

RecordDBQuery records a database query duration directly (when timing is already captured).

Types

type Metrics

type Metrics struct {
	// Payment metrics
	PaymentsTotal        *prometheus.CounterVec
	PaymentsSuccessTotal *prometheus.CounterVec
	PaymentsFailedTotal  *prometheus.CounterVec
	PaymentAmountTotal   *prometheus.CounterVec
	PaymentDuration      *prometheus.HistogramVec
	SettlementDuration   *prometheus.HistogramVec

	// RPC call metrics
	RPCCallsTotal   *prometheus.CounterVec
	RPCCallDuration *prometheus.HistogramVec
	RPCErrorsTotal  *prometheus.CounterVec

	// Cart metrics
	CartCheckoutsTotal *prometheus.CounterVec
	CartItemsTotal     prometheus.Counter
	CartAverageValue   prometheus.Gauge

	// Refund metrics
	RefundsTotal      *prometheus.CounterVec
	RefundAmountTotal *prometheus.CounterVec
	RefundDuration    *prometheus.HistogramVec

	// Webhook metrics
	WebhooksTotal       *prometheus.CounterVec
	WebhookRetriesTotal *prometheus.CounterVec
	WebhookDLQTotal     *prometheus.CounterVec
	WebhookDuration     *prometheus.HistogramVec

	// Rate limiting metrics
	RateLimitHitsTotal *prometheus.CounterVec

	// Database metrics
	DBQueryDuration     *prometheus.HistogramVec
	DBConnectionsActive prometheus.Gauge

	// System metrics
	ArchivalRunsTotal      prometheus.Counter
	ArchivalRecordsDeleted prometheus.Counter
}

Metrics holds all Prometheus metrics for Cedros Pay.

func New

func New(registry prometheus.Registerer) *Metrics

New creates and registers all Prometheus metrics.

func (*Metrics) ObserveArchival

func (m *Metrics) ObserveArchival(recordsDeleted int64)

ObserveArchival records an archival run.

func (*Metrics) ObserveCartCheckout

func (m *Metrics) ObserveCartCheckout(status string, itemCount int)

ObserveCartCheckout records a cart checkout.

func (*Metrics) ObserveDBQuery

func (m *Metrics) ObserveDBQuery(operation, backend string, duration time.Duration)

ObserveDBQuery records a database query.

func (*Metrics) ObservePayment

func (m *Metrics) ObservePayment(method, resource string, success bool, duration time.Duration, amountCents int64, token string)

ObservePayment records a payment attempt and its outcome.

func (*Metrics) ObservePaymentFailure

func (m *Metrics) ObservePaymentFailure(method, resource, reason string)

ObservePaymentFailure records a failed payment with reason.

func (*Metrics) ObserveRPCCall

func (m *Metrics) ObserveRPCCall(method, network string, duration time.Duration, err error)

ObserveRPCCall records an RPC call to the blockchain.

func (*Metrics) ObserveRateLimit

func (m *Metrics) ObserveRateLimit(limitType, identifier string)

ObserveRateLimit records a rate limit hit.

func (*Metrics) ObserveRefund

func (m *Metrics) ObserveRefund(status string, amountCents int64, token string, duration time.Duration, method string)

ObserveRefund records a refund operation.

func (*Metrics) ObserveSettlement

func (m *Metrics) ObserveSettlement(network string, duration time.Duration)

ObserveSettlement records blockchain settlement time.

func (*Metrics) ObserveWebhook

func (m *Metrics) ObserveWebhook(eventType, status string, duration time.Duration, attempt int, sentToDLQ bool)

ObserveWebhook records webhook delivery.

Jump to

Keyboard shortcuts

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