internet-latency-collector: separate cloud mode measurement identity - #4317
Draft
thijsvanemmerik wants to merge 1 commit into
Draft
thijsvanemmerik wants to merge 1 commit into
thijsvanemmerik wants to merge 1 commit into
Conversation
Cloud mode gets its own measurement description prefix, its own RIPE tag, its own tag filter and its own state file. Sharing any of them with the exchange collector lets one process reconcile against the other's measurements and stop all of them, because a measurement with no metadata in the local state file is treated as unwanted. Cloud mode has no target probe, so a source is blamed for delivering nothing only while its own measurement is still exporting, and a source that has never delivered is judged against its measurement's creation time. Recreation is now decided from the create list in one pass instead of a second copy of the same checks, and a changed target probe is reported before a changed target address.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part of measuring latency between AWS regions with the internet latency collector: a node file
switches it into a second mode, the region mode, that measures those regions instead of DoubleZero
exchange locations.
Both modes would share one RIPE Atlas account and claim measurements the same way, by the
description prefix "DoubleZero " and one shared state file. Each would treat the other's
measurements as its own, find no local metadata for them and stop them, and both sides would
recreate on the next cycle, every cycle. A recreated measurement costs 80 to 100 minutes of samples
before it delivers again. This gives the region mode its own description prefix ("DoubleZero
Cloud "), its own RIPE tag (
<env>-cloud) and its own state file, and makes every ownership checkask the mode.
Two smaller changes. The region mode names no target probe when a measurement goes quiet, because
its target is a fixed address with no probe behind it. And the pass that decides which old
measurement to stop now derives from the create list instead of repeating its checks, so a
measurement recreated for missing local metadata is stopped rather than left running beside its
replacement.
Nothing changes in production: the region mode runs only with a node file, which only a separate
deployment that does not exist yet supplies. One check does tighten on the existing path, from "description contains DoubleZero" to "description starts with DoubleZero ".
Everything this collector creates starts with that prefix, so the only effect is that
clear-measurements now skips a measurement made elsewhere that merely mentions DoubleZero.
Test:
go test ./controlplane/internet-latency-collector/internal/ripeatlas/...