68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
| package metrics
 | |
| 
 | |
| import (
 | |
| 	"github.com/actions-runner-controller/actions-runner-controller/api/v1alpha1"
 | |
| 	"github.com/prometheus/client_golang/prometheus"
 | |
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	hraName      = "horizontalrunnerautoscaler"
 | |
| 	hraNamespace = "namespace"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	horizontalRunnerAutoscalerMetrics = []prometheus.Collector{
 | |
| 		horizontalRunnerAutoscalerMinReplicas,
 | |
| 		horizontalRunnerAutoscalerMaxReplicas,
 | |
| 		horizontalRunnerAutoscalerDesiredReplicas,
 | |
| 	}
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	horizontalRunnerAutoscalerMinReplicas = prometheus.NewGaugeVec(
 | |
| 		prometheus.GaugeOpts{
 | |
| 			Name: "horizontalrunnerautoscaler_spec_min_replicas",
 | |
| 			Help: "minReplicas of HorizontalRunnerAutoscaler",
 | |
| 		},
 | |
| 		[]string{hraName, hraNamespace},
 | |
| 	)
 | |
| 	horizontalRunnerAutoscalerMaxReplicas = prometheus.NewGaugeVec(
 | |
| 		prometheus.GaugeOpts{
 | |
| 			Name: "horizontalrunnerautoscaler_spec_max_replicas",
 | |
| 			Help: "maxReplicas of HorizontalRunnerAutoscaler",
 | |
| 		},
 | |
| 		[]string{hraName, hraNamespace},
 | |
| 	)
 | |
| 	horizontalRunnerAutoscalerDesiredReplicas = prometheus.NewGaugeVec(
 | |
| 		prometheus.GaugeOpts{
 | |
| 			Name: "horizontalrunnerautoscaler_status_desired_replicas",
 | |
| 			Help: "desiredReplicas of HorizontalRunnerAutoscaler",
 | |
| 		},
 | |
| 		[]string{hraName, hraNamespace},
 | |
| 	)
 | |
| )
 | |
| 
 | |
| func SetHorizontalRunnerAutoscalerSpec(o metav1.ObjectMeta, spec v1alpha1.HorizontalRunnerAutoscalerSpec) {
 | |
| 	labels := prometheus.Labels{
 | |
| 		hraName:      o.Name,
 | |
| 		hraNamespace: o.Namespace,
 | |
| 	}
 | |
| 	if spec.MaxReplicas != nil {
 | |
| 		horizontalRunnerAutoscalerMaxReplicas.With(labels).Set(float64(*spec.MaxReplicas))
 | |
| 	}
 | |
| 	if spec.MinReplicas != nil {
 | |
| 		horizontalRunnerAutoscalerMinReplicas.With(labels).Set(float64(*spec.MinReplicas))
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func SetHorizontalRunnerAutoscalerStatus(o metav1.ObjectMeta, status v1alpha1.HorizontalRunnerAutoscalerStatus) {
 | |
| 	labels := prometheus.Labels{
 | |
| 		hraName:      o.Name,
 | |
| 		hraNamespace: o.Namespace,
 | |
| 	}
 | |
| 	if status.DesiredReplicas != nil {
 | |
| 		horizontalRunnerAutoscalerDesiredReplicas.With(labels).Set(float64(*status.DesiredReplicas))
 | |
| 	}
 | |
| }
 |