Skip to content
Snippets Groups Projects
Commit 0b9b7bdd authored by John Engelman's avatar John Engelman Committed by Cameron Sparr
Browse files

Specify host mount prefix with envvar.

closes #1120
parent 4c8449f4
No related branches found
No related tags found
No related merge requests found
...@@ -49,6 +49,9 @@ based on _prefix_ in addition to globs. This means that a filter like ...@@ -49,6 +49,9 @@ based on _prefix_ in addition to globs. This means that a filter like
- rethinkdb: `host -> rethinkdb_host` - rethinkdb: `host -> rethinkdb_host`
- **Breaking Change**: The `win_perf_counters` input has been changed to sanitize field names, replacing `/Sec` and `/sec` with `_persec`, as well as spaces with underscores. This is needed because Graphite doesn't like slashes and spaces, and was failing to accept metrics that had them. The `/[sS]ec` -> `_persec` is just to make things clearer and uniform. - **Breaking Change**: The `win_perf_counters` input has been changed to sanitize field names, replacing `/Sec` and `/sec` with `_persec`, as well as spaces with underscores. This is needed because Graphite doesn't like slashes and spaces, and was failing to accept metrics that had them. The `/[sS]ec` -> `_persec` is just to make things clearer and uniform.
- The `disk` input plugin can now be configured with the `HOST_MOUNT_PREFIX` environment variable.
This value is prepended to any mountpaths discovered before retrieving stats.
It is not included on the report path. This is necessary for reporting host disk stats when running from within a container.
### Features ### Features
......
...@@ -16,6 +16,14 @@ https://en.wikipedia.org/wiki/Df_(Unix) for more details. ...@@ -16,6 +16,14 @@ https://en.wikipedia.org/wiki/Df_(Unix) for more details.
# mount_points = ["/"] # mount_points = ["/"]
``` ```
Additionally, the behavior of resolving the `mount_points` can be configured by using the `HOST_MOUNT_PREFIX` environment variable.
When present, this variable is prepended to the mountpoints discovered by the plugin before retrieving stats.
The prefix is stripped from the reported `path` in the measurement.
This settings is useful when running `telegraf` inside a docker container to report host machine metrics.
In this case, the host's root volume should be mounted into the container and the `HOST_MOUNT_PREFIX` and `HOST_ETC` environment variables set.
`docker run -v /:/hostfs:ro -e HOST_MOUNT_PREFIX=/hostfs -e HOST_ETC=/hostfs/etc telegraf-docker`
### Measurements & Fields: ### Measurements & Fields:
- disk - disk
......
...@@ -81,8 +81,10 @@ func (s *systemPS) DiskUsage( ...@@ -81,8 +81,10 @@ func (s *systemPS) DiskUsage(
continue continue
} }
} }
if _, err := os.Stat(p.Mountpoint); err == nil { mountpoint := os.Getenv("HOST_MOUNT_PREFIX") + p.Mountpoint
du, err := disk.DiskUsage(p.Mountpoint) if _, err := os.Stat(mountpoint); err == nil {
du, err := disk.DiskUsage(mountpoint)
du.Path = p.Mountpoint
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment