Node-exporter is one of the components included as part of the monitoring stack in Konvoy. It is configured as a daemonset (prometheus-kubeaddons-prometheus-node-exporter) and deployed on each node to expose hardware- and kernel-related metrics on each node of the cluster.
By default, node-exporter has a wide variety of collectors enabled by default. For a comprehensive list of collectors enabled/disabled by default, the operator could SSH into a node in the cluster, identify the node-exporter container and run the command “node_exporter --help” or refer to this article.
crictl exec -it node_exporter --help
To disable a node-exporter collector in Konvoy, the operator could specify the flag --no-collector. in the prometheus block of the cluster.yaml. A list of the flags that can be specified can be found here:
- name: prometheus enabled: true values: | prometheus-node-exporter: extraArgs: - --no-collector.In Konvoy, node-exporter is deployed with the following arguments by default:
[ "--path.procfs=/host/proc", "--path.sysfs=/host/sys", "--web.listen-address=$(HOST_IP):9100", "--collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/)", "--collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$" ]
This means that the node-collector is instructed to ignore the metrics from a list of filesystems and mount points. To confirm that node-exporter is in fact started with the arguments specified in the cluster.yaml, the operator could execute the following command:
kubectl get daemonsets prometheus-kubeaddons-prometheus-node-exporter -n kubeaddons -ojsonpath='{.spec.template.spec.containers[0].args}'| jq .An alternative to verify that the changes took effect is to search for the metric in the Prometheus query browser.