Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update readme docker example #3215

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ docker run -d \
--net="host" \
--pid="host" \
-v "/:/host:ro,rslave" \
-v "/var/lib/node_exporter/textfile_collector:/var/lib/node_exporter/textfile_collector"
czephyr marked this conversation as resolved.
Show resolved Hide resolved
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

--collector.textfile.directory /var/lib/node_exporter/textfile_collector
```

For Docker compose, similar flag changes are needed.
Expand Down