Only request metric collections for hosts connected to the MS#13561
Only request metric collections for hosts connected to the MS#13561GaOrtiga wants to merge 2 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 4.20 #13561 +/- ##
============================================
- Coverage 16.26% 16.26% -0.01%
+ Complexity 13437 13436 -1
============================================
Files 5667 5667
Lines 500676 500734 +58
Branches 60799 60804 +5
============================================
+ Hits 81420 81428 +8
- Misses 410150 410201 +51
+ Partials 9106 9105 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-authored-by: Fabricio Duarte <fabricio.duarte.jr@gmail.com>
| // When there are multiple Management Server nodes on the environment, all of them request stat collections for the same VM in different moments; with that, | ||
| // the interval from "vm.stats.interval" is not respected. Also, the stats commands are routed to the Management Server connected to the Agent where the VM is running. | ||
| // Furthermore, the number of stat entries on the DB scales with the number of Management Servers. Therefore, we only request the stat collections from | ||
| // hosts connected to the Management Server, honoring the interval, presenting the correct data, and reducing the necessary storage to store the VMs stats. |
There was a problem hiding this comment.
@GaOrtiga , can you summarise this and move it to a javadoc?
There was a problem hiding this comment.
I can move it to the javadoc, I originally put it there because I believe its a little weird to have a javadoc that refers to a single if in the method, but I'm fine with changing it.
As far as summarizing, would it still be necessary? if we are moving it to the javadocs it's no longer cluttering the code, and having the full information on why this if is usefull won't hurt
Description
Currently, KVM metric collections are performed for each Management Server independently. This process sends command to the Agents, requesting a collection of VM metrics. The Agent receives the command, collects the current metrics, compares it with the previous collection, and sends the final results to the MS that requested the metrics. Finally, the MS saves the data to the DB.
The new metrics are compared to the previous metrics collected, regardless of the MS that triggered the process. Thus, the collection interval depends on the interval between the Management Servers, and not the interval defined in the configuration. This does not affect the authenticity of the data, however, it disregards the configured timeout.
To prevent this situation, the source code has been adjusted, guaranteeing that the MS only sends metric collection commands to hosts connected to it.
Types of changes
Feature/Enhancement Scale or Bug Severity
Bug Severity
How Has This Been Tested?