Skip to content

Commit c4c19e6

Browse files
authored
Merge pull request #20505 from chaodaiG/more-report-version
Move prow version prometheus metrics out of prowjob metrics, more prow components report this metric
2 parents 5183ec8 + 62e63b7 commit c4c19e6

File tree

11 files changed

+65
-18
lines changed

11 files changed

+65
-18
lines changed

prow/cmd/sinker/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ go_library(
5252
"//prow/logrusutil:go_default_library",
5353
"//prow/metrics:go_default_library",
5454
"//prow/pjutil:go_default_library",
55+
"//prow/version:go_default_library",
5556
"@com_github_pkg_errors//:go_default_library",
5657
"@com_github_prometheus_client_golang//prometheus:go_default_library",
5758
"@com_github_sirupsen_logrus//:go_default_library",

prow/cmd/sinker/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
"k8s.io/test-infra/prow/logrusutil"
4646
"k8s.io/test-infra/prow/metrics"
4747
"k8s.io/test-infra/prow/pjutil"
48+
"k8s.io/test-infra/prow/version"
4849
)
4950

5051
type options struct {
@@ -463,6 +464,7 @@ func (c *controller) clean() {
463464
for k, v := range metrics.prowJobsCleaningErrors {
464465
sinkerMetrics.prowJobsCleaningErrors.WithLabelValues(k).Set(float64(v))
465466
}
467+
version.GatherProwVersion(c.logger)
466468
c.logger.Info("Sinker reconciliation complete.")
467469
}
468470

prow/kube/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ go_library(
4040
"//prow/apis/prowjobs/v1:go_default_library",
4141
"//prow/client/clientset/versioned:go_default_library",
4242
"//prow/client/clientset/versioned/typed/prowjobs/v1:go_default_library",
43-
"//prow/version:go_default_library",
4443
"@com_github_prometheus_client_golang//prometheus:go_default_library",
4544
"@com_github_sirupsen_logrus//:go_default_library",
4645
"@io_k8s_api//core/v1:go_default_library",

prow/kube/metrics.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/sirupsen/logrus"
2222

2323
prowapi "k8s.io/test-infra/prow/apis/prowjobs/v1"
24-
"k8s.io/test-infra/prow/version"
2524
)
2625

2726
var (
@@ -51,10 +50,6 @@ var (
5150
Name: "prowjob_state_transitions",
5251
Help: "Number of prowjobs transitioning states",
5352
}, metricLabels)
54-
prowVersion = prometheus.NewGauge(prometheus.GaugeOpts{
55-
Name: "prow_version",
56-
Help: "Prow version",
57-
})
5853
)
5954

6055
type jobLabel struct {
@@ -75,7 +70,6 @@ func (jl *jobLabel) values() []string {
7570
func init() {
7671
prometheus.MustRegister(prowJobs)
7772
prometheus.MustRegister(prowJobTransitions)
78-
prometheus.MustRegister(prowVersion)
7973
}
8074

8175
func getJobLabelMap(pjs []prowapi.ProwJob) map[jobLabel]float64 {
@@ -125,16 +119,6 @@ func GatherProwJobMetrics(l *logrus.Entry, current []prowapi.ProwJob) {
125119
// stale metrics like triggered or pending jobs that are now complete.
126120
prowJobs.Reset()
127121

128-
// record prow version
129-
version, err := version.VersionTimestamp()
130-
if err != nil {
131-
// Not worth panicking
132-
l.WithError(err).Debug("Failed to get version timestamp")
133-
prowVersion.Set(-1)
134-
} else {
135-
prowVersion.Set(float64(version))
136-
}
137-
138122
// record the current state of ProwJob CRs on the system
139123
for jl, count := range getJobLabelMap(current) {
140124
prowJobs.WithLabelValues(jl.values()...).Set(count)

prow/plank/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ go_library(
5959
"//prow/kube:go_default_library",
6060
"//prow/pjutil:go_default_library",
6161
"//prow/pod-utils/decorate:go_default_library",
62+
"//prow/version:go_default_library",
6263
"@com_github_sirupsen_logrus//:go_default_library",
6364
"@io_k8s_api//core/v1:go_default_library",
6465
"@io_k8s_apimachinery//pkg/api/errors:go_default_library",

prow/plank/controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
"k8s.io/test-infra/prow/kube"
4040
"k8s.io/test-infra/prow/pjutil"
4141
"k8s.io/test-infra/prow/pod-utils/decorate"
42+
"k8s.io/test-infra/prow/version"
4243
)
4344

4445
// PodStatus constants
@@ -264,6 +265,7 @@ func (c *Controller) SyncMetrics() {
264265
c.pjLock.RLock()
265266
defer c.pjLock.RUnlock()
266267
kube.GatherProwJobMetrics(c.log, c.pjs)
268+
version.GatherProwVersion(c.log)
267269
}
268270

269271
// terminateDupes aborts presubmits that have a newer version. It modifies pjs

prow/plank/reconciler.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747
"k8s.io/test-infra/prow/kube"
4848
"k8s.io/test-infra/prow/pjutil"
4949
"k8s.io/test-infra/prow/pod-utils/decorate"
50+
"k8s.io/test-infra/prow/version"
5051
)
5152

5253
const ControllerName = "plank"
@@ -161,6 +162,7 @@ func (r *reconciler) syncMetrics(ctx context.Context) error {
161162
continue
162163
}
163164
kube.GatherProwJobMetrics(r.log, pjs.Items)
165+
version.GatherProwVersion(r.log)
164166
}
165167
}
166168
}

prow/tide/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ go_library(
1818
"//prow/pjutil:go_default_library",
1919
"//prow/tide/blockers:go_default_library",
2020
"//prow/tide/history:go_default_library",
21+
"//prow/version:go_default_library",
2122
"@com_github_prometheus_client_golang//prometheus:go_default_library",
2223
"@com_github_shurcool_githubv4//:go_default_library",
2324
"@com_github_sirupsen_logrus//:go_default_library",

prow/tide/tide.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import (
4646
"k8s.io/test-infra/prow/pjutil"
4747
"k8s.io/test-infra/prow/tide/blockers"
4848
"k8s.io/test-infra/prow/tide/history"
49+
"k8s.io/test-infra/prow/version"
4950
)
5051

5152
// For mocking out sleep during unit tests.
@@ -358,6 +359,7 @@ func (c *Controller) Sync() error {
358359
c.logger.WithField("duration", duration.String()).Info("Synced")
359360
tideMetrics.syncDuration.Set(duration.Seconds())
360361
tideMetrics.syncHeartbeat.WithLabelValues("sync").Inc()
362+
version.GatherProwVersion(c.logger)
361363
}()
362364
defer c.changedFiles.prune()
363365
c.config().BranchProtectionWarnings(c.logger, c.config().PresubmitsStatic)

prow/version/BUILD.bazel

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
22

33
go_library(
44
name = "go_default_library",
5-
srcs = ["doc.go"],
5+
srcs = [
6+
"doc.go",
7+
"metrics.go",
8+
],
69
importpath = "k8s.io/test-infra/prow/version",
710
visibility = ["//visibility:public"],
811
x_defs = {"Version": "{DOCKER_TAG}"},
12+
deps = [
13+
"@com_github_prometheus_client_golang//prometheus:go_default_library",
14+
"@com_github_sirupsen_logrus//:go_default_library",
15+
],
916
)
1017

1118
go_test(

0 commit comments

Comments
 (0)