The following create a minikube with 10 CPU cores and 32GB memory. This is for experiments with heavy workload.
It uses kvm hypervisor. Make sure the qemu and libvirt have already installed
minikube start --cpus 10 --memory 32GB --disk-size=400g --extra-disks=2 --driver=kvm2 --force --container-runtime cri-o
git clone https://github.com/prometheus-operator/kube-prometheus
cd kube-prometheus/
kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/
kubectl apply -f https://gist.githubusercontent.com/rootfs/be880f0607cbe63433aec6afb38e1fbb/raw/a233434ab44db7224a4abf2154fa38b49c91e357/kepler-apiserver-k8s.yaml
check if kepler metrics are there
kubectl exec -ti -n monitoring prometheus-k8s-0 -- sh -c 'wget -O- "localhost:9090/api/v1/query?query=kepler_container_core_joules_total[5s]"'
# ssh to your host that runs minikube
ssh -L9090:localhost:9090 your_name@your_host
# once logged in
kubectl port-forward service/prometheus-k8s -n monitoring 9090:9090
# open a browser on your local host and check prometheus metrics at localhost:9090
kubectl port-forward -n kepler service/kepler-exporter 9102:9102
Then open a browser on your local host and go to http://localhost:9102/metrics
Hi, I have installed "minikube" cluster on Openstack VM (Ubuntu 20.04) and tried to install "kepler-exporter". But getting "CrashLoopBackOff" error. Upon investigation of the logs, I found:
(venv) (base) cci@CCI:~/project-3/kube-prometheus$ kubectl logs kepler-exporter-hg9cd -n kepler
WARNING: failed to read int from file: open /sys/devices/system/cpu/cpu0/online: no such file or directory
flag provided but not defined: -kernel-source-dir
Usage of /usr/bin/kepler:
-add_dir_header
If true, adds the file directory to the header of the log messages
-address string
bind address (default "0.0.0.0:8888")
-alsologtostderr
log to standard error as well as files (no effect when -logtostderr=true)
-apiserver
if apiserver is disabled, we collect pod information from kubelet (default true)
-config-dir string
path to config base directory (default "/etc/kepler/kepler.config")
-disable-power-meter
whether manually disable power meter read and forcefully apply the estimator for node powers
-enable-cgroup-id
whether enable eBPF to collect cgroup id (default true)
-enable-gpu
whether enable gpu (need to have libnvidia-ml installed)
-enable-msr
whether MSR is allowed to obtain energy data
-expose-estimated-idle-power
Whether to expose the estimated idle power as a metric
-expose-hardware-counter-metrics
whether expose hardware counter as prometheus metrics (default true)
-kubeconfig string
absolute path to the kubeconfig file, if empty we use the in-cluster configuration
-log_backtrace_at value
when logging hits line file:N, emit a stack trace
-log_dir string
If non-empty, write log files in this directory (no effect when -logtostderr=true)
-log_file string
If non-empty, use this log file (no effect when -logtostderr=true)
-log_file_max_size uint
Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
-logtostderr
log to standard error instead of files (default true)
-machine-spec string
path to the machine spec file in json format
-metrics-path string
metrics path (default "/metrics")
-one_output
If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
-redfish-cred-file-path string
path to the redfish credential file
-skip_headers
If true, avoid header prefixes in the log messages
-skip_log_headers
If true, avoid headers when opening log files (no effect when -logtostderr=true)
-stderrthreshold value
logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=true) (default 2)
-v value
number for the log level verbosity
-vmodule value