[SERVER-62941] Update FTDCServerStatusCommandCollector to include oplog metrics from serverStatus command Created: 24/Jan/22 Updated: 29/Oct/23 Resolved: 19/Apr/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc2, 5.0.9, 4.4.15, 6.1.0-rc0 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Alex Bevilacqua | Assignee: | Gabriel Marks |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | former-quick-wins, ftdc | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Backport Requested: |
v6.0, v5.0, v4.4, v4.2
|
||||||||||||||||
| Sprint: | Security 2022-04-18, Security 2022-05-02 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
When the commandBuilder of the FTDCServerStatusCommandCollector is creating the serverStatus command an additional oplog: 1 filter should be appended. This will include OplogInfoServerStatus which contains both earliestOptime and latestOptime that could be used to calculate oplog windows in tooling that parses FTDC. |
| Comments |
| Comment by Githook User [ 27/Apr/22 ] |
|
Author: {'name': 'Gabriel Marks', 'email': 'gabriel.marks@mongodb.com', 'username': 'marksg07'}Message: |
| Comment by Githook User [ 27/Apr/22 ] |
|
Author: {'name': 'Gabriel Marks', 'email': 'gabriel.marks@mongodb.com', 'username': 'marksg07'}Message: |
| Comment by Githook User [ 26/Apr/22 ] |
|
Author: {'name': 'Gabriel Marks', 'email': 'gabriel.marks@mongodb.com', 'username': 'marksg07'}Message: |
| Comment by Githook User [ 19/Apr/22 ] |
|
Author: {'name': 'Gabriel Marks', 'email': 'gabriel.marks@mongodb.com', 'username': 'marksg07'}Message: |
| Comment by Mark Benvenuto [ 26/Jan/22 ] |
|
judah.schvimer It should be okay to just take an intent lock. In FTDC, we try to minimize the chance it will have block for any significant time. We don't want it to get stuck for seconds at a time for instance. We set various flags to minimize that (https://github.com/mongodb/mongo/blob/d2b21149224344ac9ebbed560caeecfa96eeb613/src/mongo/db/ftdc/collector.cpp#L66-L75). |
| Comment by Judah Schvimer [ 25/Jan/22 ] |
|
Here is where we run the collStats command. We use "waitForLock: false" which I think means that if we can't get the lock we just skip it. Doing something like this should be fine. mark.benvenuto, do you see any problem with this request and taking an intent lock on the oplog during FTDC serverStatus collection? |
| Comment by Bruce Lucas (Inactive) [ 25/Jan/22 ] |
|
Currently we include WT storage engine metrics which requires accessing the storage engine, and also collStats for the oplog which also accesses the storage engine and I think takes locks? Would this ticket add any more opportunities for blocking FTDC? |
| Comment by Judah Schvimer [ 24/Jan/22 ] |
|
One concern here is that the oplog serverStatus component takes locks and reads from the storage engine. I'm not sure if this is acceptable. bruce.lucas, do you have any insight here? |