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

Support docker diskio stats in Windows #6815

Closed
jsoriano opened this issue Apr 10, 2018 · 1 comment
Closed

Support docker diskio stats in Windows #6815

jsoriano opened this issue Apr 10, 2018 · 1 comment

Comments

@jsoriano
Copy link
Member

Docker stats use a different data structure for blkio stats in Windows, the main difference is that in posix systems (Linux at least) stats are separated by device by Major/Minor (lists of BlkioStatsEntry), and in Windows they are directly summarized by reads and writes, by operations and volume (StorageStats).
Now metricbeat uses only the Linux data structures, that are not populated on Windows hosts.

This is a follow-up of #6701

ruflin pushed a commit that referenced this issue Apr 13, 2018
This PR continues with #6608 in the aim to provide docker metrics more consistent with `docker stats`. Currently we report for disk I/O the number of operations per second.

This PR adds accumulated I/O stats per number of operations and per data volume since the container started, as `docker stats` does. I think this information is more valuable, as it permits to have further aggregations when visualizing it. It also addresses some other issues in the metricset.

Fields in events have been reorganized and old ones have been marked as deprecated.

We could also add some extra functionality, as obtaining metrics also on Windows hosts (as is this module now it would only work with docker daemons running on Linux and not sure about Mac). In Linux we could also collect metrics per block device.

- [x] Add accumulated I/O stats to diskio metricset
- [x] Fix diskio metricset when docker reads from multiple devices
- [x] Some naming and documentation fixes
- [x] Fix memory leak in blkio service (last seen stats were being stored, but never removed)
- [x] More tests

To follow-up in other issues:

- ~~Group by device in Linux?~~ To be done if requested in the future
- Support for Windows storage stats? Follow-up issue #6815
@jsoriano jsoriano self-assigned this Aug 27, 2018
@jsoriano
Copy link
Member Author

Related to #6894

jsoriano added a commit that referenced this issue Aug 29, 2018
Docker stats use a different data structure for blkio stats in Windows, the main difference is that in posix systems (Linux at least) stats are separated by device by Major/Minor (lists of BlkioStatsEntry), and in Windows they are directly summarized by reads and writes, by operations and volume (StorageStats).

This change counts the metrics of both data structures and aggregates the result.

Fixes #6815
jsoriano added a commit to jsoriano/beats that referenced this issue Aug 29, 2018
Docker stats use a different data structure for blkio stats in Windows, the main difference is that in posix systems (Linux at least) stats are separated by device by Major/Minor (lists of BlkioStatsEntry), and in Windows they are directly summarized by reads and writes, by operations and volume (StorageStats).

This change counts the metrics of both data structures and aggregates the result.

Fixes elastic#6815

(cherry picked from commit 63f25a4)
jsoriano added a commit that referenced this issue Aug 29, 2018
Docker stats use a different data structure for blkio stats in Windows, the main difference is that in posix systems (Linux at least) stats are separated by device by Major/Minor (lists of BlkioStatsEntry), and in Windows they are directly summarized by reads and writes, by operations and volume (StorageStats).

This change counts the metrics of both data structures and aggregates the result.

Fixes #6815

(cherry picked from commit 63f25a4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant