Skip to content

Commit 001f2cd

Browse files
authored
Merge pull request kubernetes#82255 from cofyc/avoid-import-cycle
volume scheduling: move metrics to a separate package to avoid import cycle
2 parents c12d8de + 8a7607a commit 001f2cd

File tree

7 files changed

+47
-18
lines changed

7 files changed

+47
-18
lines changed

pkg/controller/volume/scheduling/BUILD

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go_library(
44
name = "go_default_library",
55
srcs = [
66
"scheduler_assume_cache.go",
7-
"scheduler_bind_cache_metrics.go",
87
"scheduler_binder.go",
98
"scheduler_binder_cache.go",
109
"scheduler_binder_fake.go",
@@ -14,6 +13,7 @@ go_library(
1413
deps = [
1514
"//pkg/apis/core/v1/helper:go_default_library",
1615
"//pkg/controller/volume/persistentvolume/util:go_default_library",
16+
"//pkg/controller/volume/scheduling/metrics:go_default_library",
1717
"//pkg/volume/util:go_default_library",
1818
"//staging/src/k8s.io/api/core/v1:go_default_library",
1919
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
@@ -26,9 +26,6 @@ go_library(
2626
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
2727
"//staging/src/k8s.io/client-go/listers/storage/v1:go_default_library",
2828
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
29-
"//staging/src/k8s.io/component-base/metrics:go_default_library",
30-
"//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
31-
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
3229
"//vendor/k8s.io/klog:go_default_library",
3330
],
3431
)
@@ -72,7 +69,10 @@ filegroup(
7269

7370
filegroup(
7471
name = "all-srcs",
75-
srcs = [":package-srcs"],
72+
srcs = [
73+
":package-srcs",
74+
"//pkg/controller/volume/scheduling/metrics:all-srcs",
75+
],
7676
tags = ["automanaged"],
7777
visibility = ["//visibility:public"],
7878
)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_library")
2+
3+
go_library(
4+
name = "go_default_library",
5+
srcs = ["metrics.go"],
6+
importpath = "k8s.io/kubernetes/pkg/controller/volume/scheduling/metrics",
7+
visibility = ["//visibility:public"],
8+
deps = [
9+
"//staging/src/k8s.io/component-base/metrics:go_default_library",
10+
"//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
11+
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
12+
],
13+
)
14+
15+
filegroup(
16+
name = "package-srcs",
17+
srcs = glob(["**"]),
18+
tags = ["automanaged"],
19+
visibility = ["//visibility:private"],
20+
)
21+
22+
filegroup(
23+
name = "all-srcs",
24+
srcs = [":package-srcs"],
25+
tags = ["automanaged"],
26+
visibility = ["//visibility:public"],
27+
)

pkg/controller/volume/scheduling/scheduler_bind_cache_metrics.go renamed to pkg/controller/volume/scheduling/metrics/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package scheduling
17+
package metrics
1818

1919
import (
2020
"github.com/prometheus/client_golang/prometheus"

pkg/controller/volume/scheduling/scheduler_binder.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/klog"
3434
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
3535
pvutil "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/util"
36+
"k8s.io/kubernetes/pkg/controller/volume/scheduling/metrics"
3637
volumeutil "k8s.io/kubernetes/pkg/volume/util"
3738
)
3839

@@ -154,9 +155,9 @@ func (b *volumeBinder) FindPodVolumes(pod *v1.Pod, node *v1.Node) (unboundVolume
154155
boundVolumesSatisfied = true
155156
start := time.Now()
156157
defer func() {
157-
VolumeSchedulingStageLatency.WithLabelValues("predicate").Observe(time.Since(start).Seconds())
158+
metrics.VolumeSchedulingStageLatency.WithLabelValues("predicate").Observe(time.Since(start).Seconds())
158159
if err != nil {
159-
VolumeSchedulingStageFailed.WithLabelValues("predicate").Inc()
160+
metrics.VolumeSchedulingStageFailed.WithLabelValues("predicate").Inc()
160161
}
161162
}()
162163

@@ -256,9 +257,9 @@ func (b *volumeBinder) AssumePodVolumes(assumedPod *v1.Pod, nodeName string) (al
256257
klog.V(4).Infof("AssumePodVolumes for pod %q, node %q", podName, nodeName)
257258
start := time.Now()
258259
defer func() {
259-
VolumeSchedulingStageLatency.WithLabelValues("assume").Observe(time.Since(start).Seconds())
260+
metrics.VolumeSchedulingStageLatency.WithLabelValues("assume").Observe(time.Since(start).Seconds())
260261
if err != nil {
261-
VolumeSchedulingStageFailed.WithLabelValues("assume").Inc()
262+
metrics.VolumeSchedulingStageFailed.WithLabelValues("assume").Inc()
262263
}
263264
}()
264265

@@ -332,9 +333,9 @@ func (b *volumeBinder) BindPodVolumes(assumedPod *v1.Pod) (err error) {
332333

333334
start := time.Now()
334335
defer func() {
335-
VolumeSchedulingStageLatency.WithLabelValues("bind").Observe(time.Since(start).Seconds())
336+
metrics.VolumeSchedulingStageLatency.WithLabelValues("bind").Observe(time.Since(start).Seconds())
336337
if err != nil {
337-
VolumeSchedulingStageFailed.WithLabelValues("bind").Inc()
338+
metrics.VolumeSchedulingStageFailed.WithLabelValues("bind").Inc()
338339
}
339340
}()
340341

pkg/controller/volume/scheduling/scheduler_binder_cache.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ package scheduling
1919
import (
2020
"sync"
2121

22-
"k8s.io/api/core/v1"
22+
v1 "k8s.io/api/core/v1"
23+
"k8s.io/kubernetes/pkg/controller/volume/scheduling/metrics"
2324
)
2425

2526
// PodBindingCache stores PV binding decisions per pod per node.
@@ -93,7 +94,7 @@ func (c *podBindingCache) DeleteBindings(pod *v1.Pod) {
9394

9495
if _, ok := c.bindingDecisions[podName]; ok {
9596
delete(c.bindingDecisions, podName)
96-
VolumeBindingRequestSchedulerBinderCache.WithLabelValues("delete").Inc()
97+
metrics.VolumeBindingRequestSchedulerBinderCache.WithLabelValues("delete").Inc()
9798
}
9899
}
99100

@@ -113,7 +114,7 @@ func (c *podBindingCache) UpdateBindings(pod *v1.Pod, node string, bindings []*b
113114
bindings: bindings,
114115
provisionings: pvcs,
115116
}
116-
VolumeBindingRequestSchedulerBinderCache.WithLabelValues("add").Inc()
117+
metrics.VolumeBindingRequestSchedulerBinderCache.WithLabelValues("add").Inc()
117118
} else {
118119
decision.bindings = bindings
119120
decision.provisionings = pvcs

pkg/scheduler/metrics/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ go_library(
1010
],
1111
importpath = "k8s.io/kubernetes/pkg/scheduler/metrics",
1212
deps = [
13-
"//pkg/controller/volume/scheduling:go_default_library",
13+
"//pkg/controller/volume/scheduling/metrics:go_default_library",
1414
"//staging/src/k8s.io/component-base/metrics:go_default_library",
1515
"//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
1616
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",

pkg/scheduler/metrics/metrics.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
"k8s.io/component-base/metrics"
2626
"k8s.io/component-base/metrics/legacyregistry"
27-
volumescheduling "k8s.io/kubernetes/pkg/controller/volume/scheduling"
27+
volumeschedulingmetrics "k8s.io/kubernetes/pkg/controller/volume/scheduling/metrics"
2828
)
2929

3030
const (
@@ -251,7 +251,7 @@ func Register() {
251251
for _, metric := range metricsList {
252252
legacyregistry.MustRegister(metric)
253253
}
254-
volumescheduling.RegisterVolumeSchedulingMetrics()
254+
volumeschedulingmetrics.RegisterVolumeSchedulingMetrics()
255255
})
256256
}
257257

0 commit comments

Comments
 (0)