[SERVER-46501] Add /proc/self/mountinfo to hostInfo response Created: 28/Feb/20 Updated: 29/Oct/23 Resolved: 20/Mar/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | 4.2.6, 4.4.0-rc0, 4.7.0 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Billy Donahue | Assignee: | Billy Donahue |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Backport Requested: |
v4.4, v4.2
|
||||||||||||
| Sprint: | Dev Tools 2020-03-09, Dev Tools 2020-03-23 | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
Ticket The problem was that there was nothing in FTDC binding the ephemeral block device name for the underlying Elastic Block Store device to the filesystem seen by mongod. So there was no way for an operator to interpret the FTDC stats and see this. So we should add the mount table to the hostInfo. This way we can gather some clue as to why a disk would be seeing the I/O stats it's reporting. |
| Comments |
| Comment by Githook User [ 07/Apr/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: (cherry picked from commit 198a9d8ae3619362e00bd3a14e15e633ab731d18) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 06/Apr/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: (cherry picked from commit 198a9d8ae3619362e00bd3a14e15e633ab731d18) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 06/Apr/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4.2 backport requested in the comments. Should be easy. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by James Broadhead (Inactive) [ 23/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
billy.donahue same for MDB 4.2 (if feasible) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 20/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Would this table be useful on pre-4.4 branches? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 20/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'email': 'billy.donahue@mongodb.com', 'name': 'Billy Donahue', 'username': 'BillyDonahue'}Message: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 20/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Shortened the names a bit. The records look like this now:
I'm showing the record for a "real" block device here, so we can see that the "source" field has a useful name. This will be the key that maps these records to the FTDC disks stats. I believe we can associate a k8s PV spec with a "mountPoint" to find a mountInfo record, get that record's corresponding "source" field, and use that to find the iostats in the ftdc disk stats array. The mechanics of doing all that in operator code are going to be easier if hostInfo() returns a brokendown object of interpreted mountinfo fields. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Louis Plissonneau (Inactive) [ 20/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
FYI james.broadhead | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sara Williamson [ 20/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
We decided to go with JSON output. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 19/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 19/Mar/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Could report the lines of /proc/mountinfo as-is in the hostInfo output, or report a breakdown in JSON Objects, which takes a lot more "screen space" but is obviously easier to automatically consume.
Or....
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Billy Donahue [ 28/Feb/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Essentially replaces |