Skip to content

Commit 08196b5

Browse files
divyansh42tekton-robot
authored andcommitted
fix: exclude pending PipelineRuns from tekton_pipelines_controller_running_pipelineruns metric
The running_pipelineruns metric incorrectly counted pending PipelineRuns as running. Add !pr.IsPending() check to exclude them. Fixes #8949 Signed-off-by: divyansh42 <[email protected]>
1 parent 665a03b commit 08196b5

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

pkg/pipelinerunmetrics/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ func (r *Recorder) RunningPipelineRuns(lister listers.PipelineRunLister) error {
412412
if err_ != nil {
413413
return err
414414
}
415-
if !pr.IsDone() {
415+
if !pr.IsDone() && !pr.IsPending() {
416416
countMap[pipelineRunKey]++
417417
metrics.Record(ctx_, runningPRs.M(float64(countMap[pipelineRunKey])))
418418
runningPipelineRuns++

pkg/pipelinerunmetrics/metrics_test.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -544,9 +544,12 @@ func TestRecordPipelineRunDurationCount(t *testing.T) {
544544
func TestRecordRunningPipelineRunsCount(t *testing.T) {
545545
unregisterMetrics()
546546

547-
newPipelineRun := func(status corev1.ConditionStatus) *v1.PipelineRun {
547+
newPipelineRun := func(status corev1.ConditionStatus, specStatus v1.PipelineRunSpecStatus) *v1.PipelineRun {
548548
return &v1.PipelineRun{
549549
ObjectMeta: metav1.ObjectMeta{Name: names.SimpleNameGenerator.RestrictLengthWithRandomSuffix("pipelinerun-")},
550+
Spec: v1.PipelineRunSpec{
551+
Status: specStatus,
552+
},
550553
Status: v1.PipelineRunStatus{
551554
Status: duckv1.Status{
552555
Conditions: duckv1.Conditions{{
@@ -561,13 +564,18 @@ func TestRecordRunningPipelineRunsCount(t *testing.T) {
561564
ctx, _ := ttesting.SetupFakeContext(t)
562565
informer := fakepipelineruninformer.Get(ctx)
563566
// Add N randomly-named PipelineRuns with differently-succeeded statuses.
564-
for _, tr := range []*v1.PipelineRun{
565-
newPipelineRun(corev1.ConditionTrue),
566-
newPipelineRun(corev1.ConditionUnknown),
567-
newPipelineRun(corev1.ConditionFalse),
567+
for _, pr := range []*v1.PipelineRun{
568+
// Completed PipelineRun - should NOT be counted as running
569+
newPipelineRun(corev1.ConditionTrue, ""),
570+
// Actually running PipelineRun - should be counted as running
571+
newPipelineRun(corev1.ConditionUnknown, ""),
572+
// Pending PipelineRun - should NOT be counted as running
573+
newPipelineRun(corev1.ConditionUnknown, v1.PipelineRunSpecStatusPending),
574+
// Failed PipelineRun - should NOT be counted as running
575+
newPipelineRun(corev1.ConditionFalse, ""),
568576
} {
569-
if err := informer.Informer().GetIndexer().Add(tr); err != nil {
570-
t.Fatalf("Adding TaskRun to informer: %v", err)
577+
if err := informer.Informer().GetIndexer().Add(pr); err != nil {
578+
t.Fatalf("Adding PipelineRun to informer: %v", err)
571579
}
572580
}
573581

0 commit comments

Comments
 (0)