Files
2026-05-12 18:49:52 +08:00

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"})
)