metrics

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Metrics

type Metrics struct {

	// Build info
	BuildInfo *prometheus.GaugeVec

	// Report processing metrics
	ReportsFetched     prometheus.Counter
	ReportsParsed      prometheus.Counter
	ReportsStored      prometheus.Counter
	ReportParseErrors  prometheus.Counter
	ReportStoreErrors  prometheus.Counter
	AttachmentsTotal   prometheus.Counter
	FetchDuration      prometheus.Histogram
	LastFetchTimestamp prometheus.Gauge
	FetchCyclesTotal   prometheus.Counter
	FetchErrors        prometheus.Counter

	// IMAP connection metrics
	IMAPConnectionsTotal   *prometheus.CounterVec
	IMAPConnectionDuration prometheus.Histogram

	// DMARC statistics (gauges that reflect current state)
	TotalReports      prometheus.Gauge
	TotalMessages     prometheus.Gauge
	CompliantMessages prometheus.Gauge
	ComplianceRate    prometheus.Gauge
	UniqueSourceIPs   prometheus.Gauge
	UniqueDomains     prometheus.Gauge

	// Per-domain metrics
	MessagesByDomain      *prometheus.GaugeVec
	ComplianceByDomain    *prometheus.GaugeVec
	ReportsByOrg          *prometheus.GaugeVec
	MessagesByDisposition *prometheus.GaugeVec

	// Authentication results
	SPFResults  *prometheus.GaugeVec
	DKIMResults *prometheus.GaugeVec

	// HTTP server metrics
	HTTPRequestsTotal    *prometheus.CounterVec
	HTTPRequestDuration  *prometheus.HistogramVec
	HTTPRequestsInFlight prometheus.Gauge
	// contains filtered or unexported fields
}

Metrics holds all Prometheus metrics for the application

func New

func New(version, commit, buildDate string) *Metrics

New creates and registers all Prometheus metrics

func (*Metrics) HTTPMiddleware

func (m *Metrics) HTTPMiddleware(next http.Handler) http.Handler

HTTPMiddleware wraps an HTTP handler with metrics instrumentation

func (*Metrics) Handler

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

Handler returns the Prometheus HTTP handler

func (*Metrics) RecordFetchDuration

func (m *Metrics) RecordFetchDuration(duration time.Duration)

RecordFetchDuration records the duration of a fetch operation

func (*Metrics) RecordIMAPConnection

func (m *Metrics) RecordIMAPConnection(success bool, duration time.Duration)

RecordIMAPConnection records an IMAP connection attempt

func (*Metrics) UpdateAuthResults

func (m *Metrics) UpdateAuthResults(spfResults, dkimResults map[string]int)

UpdateAuthResults updates SPF and DKIM result counts

func (*Metrics) UpdateDispositionMetrics

func (m *Metrics) UpdateDispositionMetrics(disposition string, count int)

UpdateDispositionMetrics updates disposition counts

func (*Metrics) UpdateDomainMetrics

func (m *Metrics) UpdateDomainMetrics(domain string, messages int, complianceRate float64)

UpdateDomainMetrics updates per-domain metrics

func (*Metrics) UpdateOrgMetrics

func (m *Metrics) UpdateOrgMetrics(orgName string, reports int)

UpdateOrgMetrics updates per-organization metrics

func (*Metrics) UpdateStatistics

func (m *Metrics) UpdateStatistics(totalReports, totalMessages, compliantMessages, uniqueIPs, uniqueDomains int, complianceRate float64)

UpdateStatistics updates the DMARC statistics gauges

Jump to

Keyboard shortcuts

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