Add deferred sync for check output #204
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new configuration
check_update_interval
which allows us to defer updating the output of a check which is in a steady state. The motivation for this is many checks produce slightly different output (e.g. bandwidth measures, latency, timestamps) per run, and this currently causes Consul to re-sync on almost every invocation. This defeats the edge-trigger optimizations. Now, if the state is steady, we will delay the sync for up tocheck_update_interval
(defaults to 5m). This way the UI shows relatively up to date output, always up-to-date state, and we get a huge write reduction. For some checks running at 5s intervals, this is a 60x write reduction. Fixes #157.