Skip to content

Commit 86f2045

Browse files
committed
Revert "Stop emitting deprecated metrics"
This reverts commit c4b6921.
1 parent c4b6921 commit 86f2045

File tree

5 files changed

+132
-3
lines changed

5 files changed

+132
-3
lines changed

docs/metrics.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,17 @@ We expose several kinds of exporters, including Prometheus, Google Stackdriver,
1515
|-----------------------------------------------------------------------------------------| ----------- |-------------------------------------------------| ----------- |
1616
| `tekton_pipelines_controller_pipelinerun_duration_seconds_[bucket, sum, count]` | Histogram/LastValue(Gauge) | `*pipeline`=&lt;pipeline_name&gt; <br> `*pipelinerun`=&lt;pipelinerun_name&gt; <br> `status`=&lt;status&gt; <br> `namespace`=&lt;pipelinerun-namespace&gt; | experimental |
1717
| `tekton_pipelines_controller_pipelinerun_taskrun_duration_seconds_[bucket, sum, count]` | Histogram/LastValue(Gauge) | `*pipeline`=&lt;pipeline_name&gt; <br> `*pipelinerun`=&lt;pipelinerun_name&gt; <br> `status`=&lt;status&gt; <br> `*task`=&lt;task_name&gt; <br> `*taskrun`=&lt;taskrun_name&gt;<br> `namespace`=&lt;pipelineruns-taskruns-namespace&gt; <br> `*reason`=&lt;reason&gt; | experimental |
18+
| `tekton_pipelines_controller_pipelinerun_count` | Counter | `status`=&lt;status&gt; <br> `*reason`=&lt;reason&gt; | deprecate |
1819
| `tekton_pipelines_controller_pipelinerun_total` | Counter | `status`=&lt;status&gt; | experimental |
20+
| `tekton_pipelines_controller_running_pipelineruns_count` | Gauge | | deprecate |
1921
| `tekton_pipelines_controller_running_pipelineruns` | Gauge | | experimental |
2022
| `tekton_pipelines_controller_taskrun_duration_seconds_[bucket, sum, count]` | Histogram/LastValue(Gauge) | `status`=&lt;status&gt; <br> `*task`=&lt;task_name&gt; <br> `*taskrun`=&lt;taskrun_name&gt;<br> `namespace`=&lt;pipelineruns-taskruns-namespace&gt; <br> `*reason`=&lt;reason&gt; | experimental |
23+
| `tekton_pipelines_controller_taskrun_count` | Counter | `status`=&lt;status&gt; <br> `*reason`=&lt;reason&gt; | deprecate |
2124
| `tekton_pipelines_controller_taskrun_total` | Counter | `status`=&lt;status&gt; | experimental |
25+
| `tekton_pipelines_controller_running_taskruns_count` | Gauge | | deprecate |
2226
| `tekton_pipelines_controller_running_taskruns` | Gauge | | experimental |
27+
| `tekton_pipelines_controller_running_taskruns_throttled_by_quota_count` | Gauge | <br> `namespace`=&lt;pipelinerun-namespace&gt; | deprecate |
28+
| `tekton_pipelines_controller_running_taskruns_throttled_by_node_count` | Gauge | <br> `namespace`=&lt;pipelinerun-namespace&gt; | deprecate |
2329
| `tekton_pipelines_controller_running_taskruns_throttled_by_quota` | Gauge | <br> `namespace`=&lt;pipelinerun-namespace&gt; | experimental |
2430
| `tekton_pipelines_controller_running_taskruns_throttled_by_node` | Gauge | <br> `namespace`=&lt;pipelinerun-namespace&gt; | experimental |
2531
| `tekton_pipelines_controller_client_latency_[bucket, sum, count]` | Histogram | | experimental |

pkg/pipelinerunmetrics/metrics.go

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,41 @@ var (
6161
stats.UnitDimensionless)
6262
prDurationView *view.View
6363

64+
prCount = stats.Float64("pipelinerun_count",
65+
"number of pipelineruns",
66+
stats.UnitDimensionless)
67+
prCountView *view.View
68+
6469
prTotal = stats.Float64("pipelinerun_total",
6570
"Number of pipelineruns",
6671
stats.UnitDimensionless)
6772
prTotalView *view.View
6873

74+
runningPRsCount = stats.Float64("running_pipelineruns_count",
75+
"Number of pipelineruns executing currently",
76+
stats.UnitDimensionless)
77+
runningPRsCountView *view.View
78+
6979
runningPRs = stats.Float64("running_pipelineruns",
7080
"Number of pipelineruns executing currently",
7181
stats.UnitDimensionless)
7282
runningPRsView *view.View
7383

84+
runningPRsWaitingOnPipelineResolutionCount = stats.Float64("running_pipelineruns_waiting_on_pipeline_resolution_count",
85+
"Number of pipelineruns executing currently that are waiting on resolution requests for their pipeline references.",
86+
stats.UnitDimensionless)
87+
runningPRsWaitingOnPipelineResolutionCountView *view.View
88+
7489
runningPRsWaitingOnPipelineResolution = stats.Float64("running_pipelineruns_waiting_on_pipeline_resolution",
7590
"Number of pipelineruns executing currently that are waiting on resolution requests for their pipeline references.",
7691
stats.UnitDimensionless)
7792
runningPRsWaitingOnPipelineResolutionView *view.View
7893

94+
runningPRsWaitingOnTaskResolutionCount = stats.Float64("running_pipelineruns_waiting_on_task_resolution_count",
95+
"Number of pipelineruns executing currently that are waiting on resolution requests for the task references of their taskrun children.",
96+
stats.UnitDimensionless)
97+
runningPRsWaitingOnTaskResolutionCountView *view.View
98+
7999
runningPRsWaitingOnTaskResolution = stats.Float64("running_pipelineruns_waiting_on_task_resolution",
80100
"Number of pipelineruns executing currently that are waiting on resolution requests for the task references of their taskrun children.",
81101
stats.UnitDimensionless)
@@ -181,7 +201,9 @@ func viewRegister(cfg *config.Metrics) error {
181201
}
182202
}
183203

204+
prCountViewTags := []tag.Key{statusTag}
184205
if cfg.CountWithReason {
206+
prCountViewTags = append(prCountViewTags, reasonTag)
185207
prunTag = append(prunTag, reasonTag)
186208
}
187209

@@ -192,26 +214,47 @@ func viewRegister(cfg *config.Metrics) error {
192214
TagKeys: append([]tag.Key{statusTag, namespaceTag}, prunTag...),
193215
}
194216

217+
prCountView = &view.View{
218+
Description: prCount.Description(),
219+
Measure: prCount,
220+
Aggregation: view.Count(),
221+
TagKeys: prCountViewTags,
222+
}
195223
prTotalView = &view.View{
196224
Description: prTotal.Description(),
197225
Measure: prTotal,
198226
Aggregation: view.Count(),
199227
TagKeys: []tag.Key{statusTag},
200228
}
201229

230+
runningPRsCountView = &view.View{
231+
Description: runningPRsCount.Description(),
232+
Measure: runningPRsCount,
233+
Aggregation: view.LastValue(),
234+
}
202235
runningPRsView = &view.View{
203236
Description: runningPRs.Description(),
204237
Measure: runningPRs,
205238
Aggregation: view.LastValue(),
206239
TagKeys: runningPRTag,
207240
}
208241

242+
runningPRsWaitingOnPipelineResolutionCountView = &view.View{
243+
Description: runningPRsWaitingOnPipelineResolutionCount.Description(),
244+
Measure: runningPRsWaitingOnPipelineResolutionCount,
245+
Aggregation: view.LastValue(),
246+
}
209247
runningPRsWaitingOnPipelineResolutionView = &view.View{
210248
Description: runningPRsWaitingOnPipelineResolution.Description(),
211249
Measure: runningPRsWaitingOnPipelineResolution,
212250
Aggregation: view.LastValue(),
213251
}
214252

253+
runningPRsWaitingOnTaskResolutionCountView = &view.View{
254+
Description: runningPRsWaitingOnTaskResolutionCount.Description(),
255+
Measure: runningPRsWaitingOnTaskResolutionCount,
256+
Aggregation: view.LastValue(),
257+
}
215258
runningPRsWaitingOnTaskResolutionView = &view.View{
216259
Description: runningPRsWaitingOnTaskResolution.Description(),
217260
Measure: runningPRsWaitingOnTaskResolution,
@@ -220,18 +263,26 @@ func viewRegister(cfg *config.Metrics) error {
220263

221264
return view.Register(
222265
prDurationView,
266+
prCountView,
223267
prTotalView,
268+
runningPRsCountView,
224269
runningPRsView,
270+
runningPRsWaitingOnPipelineResolutionCountView,
225271
runningPRsWaitingOnPipelineResolutionView,
272+
runningPRsWaitingOnTaskResolutionCountView,
226273
runningPRsWaitingOnTaskResolutionView,
227274
)
228275
}
229276

230277
func viewUnregister() {
231278
view.Unregister(prDurationView,
279+
prCountView,
232280
prTotalView,
281+
runningPRsCountView,
233282
runningPRsView,
283+
runningPRsWaitingOnPipelineResolutionCountView,
234284
runningPRsWaitingOnPipelineResolutionView,
285+
runningPRsWaitingOnTaskResolutionCountView,
235286
runningPRsWaitingOnTaskResolutionView)
236287
}
237288

@@ -361,6 +412,7 @@ func (r *Recorder) DurationAndCount(pr *v1.PipelineRun, beforeCondition *apis.Co
361412
}
362413

363414
metrics.Record(ctx, prDuration.M(duration.Seconds()))
415+
metrics.Record(ctx, prCount.M(1))
364416
metrics.Record(ctx, prTotal.M(1))
365417

366418
return nil
@@ -439,9 +491,11 @@ func (r *Recorder) RunningPipelineRuns(lister listers.PipelineRunLister) error {
439491
if err != nil {
440492
return err
441493
}
494+
metrics.Record(ctx, runningPRsWaitingOnPipelineResolutionCount.M(float64(prsWaitResolvingPipelineRef)))
442495
metrics.Record(ctx, runningPRsWaitingOnPipelineResolution.M(float64(prsWaitResolvingPipelineRef)))
496+
metrics.Record(ctx, runningPRsWaitingOnTaskResolutionCount.M(float64(trsWaitResolvingTaskRef)))
443497
metrics.Record(ctx, runningPRsWaitingOnTaskResolution.M(float64(trsWaitResolvingTaskRef)))
444-
metrics.Record(ctx, runningPRs.M(float64(runningPipelineRuns)))
498+
metrics.Record(ctx, runningPRsCount.M(float64(runningPipelineRuns)))
445499

446500
return nil
447501
}

pkg/pipelinerunmetrics/metrics_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,9 +532,11 @@ func TestRecordPipelineRunDurationCount(t *testing.T) {
532532
metricstest.CheckStatsNotReported(t, "pipelinerun_duration_seconds")
533533
}
534534
if test.expectedCountTags != nil {
535+
metricstest.CheckCountData(t, "pipelinerun_count", test.expectedCountTags, test.expectedCount)
535536
delete(test.expectedCountTags, "reason")
536537
metricstest.CheckCountData(t, "pipelinerun_total", test.expectedCountTags, test.expectedCount)
537538
} else {
539+
metricstest.CheckStatsNotReported(t, "pipelinerun_count")
538540
metricstest.CheckStatsNotReported(t, "pipelinerun_total")
539541
}
540542
})
@@ -580,6 +582,7 @@ func TestRecordRunningPipelineRunsCount(t *testing.T) {
580582
if err := metrics.RunningPipelineRuns(informer.Lister()); err != nil {
581583
t.Errorf("RunningPipelineRuns: %v", err)
582584
}
585+
metricstest.CheckLastValueData(t, "running_pipelineruns_count", map[string]string{}, 1)
583586
metricstest.CheckLastValueData(t, "running_pipelineruns", map[string]string{}, 1)
584587
}
585588

@@ -784,13 +787,15 @@ func TestRecordRunningPipelineRunsResolutionWaitCounts(t *testing.T) {
784787
if err := metrics.RunningPipelineRuns(informer.Lister()); err != nil {
785788
t.Errorf("RunningTaskRuns: %v", err)
786789
}
790+
metricstest.CheckLastValueData(t, "running_pipelineruns_waiting_on_pipeline_resolution_count", map[string]string{}, tc.prWaitCount)
791+
metricstest.CheckLastValueData(t, "running_pipelineruns_waiting_on_task_resolution_count", map[string]string{}, tc.trWaitCount)
787792
metricstest.CheckLastValueData(t, "running_pipelineruns_waiting_on_pipeline_resolution", map[string]string{}, tc.prWaitCount)
788793
metricstest.CheckLastValueData(t, "running_pipelineruns_waiting_on_task_resolution", map[string]string{}, tc.trWaitCount)
789794
}
790795
}
791796

792797
func unregisterMetrics() {
793-
metricstest.Unregister("pipelinerun_duration_seconds", "pipelinerun_total", "running_pipelineruns_waiting_on_pipeline_resolution", "running_pipelineruns_waiting_on_task_resolution", "running_pipelineruns")
798+
metricstest.Unregister("pipelinerun_duration_seconds", "pipelinerun_count", "pipelinerun_total", "running_pipelineruns_waiting_on_pipeline_resolution_count", "running_pipelineruns_waiting_on_pipeline_resolution", "running_pipelineruns_waiting_on_task_resolution_count", "running_pipelineruns_waiting_on_task_resolution", "running_pipelineruns_count", "running_pipelineruns")
794799

795800
// Allow the recorder singleton to be recreated.
796801
once = sync.Once{}

pkg/taskrunmetrics/metrics.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,12 @@ var (
5757

5858
trDurationView *view.View
5959
prTRDurationView *view.View
60+
trCountView *view.View
6061
trTotalView *view.View
62+
runningTRsCountView *view.View
6163
runningTRsView *view.View
64+
runningTRsThrottledByQuotaCountView *view.View
65+
runningTRsThrottledByNodeCountView *view.View
6266
runningTRsThrottledByQuotaView *view.View
6367
runningTRsThrottledByNodeView *view.View
6468
runningTRsWaitingOnTaskResolutionCountView *view.View
@@ -74,14 +78,30 @@ var (
7478
"The pipelinerun's taskrun execution time in seconds",
7579
stats.UnitDimensionless)
7680

81+
trCount = stats.Float64("taskrun_count",
82+
"number of taskruns",
83+
stats.UnitDimensionless)
84+
7785
trTotal = stats.Float64("taskrun_total",
7886
"Number of taskruns",
7987
stats.UnitDimensionless)
8088

89+
runningTRsCount = stats.Float64("running_taskruns_count",
90+
"Number of taskruns executing currently",
91+
stats.UnitDimensionless)
92+
8193
runningTRs = stats.Float64("running_taskruns",
8294
"Number of taskruns executing currently",
8395
stats.UnitDimensionless)
8496

97+
runningTRsThrottledByQuotaCount = stats.Float64("running_taskruns_throttled_by_quota_count",
98+
"Number of taskruns executing currently, but whose underlying Pods or Containers are suspended by k8s because of defined ResourceQuotas. Such suspensions can occur as part of initial scheduling of the Pod, or scheduling of any of the subsequent Container(s) in the Pod after the first Container is started",
99+
stats.UnitDimensionless)
100+
101+
runningTRsThrottledByNodeCount = stats.Float64("running_taskruns_throttled_by_node_count",
102+
"Number of taskruns executing currently, but whose underlying Pods or Containers are suspended by k8s because of Node level constraints. Such suspensions can occur as part of initial scheduling of the Pod, or scheduling of any of the subsequent Container(s) in the Pod after the first Container is started",
103+
stats.UnitDimensionless)
104+
85105
runningTRsWaitingOnTaskResolutionCount = stats.Float64("running_taskruns_waiting_on_task_resolution_count",
86106
"Number of taskruns executing currently that are waiting on resolution requests for their task references.",
87107
stats.UnitDimensionless)
@@ -197,7 +217,9 @@ func viewRegister(cfg *config.Metrics) error {
197217
}
198218
}
199219

220+
trCountViewTags := []tag.Key{statusTag}
200221
if cfg.CountWithReason {
222+
trCountViewTags = append(trCountViewTags, reasonTag)
201223
trunTag = append(trunTag, reasonTag)
202224
}
203225

@@ -214,18 +236,39 @@ func viewRegister(cfg *config.Metrics) error {
214236
TagKeys: append([]tag.Key{statusTag, namespaceTag}, append(trunTag, prunTag...)...),
215237
}
216238

239+
trCountView = &view.View{
240+
Description: trCount.Description(),
241+
Measure: trCount,
242+
Aggregation: view.Count(),
243+
TagKeys: trCountViewTags,
244+
}
217245
trTotalView = &view.View{
218246
Description: trTotal.Description(),
219247
Measure: trTotal,
220248
Aggregation: view.Count(),
221249
TagKeys: []tag.Key{statusTag},
222250
}
251+
runningTRsCountView = &view.View{
252+
Description: runningTRsCount.Description(),
253+
Measure: runningTRsCount,
254+
Aggregation: view.LastValue(),
255+
}
223256

224257
runningTRsView = &view.View{
225258
Description: runningTRs.Description(),
226259
Measure: runningTRs,
227260
Aggregation: view.LastValue(),
228261
}
262+
runningTRsThrottledByQuotaCountView = &view.View{
263+
Description: runningTRsThrottledByQuotaCount.Description(),
264+
Measure: runningTRsThrottledByQuotaCount,
265+
Aggregation: view.LastValue(),
266+
}
267+
runningTRsThrottledByNodeCountView = &view.View{
268+
Description: runningTRsThrottledByNodeCount.Description(),
269+
Measure: runningTRsThrottledByNodeCount,
270+
Aggregation: view.LastValue(),
271+
}
229272
runningTRsWaitingOnTaskResolutionCountView = &view.View{
230273
Description: runningTRsWaitingOnTaskResolutionCount.Description(),
231274
Measure: runningTRsWaitingOnTaskResolutionCount,
@@ -257,8 +300,12 @@ func viewRegister(cfg *config.Metrics) error {
257300
return view.Register(
258301
trDurationView,
259302
prTRDurationView,
303+
trCountView,
260304
trTotalView,
305+
runningTRsCountView,
261306
runningTRsView,
307+
runningTRsThrottledByQuotaCountView,
308+
runningTRsThrottledByNodeCountView,
262309
runningTRsWaitingOnTaskResolutionCountView,
263310
runningTRsThrottledByQuotaView,
264311
runningTRsThrottledByNodeView,
@@ -270,8 +317,12 @@ func viewUnregister() {
270317
view.Unregister(
271318
trDurationView,
272319
prTRDurationView,
320+
trCountView,
273321
trTotalView,
322+
runningTRsCountView,
274323
runningTRsView,
324+
runningTRsThrottledByQuotaCountView,
325+
runningTRsThrottledByNodeCountView,
275326
runningTRsWaitingOnTaskResolutionCountView,
276327
runningTRsThrottledByQuotaView,
277328
runningTRsThrottledByNodeView,
@@ -416,6 +467,7 @@ func (r *Recorder) DurationAndCount(ctx context.Context, tr *v1.TaskRun, beforeC
416467
}
417468

418469
metrics.Record(ctx, durationStat.M(duration.Seconds()))
470+
metrics.Record(ctx, trCount.M(1))
419471
metrics.Record(ctx, trTotal.M(1))
420472

421473
return nil
@@ -440,7 +492,9 @@ func (r *Recorder) RunningTaskRuns(ctx context.Context, lister listers.TaskRunLi
440492

441493
var runningTrs int
442494
trsThrottledByQuota := map[string]int{}
495+
trsThrottledByQuotaCount := 0
443496
trsThrottledByNode := map[string]int{}
497+
trsThrottledByNodeCount := 0
444498
var trsWaitResolvingTaskRef int
445499
for _, pr := range trs {
446500
// initialize metrics with namespace tag to zero if unset; will then update as needed below
@@ -462,10 +516,12 @@ func (r *Recorder) RunningTaskRuns(ctx context.Context, lister listers.TaskRunLi
462516
if succeedCondition != nil && succeedCondition.Status == corev1.ConditionUnknown {
463517
switch succeedCondition.Reason {
464518
case pod.ReasonExceededResourceQuota:
519+
trsThrottledByQuotaCount++
465520
cnt := trsThrottledByQuota[pr.Namespace]
466521
cnt++
467522
trsThrottledByQuota[pr.Namespace] = cnt
468523
case pod.ReasonExceededNodeResources:
524+
trsThrottledByNodeCount++
469525
cnt := trsThrottledByNode[pr.Namespace]
470526
cnt++
471527
trsThrottledByNode[pr.Namespace] = cnt
@@ -479,8 +535,11 @@ func (r *Recorder) RunningTaskRuns(ctx context.Context, lister listers.TaskRunLi
479535
if err != nil {
480536
return err
481537
}
538+
metrics.Record(ctx, runningTRsCount.M(float64(runningTrs)))
482539
metrics.Record(ctx, runningTRs.M(float64(runningTrs)))
483540
metrics.Record(ctx, runningTRsWaitingOnTaskResolutionCount.M(float64(trsWaitResolvingTaskRef)))
541+
metrics.Record(ctx, runningTRsThrottledByQuotaCount.M(float64(trsThrottledByQuotaCount)))
542+
metrics.Record(ctx, runningTRsThrottledByNodeCount.M(float64(trsThrottledByNodeCount)))
484543

485544
for ns, cnt := range trsThrottledByQuota {
486545
var mutators []tag.Mutator

0 commit comments

Comments
 (0)