Skip to content

Commit 5a1c9b3

Browse files
committed
問題環境毎のReadinessを示すメトリクスを追加した
1 parent 6192143 commit 5a1c9b3

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

controllers/controller-manager/metrics_exporter.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,15 @@ var (
9999
},
100100
problemsMetricsLabels,
101101
)
102+
103+
problemEnvironmentMetricsLabels = []string{"namespace", "name"}
104+
problemEnvironmentsReady = prometheus.NewGaugeVec(
105+
prometheus.GaugeOpts{
106+
Namespace: namespace,
107+
Name: "problem_environments_ready",
108+
},
109+
problemEnvironmentMetricsLabels,
110+
)
102111
)
103112

104113
var _ manager.Runnable = &MetricsExporter{}
@@ -118,6 +127,7 @@ func (me *MetricsExporter) Start(ctx context.Context) error {
118127
problemEnvironmentsTotal,
119128
problemEnvironmentsReadyTotal,
120129
problemEnvironmentsAssignedTotal,
130+
problemEnvironmentsReady,
121131
} {
122132
if err := metrics.Registry.Register(collector); err != nil {
123133
return err
@@ -160,6 +170,7 @@ func (me *MetricsExporter) collect(ctx context.Context) error {
160170

161171
workersReady.Reset()
162172
workersSchedulable.Reset()
173+
workersScheduledProblemEnvironmentsTotal.Reset()
163174
for _, worker := range workers.Items {
164175
labels := []string{worker.Namespace, worker.Name}
165176

@@ -190,12 +201,17 @@ func (me *MetricsExporter) collect(ctx context.Context) error {
190201

191202
// Problems-related metrics
192203
problemsTotal.Set(float64(len(problems.Items)))
204+
problemsAssignableReplicasTotal.Reset()
193205
for _, problem := range problems.Items {
194206
labels := []string{problem.Namespace, problem.Name}
195207
problemsAssignableReplicasTotal.WithLabelValues(labels...).Set(float64(problem.Spec.AssignableReplicas))
196208
}
197209

198210
// ProblemEnvironments-related metrics
211+
problemEnvironmentsTotal.Reset()
212+
problemEnvironmentsReadyTotal.Reset()
213+
problemEnvironmentsAssignedTotal.Reset()
214+
problemEnvironmentsReady.Reset()
199215
for _, problem := range problems.Items {
200216
labels := []string{problem.Namespace, problem.Name}
201217

@@ -230,5 +246,20 @@ func (me *MetricsExporter) collect(ctx context.Context) error {
230246
problemEnvironmentsAssignedTotal.WithLabelValues(labels...).Set(float64(assignedTotal))
231247
}
232248

249+
for _, problemEnvironment := range problemEnvironments.Items {
250+
isReady := util.GetProblemEnvironmentCondition(
251+
&problemEnvironment,
252+
netconv1alpha1.ProblemEnvironmentConditionReady,
253+
) == metav1.ConditionTrue
254+
255+
labels := []string{problemEnvironment.Namespace, problemEnvironment.Name}
256+
if isReady {
257+
problemEnvironmentsReady.WithLabelValues(labels...).Set(float64(1))
258+
} else {
259+
problemEnvironmentsReady.WithLabelValues(labels...).Set(float64(0))
260+
}
261+
262+
}
263+
233264
return nil
234265
}

0 commit comments

Comments
 (0)