Commit Graph

148 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
b2a8ac15a0 Merge pull request #124221 from arturhoo/fix-spelling-scheduler-metrics
scheduler: fix typo in metric pod_scheduling_sli_duration_seconds help
2024-04-18 10:46:19 -07:00
Davanum Srinivas
fb5140f562 Rename cluster to storage_cluster_id for apiserver_storage_size_bytes metric
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-04-11 17:15:32 -04:00
Artur Rodrigues
7e40886020 Fix spelling in tests 2024-04-08 08:35:28 +01:00
Tim Hockin
2e2ae029c3 Fix instrumentation tests
1) Fail if we can't read critical env vars
2) Don't rely on KUBE_ROOT env var when `go list` works
3) Don't rely on GOOS env var when `go env` works
4) Don't quietly ignore "can't read" errors

Once we stop ignoring errors, some tests fail for real (and should
always have failed).

The "Imported k8s.io/staging constant" test seems to not be allowed at
all anymore.  Han said to nix it and he'd look async.

Oversall this test is dodgy.  You REALLY can't glue strings together and
expect valid Go module paths.  We should consider a deeper rework.
2024-02-29 22:07:41 -08:00
Tim Hockin
d61f299614 Call verify_go_version at the END of setup_env
Prior to this it would download Go, setup the environment, then (maybe)
download Go again.

I renamed verify_go_version to be internal and fixed all callers.
2024-02-29 22:06:56 -08:00
Tim Hockin
530c4352fb Rename new::setup_env back to setup_env 2024-02-29 22:06:44 -08:00
Tim Hockin
db590ecd89 Fix scripts to avoid testdata 2024-02-29 22:06:21 -08:00
Tim Hockin
238b33de3b Change test/instrumentation/update-* to new setup_env 2024-02-29 22:06:12 -08:00
Tim Hockin
8b579b2347 Change the build_binaries path to use modules
This makes "new" and "old" setup_env functions. In subsequent commits,
all callers of the "old" form will be fixed, and the "new" will be
renamed back.

The old and new functions diff:

```diff
--- /tmp/a	2023-12-14 09:02:57.804092696 -0800
+++ /tmp/b	2023-12-14 09:03:09.679999585 -0800
@@ -1,4 +1,4 @@
-kube::golang::old::setup_env() {
+kube::golang:🆕:setup_env() {
   kube::golang::verify_go_version

   # Set up GOPATH.  We have tools which depend on being in a GOPATH (see
@@ -7,9 +7,9 @@
   # Even in module mode, we need to set GOPATH for `go build` and `go install`
   # to work.  We build various tools (usually via `go install`) from a lot of
   # scripts.
-  #   * We can't set GOBIN because that does not work on cross-compiles.
-  #   * We could use `go build -o <something>`, but it's subtle when it comes
-  #     to cross-compiles and whether the <something> is a file or a directory,
+  #   * We can't just set GOBIN because that does not work on cross-compiles.
+  #   * We could always use `go build -o <something>`, but it's subtle wrt
+  #     cross-compiles and whether the <something> is a file or a directory,
   #     and EVERY caller has to get it *just* right.
   #   * We could leave GOPATH alone and let `go install` write binaries
   #     wherever the user's GOPATH says (or doesn't say).
@@ -20,16 +20,6 @@
   #
   # Eventually, when we no longer rely on run-in-gopath.sh we may be able to
   # simplify this some.
-  local go_pkg_dir="${KUBE_GOPATH}/src/${KUBE_GO_PACKAGE}"
-  local go_pkg_basedir
-  go_pkg_basedir=$(dirname "${go_pkg_dir}")
-
-  mkdir -p "${go_pkg_basedir}"
-
-  # TODO: This symlink should be relative.
-  if [[ ! -e "${go_pkg_dir}" || "$(readlink "${go_pkg_dir}")" != "${KUBE_ROOT}" ]]; then
-    ln -snf "${KUBE_ROOT}" "${go_pkg_dir}"
-  fi
   export GOPATH="${KUBE_GOPATH}"

   # If these are not set, set them now.  This ensures that any subsequent
@@ -40,24 +30,10 @@
   # Make sure our own Go binaries are in PATH.
   export PATH="${KUBE_GOPATH}/bin:${PATH}"

-  # Change directories so that we are within the GOPATH.  Some tools get really
-  # upset if this is not true.  We use a whole fake GOPATH here to collect the
-  # resultant binaries.
-  local subdir
-  subdir=$(kube::realpath . | sed "s|${KUBE_ROOT}||")
-  cd "${KUBE_GOPATH}/src/${KUBE_GO_PACKAGE}/${subdir}" || return 1
-
-  # Set GOROOT so binaries that parse code can work properly.
-  GOROOT=$(go env GOROOT)
-  export GOROOT
-
   # Unset GOBIN in case it already exists in the current session.
   # Cross-compiles will not work with it set.
   unset GOBIN

-  # This seems to matter to some tools
-  export GO15VENDOREXPERIMENT=1
-
-  # Disable workspaces
-  export GOWORK=off
+  # Explicitly turn on modules.
+  export GO111MODULE=on
 }
```

Result: `make` works for k/k:

```
$ make kubectl
+++ [1211 11:07:31] Building go targets for linux/amd64
    k8s.io/kubernetes/cmd/kubectl (static)

$ make WHAT=./cmd/kubectl/
+++ [1211 11:08:19] Building go targets for linux/amd64
    k8s.io/kubernetes/./cmd/kubectl/ (non-static)

$ make WHAT=k8s.io/kubernetes/cmd/kubectl
+++ [1211 11:08:52] Building go targets for linux/amd64
    k8s.io/kubernetes/cmd/kubectl (static)
```

Result: `make` works for staging by package:

```
$ make WHAT=k8s.io/api
+++ [1211 11:11:37] Building go targets for linux/amd64
    k8s.io/api (non-static)
```

Result: `make` fails for staging by path:

```
$ make WHAT=./staging/src/k8s.io/api
+++ [1211 11:12:44] Building go targets for linux/amd64
    k8s.io/kubernetes/./staging/src/k8s.io/api (non-static)
cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor
	(Go version in go.work is at least 1.14 and vendor directory exists.)
!!! [1211 11:12:44] Call tree:
!!! [1211 11:12:44]  1: /home/thockin/src/kubernetes/hack/lib/golang.sh:850 kube::golang::build_some_binaries(...)
!!! [1211 11:12:44]  2: /home/thockin/src/kubernetes/hack/lib/golang.sh:1012 kube::golang::build_binaries_for_platform(...)
!!! [1211 11:12:44]  3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [1211 11:12:44] Call tree:
!!! [1211 11:12:44]  1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [1211 11:12:44] Call tree:
!!! [1211 11:12:44]  1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
make: *** [Makefile:96: all] Error 1
```

Result: `make test` fails:

```
$ make test WHAT=./cmd/kubectl
+++ [1211 11:13:38] Set GOMAXPROCS automatically to 6
+++ [1211 11:13:38] Running tests without code coverage and with -race
cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of:
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree)
	/home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT)
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH)
cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of:
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree)
	/home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT)
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH)
cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of:
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree)
	/home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT)
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH)
cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of:
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree)
	/home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT)
	/home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH)
make: *** [Makefile:191: test] Error 1
```
2024-02-29 00:22:07 -08:00
Han Kang
f38852768e bump the stability level of apiserver_storage_size_bytes to STABLE 2024-02-16 10:03:39 -08:00
Aldo Culquicondor
b8c19dd1d2 Fix deprecated version for pod_scheduling_duration_seconds
Change-Id: Ia0ad9381057a4a1a4a4490861a0d7c1a7ba800cb
2024-01-30 23:41:49 +00:00
Tim Hockin
0c3e49e64c Run test/instrumentation/update-* 2024-01-14 10:24:35 -08:00
Kubernetes Prow Robot
6b8b188149 Merge pull request #121686 from logicalhan/update-inst-docs
update docs for v1.29 release (note this must be committed after code freeze)
2023-11-02 02:34:57 +01:00
Han Kang
85b10c06fa update docs for v1.29 release (note this must be committed after code freeze) 2023-11-01 15:00:48 -07:00
Kubernetes Prow Robot
d393d4e151 Merge pull request #120574 from logicalhan/cslis
promote component SLIs to GA; remove feature gates for component slis
2023-09-14 22:52:12 -07:00
machine424
084deb7a7c clarify the description of the metric apiserver_storage_objects 2023-09-12 16:36:41 +02:00
Aldo Culquicondor
6b4ab616a2 Increase range of job_sync_duration_seconds
Change-Id: I7ed4b006faecf0a7e6e583c42b4d6bc4b786a164
2023-09-11 18:01:33 -04:00
Han Kang
09d64ed7d4 promote sli metrics to stable 2023-09-11 10:17:42 -07:00
Kubernetes Prow Robot
04292dd94b Merge pull request #120369 from Gauravpadam/update-generated-html
Generated new documentation.md for kubernetes metrics reference
2023-09-05 23:02:50 -07:00
Gauravpadam
2144852f7c Commits merged
Some label fixes

Wrapper class is now metric

merged commits
2023-09-06 01:32:09 +05:30
Gauravpadam
0024c7e166 Changed the generator codes for kubernetes metrics table
Corrected the gotemplate range call

Modified the wrapper class

Delete test/instrumentation/documentation/documentation.md

Removed documentation.md change as we're changing it over the other PR

Restored the original doc.md ; PR is solely for the generator code now

Some label fixes

merge commits
2023-09-05 23:32:36 +05:30
Han Kang
dbbce2aaba sort stability list of metrics in the shell command (#120197)
* sort stability list of metrics in the shell command

* remove used vars

* fix verify errors
2023-08-28 04:43:54 -07:00
Richa Banker
4712025ea8 Graduate kubelet resource metrics to GA 2023-08-17 09:22:48 -07:00
Kubernetes Prow Robot
ef533decd7 Merge pull request #119715 from logicalhan/ExponentialBucketsRange
add support for ExponentialBucketsRange
2023-08-15 19:43:53 -07:00
Heba Elayoty
224087abfa Add Pod Scheduling SLI Duration metric (#119049)
Signed-off-by: Heba Elayoty <hebaelayoty@gmail.com>
Co-authored-by: Aldo Culquicondor <1299064+alculquicondor@users.noreply.github.com>
2023-08-15 15:17:41 -07:00
Han Kang
d5d90b7b22 add support for ExponentialBucketsRange 2023-08-01 11:38:20 -07:00
Han Kang
18a7025383 update documentation with descriptions 2023-07-25 08:57:54 -07:00
Han Kang
cb6d7fbe66 update documented metrics 2023-07-20 16:05:38 -07:00
Marek Siarkowicz
03aad1f823 Fix the semantic meaning of etcd server within component statuses and metrics.
Instead of numerating all the etcd endpoints known by apiserver, we will
group them by purpose. `etcd-0` will be the default etcd, `etcd-1` will
be the first resource override, `etcd-2` will be the second override and
so on.
2023-07-20 15:08:41 +02:00
Han Kang
aa788219f4 fix metric names 2023-07-17 11:22:21 -07:00
Andrew Sy Kim
d25075f342 update generated list of stable metrics
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2023-07-13 20:13:04 +00:00
Kubernetes Prow Robot
2ec4e14bfa Merge pull request #118812 from serathius/storage-metric
Improve apiserver storage size metric
2023-07-12 10:57:26 -07:00
Marek Siarkowicz
7a63997c8a Improve apiserver storage size metric to allow it's graduation
Change name to make it compliant with prometheus guidelines.
Calculate it on demand instead of periodic to comply with prometheus standards.
Replace "endpoint" with "server" label to make it semantically consistent with storage factory
2023-07-12 14:33:10 +02:00
Han Kang
d68f5f0d92 fix tests 2023-06-29 13:46:12 -07:00
Han Kang
44f1c4dd94 fix duplicate metrics issue 2023-06-29 12:30:30 -07:00
Han Kang
04ea1d506b promote sli metrics to beta 2023-06-29 09:23:01 -07:00
Andrew Sy Kim
16fdd3e5ee apiserver: introduce larger buckets for flowcontrol request_wait_duration_seconds bucket
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2023-06-28 15:48:39 +00:00
Andrew Sy Kim
c607984379 apiserver: introduce larger buckets for request_filter_duration_seconds metric
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2023-06-28 14:19:51 +00:00
Marek Siarkowicz
22258a263f Fix stable metric finder for NewDesc with custom import name 2023-06-23 16:57:56 +02:00
Marek Siarkowicz
1384274622 Update metric documentation 2023-06-23 14:54:17 +02:00
Han Kang
9d27f5c934 update documentation for metrics for 1.27 2023-03-15 10:10:02 -07:00
Han Kang
0199276f85 include beta metrics in documentation and update docs for metrics 2023-03-01 11:32:19 -08:00
Kubernetes Prow Robot
292450717c Merge pull request #115394 from ritazh/kmsv2-metrics
kmsv2: add metrics
2023-02-15 18:03:37 -08:00
Rita Zhang
bd0f7f8ee8 kmsv2: add metrics
Signed-off-by: Rita Zhang <rita.z.zhang@gmail.com>
2023-02-15 15:08:24 -08:00
Han Kang
7b823002f3 add 25s bucket 2023-02-15 10:31:12 -08:00
Han Kang
20b5205dad use 10 seconds as the biggest bucket for webhook metrics otherwise charts will top out at 2.5s for webhook latencies 2023-02-15 09:17:41 -08:00
Damien Grisonnet
49da8a1d4a scheduler: promote pod resource metrics to stable
Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2023-02-09 20:30:45 +01:00
Tim Hockin
7229364f0a Make generated-stable-metrics use git ls-files 2023-01-22 15:22:55 -08:00
Paco Xu
70e56fa71a cleanup: EphemeralContainers feature gate related codes 2023-01-15 21:15:01 +08:00
Tim Bannister
5ff160e98c Update generated Kubernetes Metrics Reference 2022-11-11 09:19:13 +00:00