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  }