feat: add kube-metrics plugin (#3433)

Signed-off-by: bakito <github@bakito.ch>
mine
Marc Brugger 2025-07-05 18:14:35 +02:00 committed by GitHub
parent 6f1bb1689e
commit 76c7a744d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 42 additions and 21 deletions

View File

@ -4,27 +4,28 @@ K9s plugins extend the tool to provide additional functionality via actions to f
Following is an example of some plugin files in this directory. Other files are not listed in this table. Following is an example of some plugin files in this directory. Other files are not listed in this table.
| Plugin-Name | Description | Available on Views | Shortcut | Kubectl plugin, external dependencies | | Plugin-Name | Description | Available on Views | Shortcut | Kubectl plugin, external dependencies |
|--------------------------------| ---------------------------------------------------------------------------- |-------------------------------------|-----------|---------------------------------------------------------------------------------------| |--------------------------------|-------------------------------------------------------------------------------------------|-------------------------------------|-----------|---------------------------------------------------------------------------------------|
| ai-incident-investigation.yaml | Run AI investigation on application issues to find the root cause in seconds | all | Shift-h/o | [HolmesGPT](https://github.com/robusta-dev/holmesgpt) | | ai-incident-investigation.yaml | Run AI investigation on application issues to find the root cause in seconds | all | Shift-h/o | [HolmesGPT](https://github.com/robusta-dev/holmesgpt) |
| argocd.yaml | Perform argocd operation quickly | applications | Shift-r | [ArgoCD](https://argo-cd.readthedocs.io/en/stable/getting_started/) | | argocd.yaml | Perform argocd operation quickly | applications | Shift-r | [ArgoCD](https://argo-cd.readthedocs.io/en/stable/getting_started/) |
| debug-container.yaml | Add [ephemeral debug container](1)<br>([nicolaka/netshoot](2)) | containers | Shift-d | | | debug-container.yaml | Add [ephemeral debug container](1)<br>([nicolaka/netshoot](2)) | containers | Shift-d | |
| dive.yaml | Dive image layers | containers | d | [Dive](https://github.com/wagoodman/dive) | | dive.yaml | Dive image layers | containers | d | [Dive](https://github.com/wagoodman/dive) |
| external-secrets.yaml | Refresh external/push-secrets | externalsecrets/pushsecrets | Shift-R | | | external-secrets.yaml | Refresh external/push-secrets | externalsecrets/pushsecrets | Shift-R | |
| get-all.yaml | get all resources in a namespace | all | g | [Krew](https://krew.sigs.k8s.io/), [ketall](https://github.com/corneliusweig/ketall/) | | get-all.yaml | get all resources in a namespace | all | g | [Krew](https://krew.sigs.k8s.io/), [ketall](https://github.com/corneliusweig/ketall/) |
| helm-diff.yaml | Diff with previous revision / current revision | helm/history | Shift-D/Q | [helm-diff](https://github.com/databus23/helm-diff) | | helm-diff.yaml | Diff with previous revision / current revision | helm/history | Shift-D/Q | [helm-diff](https://github.com/databus23/helm-diff) |
| job-suspend.yaml | Suspends a running cronjob | cronjobs | Ctrl-s | | | job-suspend.yaml | Suspends a running cronjob | cronjobs | Ctrl-s | |
| k3d-root-shell.yaml | Root shell to k3d container | containers | Shift-s | [jq](https://stedolan.github.io/jq/) | | k3d-root-shell.yaml | Root shell to k3d container | containers | Shift-s | [jq](https://stedolan.github.io/jq/) |
| keda-toggle.yaml | Enable/disable [keda](3) ScaledObject autoscaler | scaledobjects | Ctrl-N | | | keda-toggle.yaml | Enable/disable [keda](3) ScaledObject autoscaler | scaledobjects | Ctrl-N | |
| log-stern.yaml | View resource logs using stern | pods | Ctrl-l | | | kube-metrics.yaml | Visualize live pod/node metric graphs (Memory/CPU) | pods/nodes | m | [kube-metics](https://github.com/bakito/kube-metrics) |
| log-jq.yaml | View resource logs using jq | pods | Ctrl-j | kubectl-plugins/kubectl-jq | | log-stern.yaml | View resource logs using stern | pods | Ctrl-l | |
| log-bunyan.yaml | View pods, service, deployment logs using bunyan | pods, service, deployment | Ctrl-l | [Bunyan](https://www.npmjs.com/package/bunyan) | | log-jq.yaml | View resource logs using jq | pods | Ctrl-j | kubectl-plugins/kubectl-jq |
| log-full.yaml | get full logs from pod/container | pods/containers | Ctrl-l | | | log-bunyan.yaml | View pods, service, deployment logs using bunyan | pods, service, deployment | Ctrl-l | [Bunyan](https://www.npmjs.com/package/bunyan) |
| resource-recommendations.yaml | View recommendations for CPU/Memory requests based on historical data | deployments/daemonsets/statefulsets | Shift-k | [Robusta KRR](https://github.com/robusta-dev/krr) | | log-full.yaml | get full logs from pod/container | pods/containers | Ctrl-l | |
| szero.yaml | Temporarily scale down/up all deployments, statefulsets, and daemonsets | namespaces | Shift-d/u | [szero](https://github.com/jadolg/szero) | | resource-recommendations.yaml | View recommendations for CPU/Memory requests based on historical data | deployments/daemonsets/statefulsets | Shift-k | [Robusta KRR](https://github.com/robusta-dev/krr) |
| trace-dns.yaml | Trace DNS resolution using Inspektor Gadget (4) | containers/pods/nodes | Shift-d | | | szero.yaml | Temporarily scale down/up all deployments, statefulsets, and daemonsets | namespaces | Shift-d/u | [szero](https://github.com/jadolg/szero) |
| vector-dev-top.yaml | Run `vector top` in vector.dev container | pods/container | h | [vector top](https://vector.dev/highlights/2020-12-23-vector-top/) | | trace-dns.yaml | Trace DNS resolution using Inspektor Gadget (4) | containers/pods/nodes | Shift-d | |
| start-alpine.yaml | Starts a deployment for the `alpine:latest` docker image in the current namespace/context | deployments/pods | Ctrl-T | | | vector-dev-top.yaml | Run `vector top` in vector.dev container | pods/container | h | [vector top](https://vector.dev/highlights/2020-12-23-vector-top/) |
| start-alpine.yaml | Starts a deployment for the `alpine:latest` docker image in the current namespace/context | deployments/pods | Ctrl-T | |
[1]: https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container [1]: https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container
[2]: https://github.com/nicolaka/netshoot [2]: https://github.com/nicolaka/netshoot

20
plugins/kube-metrics.yaml Normal file
View File

@ -0,0 +1,20 @@
# requires 'kube-metrics' cli binary installed to be installed (https://github.com/bakito/kube-metrics)
plugins:
# allows visualizing pod and node metrics
kube-metrics-pod:
shortCut: m
confirm: false
description: "Metrics"
scopes:
- pods
- nodes
command: sh
background: false
args:
- -c
- |
if [ -n "$NAMESPACE" ]; then
kube-metrics pod --namespace=$NAMESPACE $NAME
else
kube-metrics node $NAME
fi