Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor common component metrics #11184

Merged
merged 3 commits into from Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 0 additions & 3 deletions cmd/virt-api/BUILD.bazel
Expand Up @@ -6,9 +6,6 @@ go_library(
importpath = "kubevirt.io/kubevirt/cmd/virt-api",
visibility = ["//visibility:private"],
deps = [
"//pkg/monitoring/client/prometheus:go_default_library",
"//pkg/monitoring/reflector/prometheus:go_default_library",
"//pkg/monitoring/workqueue/prometheus:go_default_library",
"//pkg/service:go_default_library",
"//pkg/virt-api:go_default_library",
"//staging/src/kubevirt.io/client-go/log:go_default_library",
Expand Down
3 changes: 0 additions & 3 deletions cmd/virt-api/virt-api.go
Expand Up @@ -22,9 +22,6 @@ package main
import (
klog "kubevirt.io/client-go/log"

_ "kubevirt.io/kubevirt/pkg/monitoring/client/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/reflector/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/workqueue/prometheus" // import for prometheus metrics
"kubevirt.io/kubevirt/pkg/service"
virt_api "kubevirt.io/kubevirt/pkg/virt-api"
)
Expand Down
3 changes: 0 additions & 3 deletions cmd/virt-controller/BUILD.bazel
Expand Up @@ -6,9 +6,6 @@ go_library(
importpath = "kubevirt.io/kubevirt/cmd/virt-controller",
visibility = ["//visibility:private"],
deps = [
"//pkg/monitoring/client/prometheus:go_default_library",
"//pkg/monitoring/reflector/prometheus:go_default_library",
"//pkg/monitoring/workqueue/prometheus:go_default_library",
"//pkg/virt-controller/watch:go_default_library",
],
)
Expand Down
3 changes: 0 additions & 3 deletions cmd/virt-controller/virt-controller.go
Expand Up @@ -20,9 +20,6 @@
package main

import (
_ "kubevirt.io/kubevirt/pkg/monitoring/client/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/reflector/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/workqueue/prometheus" // import for prometheus metrics
"kubevirt.io/kubevirt/pkg/virt-controller/watch"
)

Expand Down
4 changes: 1 addition & 3 deletions cmd/virt-handler/BUILD.bazel
Expand Up @@ -10,12 +10,10 @@ go_library(
"//pkg/container-disk:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/healthz:go_default_library",
"//pkg/monitoring/client/prometheus:go_default_library",
"//pkg/monitoring/domainstats/downwardmetrics:go_default_library",
"//pkg/monitoring/domainstats/prometheus:go_default_library",
"//pkg/monitoring/metrics/virt-handler:go_default_library",
"//pkg/monitoring/profiler:go_default_library",
"//pkg/monitoring/reflector/prometheus:go_default_library",
"//pkg/monitoring/workqueue/prometheus:go_default_library",
"//pkg/safepath:go_default_library",
"//pkg/service:go_default_library",
"//pkg/util:go_default_library",
Expand Down
8 changes: 5 additions & 3 deletions cmd/virt-handler/virt-handler.go
Expand Up @@ -71,11 +71,9 @@ import (
"kubevirt.io/kubevirt/pkg/certificates/bootstrap"
containerdisk "kubevirt.io/kubevirt/pkg/container-disk"
"kubevirt.io/kubevirt/pkg/controller"
_ "kubevirt.io/kubevirt/pkg/monitoring/client/prometheus" // import for prometheus metrics
promdomain "kubevirt.io/kubevirt/pkg/monitoring/domainstats/prometheus" // import for prometheus metrics
metrics "kubevirt.io/kubevirt/pkg/monitoring/metrics/virt-handler"
"kubevirt.io/kubevirt/pkg/monitoring/profiler"
_ "kubevirt.io/kubevirt/pkg/monitoring/reflector/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/workqueue/prometheus" // import for prometheus metrics
"kubevirt.io/kubevirt/pkg/service"
"kubevirt.io/kubevirt/pkg/util"
virtconfig "kubevirt.io/kubevirt/pkg/virt-config"
Expand Down Expand Up @@ -203,6 +201,10 @@ func (app *virtHandlerApp) Run() {
logger.V(1).Infof("hostname %s", app.HostOverride)
var err error

if err := metrics.SetupMetrics(); err != nil {
panic(fmt.Errorf("failed to set up metrics: %v", err))
}

// Copy container-disk binary
targetFile := filepath.Join(app.VirtLibDir, "/init/usr/bin/container-disk")
err = os.MkdirAll(filepath.Dir(targetFile), os.ModePerm)
Expand Down
3 changes: 0 additions & 3 deletions cmd/virt-operator/BUILD.bazel
Expand Up @@ -6,9 +6,6 @@ go_library(
importpath = "kubevirt.io/kubevirt/cmd/virt-operator",
visibility = ["//visibility:private"],
deps = [
"//pkg/monitoring/client/prometheus:go_default_library",
"//pkg/monitoring/reflector/prometheus:go_default_library",
"//pkg/monitoring/workqueue/prometheus:go_default_library",
"//pkg/virt-operator:go_default_library",
],
)
Expand Down
3 changes: 0 additions & 3 deletions cmd/virt-operator/virt-operator.go
Expand Up @@ -20,9 +20,6 @@
package main

import (
_ "kubevirt.io/kubevirt/pkg/monitoring/client/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/reflector/prometheus" // import for prometheus metrics
_ "kubevirt.io/kubevirt/pkg/monitoring/workqueue/prometheus" // import for prometheus metrics
virt_operator "kubevirt.io/kubevirt/pkg/virt-operator"
)

Expand Down
9 changes: 9 additions & 0 deletions docs/metrics.md
Expand Up @@ -270,6 +270,15 @@ Returns the labels of the persistent volume claims that are used for restoring v
### kubevirt_vnc_active_connections
Amount of active VNC connections, broken down by namespace and vmi name. Type: Gauge.

### rest_client_rate_limiter_duration_seconds
Client side rate limiter latency in seconds. Broken down by verb and URL. Type: Histogram.

### rest_client_request_latency_seconds
Request latency in seconds. Broken down by verb and URL. Type: Histogram.

### rest_client_requests_total
Number of HTTP requests, partitioned by status code, method, and host. Type: Counter.

## Developing new metrics
After developing new metrics or changing old ones, please run `make generate` to regenerate this document.

Expand Down
201 changes: 0 additions & 201 deletions pkg/monitoring/client/prometheus/prometheus.go

This file was deleted.

Expand Up @@ -2,11 +2,17 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
name = "go_default_library",
srcs = ["prometheus.go"],
importpath = "kubevirt.io/kubevirt/pkg/monitoring/client/prometheus",
srcs = [
"latency_adapter.go",
"metrics.go",
"rest_metrics.go",
"rt_wrapper.go",
],
importpath = "kubevirt.io/kubevirt/pkg/monitoring/metrics/common/client",
visibility = ["//visibility:public"],
deps = [
"//staging/src/kubevirt.io/client-go/kubecli:go_default_library",
"//vendor/github.com/machadovilaca/operator-observability/pkg/operatormetrics:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/tools/metrics:go_default_library",
Expand All @@ -16,8 +22,8 @@ go_library(
go_test(
name = "go_default_test",
srcs = [
"prometheus_suite_test.go",
"prometheus_test.go",
"client_suite_test.go",
"client_test.go",
],
embed = [":go_default_library"],
deps = [
Expand Down
@@ -1,4 +1,4 @@
package prometheus
package client

import (
"testing"
Expand Down
Expand Up @@ -17,7 +17,7 @@
*
*/

package prometheus
package client

import (
"net/http"
Expand All @@ -28,6 +28,8 @@ import (
)

var _ = BeforeSuite(func() {
err := SetupMetrics()
Expect(err).ToNot(HaveOccurred())
})

var _ = Describe("URL Parsing", func() {
Expand Down