github.com/cilium/cilium@v1.16.2/operator/pkg/lbipam/metrics.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package lbipam 5 6 import ( 7 "github.com/cilium/cilium/pkg/metrics" 8 "github.com/cilium/cilium/pkg/metrics/metric" 9 ) 10 11 type ipamMetrics struct { 12 ConflictingPools metric.Gauge 13 AvailableIPs metric.DeletableVec[metric.Gauge] 14 UsedIPs metric.DeletableVec[metric.Gauge] 15 MatchingServices metric.Gauge 16 UnsatisfiedServices metric.Gauge 17 } 18 19 func newMetrics() *ipamMetrics { 20 return &ipamMetrics{ 21 ConflictingPools: metric.NewGauge(metric.GaugeOpts{ 22 ConfigName: metrics.Namespace + "_lbipam_conflicting_pools_total", 23 Namespace: metrics.Namespace, 24 Subsystem: "lbipam", 25 Name: "conflicting_pools_total", 26 Help: "The number of conflicting pools", 27 }), 28 AvailableIPs: metric.NewGaugeVec(metric.GaugeOpts{ 29 ConfigName: metrics.Namespace + "_lbipam_ips_available_total", 30 Namespace: metrics.Namespace, 31 Subsystem: "lbipam", 32 Name: "ips_available_total", 33 Help: "The number of IP addresses available in a given pool", 34 }, []string{"pool"}), 35 UsedIPs: metric.NewGaugeVec(metric.GaugeOpts{ 36 ConfigName: metrics.Namespace + "_lbipam_ips_used_total", 37 Namespace: metrics.Namespace, 38 Subsystem: "lbipam", 39 Name: "ips_used_total", 40 Help: "The number of IP addresses used in a given pool", 41 }, []string{"pool"}), 42 MatchingServices: metric.NewGauge(metric.GaugeOpts{ 43 ConfigName: metrics.Namespace + "_lbipam_services_matching_total", 44 Namespace: metrics.Namespace, 45 Subsystem: "lbipam", 46 Name: "services_matching_total", 47 Help: "The number of services matching pools", 48 }), 49 UnsatisfiedServices: metric.NewGauge(metric.GaugeOpts{ 50 ConfigName: metrics.Namespace + "_lbipam_services_unsatisfied_total", 51 Namespace: metrics.Namespace, 52 Subsystem: "lbipam", 53 Name: "services_unsatisfied_total", 54 Help: "The number of services which did not receive all requested IPs", 55 }), 56 } 57 }