Skip to content

Conversation

@czephyr
Copy link

@czephyr czephyr commented Dec 23, 2024

A suggestion to update the docker example to be a little more explanatory on the flags and mounts

Signed-off-by: czephyr <[email protected]>
@czephyr czephyr force-pushed the readme_docker_example branch from 6243671 to 1d9dae0 Compare December 23, 2024 18:58
README.md Outdated
-v "/var/lib/node_exporter/textfile_collector:/var/lib/node_exporter/textfile_collector"
quay.io/prometheus/node-exporter:latest \
--path.rootfs=/host
--path.rootfs=/host --path.udev.data=/host/run/udev/data --path.procfs=/host/proc --path.sysfs=/host/sys
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't need to be changed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does --path.rootfs=/host imply all the following flags?

Copy link
Author

@czephyr czephyr Dec 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The udev flag is not obvious and diskstats is enabled by default. If its not set it runs into the warning

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, that sounds like a bug. The --path.rootfs flag is supposed to adjust all path defaults so only the one flag is needed.

Copy link
Author

@czephyr czephyr Dec 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The --path.rootfs flag is supposed to adjust all path defaults so only the one flag is needed.

Would you mind pointing out an instance of that happening in the code for /proc or /sys?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example, the os_release.go uses rootfsPath to build the path.

Copy link
Author

@czephyr czephyr Dec 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah for /proc and /sys there is no explicitness in the code because of this I think #912 (comment)

So its possible that when udev flag has been added the --path.rootfs behavior wasn't taken in consideration. I'll attempt a PR if I find it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, but those two paths (/proc and /sys) don't need redirect by default because the node_exporter is executed in the host PID namespace in order to access host metrics.

IIRC, we used to have examples of adjusting --path.procfs with a volume mount. But it turned out we still needed host PID anyway. So those recommendations were dropped. Now we only need to use --path.rootfs.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either the udev flag is better documented and explained or #3216

czephyr and others added 2 commits December 23, 2024 20:40
Co-authored-by: Ben Kochie <[email protected]>
Signed-off-by: Alfedo Funicello <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants