82 lines
3.0 KiB
Go
82 lines
3.0 KiB
Go
package metrics
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promauto"
|
|
)
|
|
|
|
var (
|
|
// Probe metrics
|
|
ProbeEvaluationsTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_probe_evaluations_total",
|
|
Help: "Total number of probe evaluations",
|
|
}, []string{"platform", "classification"})
|
|
|
|
ProbeLatencySeconds = promauto.NewHistogramVec(prometheus.HistogramOpts{
|
|
Name: "supply_intelligence_probe_latency_seconds",
|
|
Help: "Probe evaluation latency",
|
|
Buckets: prometheus.DefBuckets,
|
|
}, []string{"platform"})
|
|
|
|
// Discovery metrics
|
|
DiscoveryScansTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_discovery_scans_total",
|
|
Help: "Total discovery scans",
|
|
}, []string{"platform", "status"})
|
|
|
|
DiscoveryNewModelsTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_discovery_new_models_total",
|
|
Help: "New models discovered",
|
|
}, []string{"platform"})
|
|
|
|
// Admission metrics
|
|
AdmissionTestsTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_admission_tests_total",
|
|
Help: "Total admission tests",
|
|
}, []string{"platform", "result"})
|
|
|
|
AdmissionLatencySeconds = promauto.NewHistogramVec(prometheus.HistogramOpts{
|
|
Name: "supply_intelligence_admission_latency_seconds",
|
|
Help: "Admission test duration",
|
|
Buckets: prometheus.DefBuckets,
|
|
}, []string{"platform"})
|
|
|
|
// Gateway metrics
|
|
GatewayEventsProcessedTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_gateway_events_processed_total",
|
|
Help: "Gateway events processed",
|
|
}, []string{"platform", "event_type", "result"})
|
|
|
|
GatewayEventLatencySeconds = promauto.NewHistogramVec(prometheus.HistogramOpts{
|
|
Name: "supply_intelligence_gateway_event_latency_seconds",
|
|
Help: "Gateway event processing latency",
|
|
Buckets: prometheus.DefBuckets,
|
|
}, []string{"platform"})
|
|
|
|
GatewayEventRetriesTotal = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "supply_intelligence_gateway_event_retries_total",
|
|
Help: "Gateway event retries scheduled",
|
|
}, []string{"platform", "category"})
|
|
|
|
GatewayPendingRetryEvents = promauto.NewGaugeVec(prometheus.GaugeOpts{
|
|
Name: "supply_intelligence_gateway_pending_retry_events",
|
|
Help: "Gateway pending retry events ready or scheduled for retry",
|
|
}, []string{"consumer"})
|
|
|
|
GatewayFailedEvents = promauto.NewGaugeVec(prometheus.GaugeOpts{
|
|
Name: "supply_intelligence_gateway_failed_events",
|
|
Help: "Gateway events in terminal failed state",
|
|
}, []string{"consumer"})
|
|
|
|
// Routing state metrics
|
|
AccountsByStatus = promauto.NewGaugeVec(prometheus.GaugeOpts{
|
|
Name: "supply_intelligence_accounts_by_status",
|
|
Help: "Number of accounts by status",
|
|
}, []string{"platform", "status"})
|
|
|
|
RoutingEnabledAccounts = promauto.NewGaugeVec(prometheus.GaugeOpts{
|
|
Name: "supply_intelligence_routing_enabled_accounts",
|
|
Help: "Number of accounts with routing enabled",
|
|
}, []string{"platform"})
|
|
)
|