internet-latency-collector: add node file generate and verify commands - #4314
Draft
thijsvanemmerik wants to merge 1 commit into
Draft
thijsvanemmerik wants to merge 1 commit into
thijsvanemmerik wants to merge 1 commit into
Conversation
nodefile generate fills each region's ping target from the AWS published address list, keeping the current target when it still answers. nodefile verify checks a committed file against the same list and reports every problem at once rather than stopping at the first. Adds config/nodes-aws.json, seventeen AWS regions with up to four RIPE Atlas probe IDs each, ordered with the preferred probe first. A signal during either command reports cancellation instead of naming live addresses as dead. The collector's main package now spans more than one file, so the make and release builds name the package instead of main.go.
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.
The collector reads a node file listing each cloud region, its RIPE Atlas probe IDs, and an address
in that region that answers ping, and nothing keeps that file correct. This adds
nodefile generateand
nodefile verify, and commits the file for 17 AWS regions.The probes hosted in AWS regions do not answer ping, so each region needs its own target address,
taken from the list AWS publishes for reachability testing.
generatepings those addresses andwrites the first that answers, keeping the address already in the file when it still answers, so
regenerating an unchanged file rewrites the same bytes.
verifyfails when an address has left thepublished list or stopped answering.
--skip-pingruns the published-list check alone.It also changes how the binary is built. Until now
cmd/collectorheld a single Go file, and boththe Makefile and the goreleaser config built
cmd/collector/main.go, which compiles that one fileand nothing else. This PR adds a second file there, so both now build
./cmd/collector. Withoutthat change the binary and the .deb would not compile.
Nothing else changes. The new commands run only when called, and nothing calls them.
Test:
go test ./controlplane/internet-latency-collector/cmd/collector/.... By hand, fromcontrolplane/internet-latency-collector:go run ./cmd/collector nodefile verify.