metrics

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 2, 2026 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Overview

Package metrics provides Prometheus metrics collection for the proxy.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Request metrics
	RequestsTotal = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_requests_total",
			Help: "Total number of requests by ecosystem and status",
		},
		[]string{"ecosystem", "status"},
	)

	RequestDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "proxy_request_duration_seconds",
			Help:    "Request duration in seconds",
			Buckets: prometheus.DefBuckets,
		},
		[]string{"ecosystem", "status"},
	)

	// Cache metrics
	CacheHits = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_cache_hits_total",
			Help: "Total number of cache hits by ecosystem",
		},
		[]string{"ecosystem"},
	)

	CacheMisses = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_cache_misses_total",
			Help: "Total number of cache misses by ecosystem",
		},
		[]string{"ecosystem"},
	)

	CacheSize = prometheus.NewGauge(
		prometheus.GaugeOpts{
			Name: "proxy_cache_size_bytes",
			Help: "Total size of cached artifacts in bytes",
		},
	)

	CachedArtifacts = prometheus.NewGauge(
		prometheus.GaugeOpts{
			Name: "proxy_cached_artifacts_total",
			Help: "Total number of cached artifacts",
		},
	)

	// Upstream metrics
	UpstreamFetchDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "proxy_upstream_fetch_duration_seconds",
			Help:    "Upstream fetch duration in seconds",
			Buckets: []float64{.1, .25, .5, 1, 2.5, 5, 10, 30},
		},
		[]string{"ecosystem"},
	)

	UpstreamErrors = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_upstream_errors_total",
			Help: "Total number of upstream fetch errors by type",
		},
		[]string{"ecosystem", "error_type"},
	)

	// Circuit breaker metrics
	CircuitBreakerState = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: "proxy_circuit_breaker_state",
			Help: "Circuit breaker state (0=closed, 1=half-open, 2=open)",
		},
		[]string{"registry"},
	)

	CircuitBreakerTrips = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_circuit_breaker_trips_total",
			Help: "Total number of circuit breaker trips",
		},
		[]string{"registry"},
	)

	// Storage metrics
	StorageOperationDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "proxy_storage_operation_duration_seconds",
			Help:    "Storage operation duration in seconds",
			Buckets: []float64{.001, .005, .01, .025, .05, .1, .25, .5, 1},
		},
		[]string{"operation"},
	)

	StorageErrors = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "proxy_storage_errors_total",
			Help: "Total number of storage errors by operation",
		},
		[]string{"operation"},
	)

	// Active requests
	ActiveRequests = prometheus.NewGauge(
		prometheus.GaugeOpts{
			Name: "proxy_active_requests",
			Help: "Number of currently active requests",
		},
	)
)

Functions

func DecrementActiveRequests

func DecrementActiveRequests()

DecrementActiveRequests decrements the active request counter.

func Handler

func Handler() http.Handler

Handler returns an HTTP handler for the Prometheus /metrics endpoint.

func IncrementActiveRequests

func IncrementActiveRequests()

IncrementActiveRequests increments the active request counter.

func RecordCacheHit

func RecordCacheHit(ecosystem string)

RecordCacheHit increments cache hit counter.

func RecordCacheMiss

func RecordCacheMiss(ecosystem string)

RecordCacheMiss increments cache miss counter.

func RecordCircuitBreakerTrip

func RecordCircuitBreakerTrip(registry string)

RecordCircuitBreakerTrip increments circuit breaker trip counter.

func RecordRequest

func RecordRequest(ecosystem string, status int, duration time.Duration)

RecordRequest tracks request metrics with timing.

func RecordStorageError

func RecordStorageError(operation string)

RecordStorageError increments storage error counter.

func RecordStorageOperation

func RecordStorageOperation(operation string, duration time.Duration)

RecordStorageOperation tracks storage operation duration.

func RecordUpstreamError

func RecordUpstreamError(ecosystem, errorType string)

RecordUpstreamError increments upstream error counter.

func RecordUpstreamFetch

func RecordUpstreamFetch(ecosystem string, duration time.Duration)

RecordUpstreamFetch tracks upstream fetch duration.

func UpdateCacheStats

func UpdateCacheStats(sizeBytes, artifactCount int64)

UpdateCacheStats updates cache size and artifact count gauges.

func UpdateCircuitBreakerState

func UpdateCircuitBreakerState(registry string, state int)

UpdateCircuitBreakerState updates circuit breaker state gauge. state: 0=closed, 1=half-open, 2=open

Types

This section is empty.

Jump to

Keyboard shortcuts

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