Skip to content

internet-latency-collector: wire cloud mode end to end - #4322

Draft
thijsvanemmerik wants to merge 2 commits into
tve/cloud-latency-11-total-packet-lossfrom
tve/cloud-latency-12-wire-cloud-mode
Draft

thijsvanemmerik wants to merge 2 commits into
tve/cloud-latency-11-total-packet-lossfrom
tve/cloud-latency-12-wire-cloud-mode

Conversation

@thijsvanemmerik

Copy link
Copy Markdown
Contributor

Part of measuring latency between AWS regions with the internet latency collector. It can already
measure regions and write to ClickHouse, but nothing joins the two.

This makes run build the region collector and a ClickHouse exporter when it is given a node file
of cloud regions, through --cloud-node-file or DZ_ILC_CLOUD_NODE_FILE. With that file it skips
the ledger keypair, the ledger exporter and the Wheresitup feed, reads its ClickHouse settings from
CLICKHOUSE_* environment variables, optionally runs the migrations first, and flushes the exporter
on a 30-second tick, since the exporter has no timer of its own. It closes the exporter after both
loops stop, so the final flush still has records. Without the file, every path is as before.

The three atlas subcommands that list, create and clear measurements now take the same node file
and build the same collector, so each acts on the measurements the configured mode owns. Before
this they always built the collector for DoubleZero exchange locations, so clear-measurements with
a node file configured would have deleted the wrong set.

The Dockerfile also builds this collector into the core image, which did not build it at all, so
merging adds that one binary. Nothing else changes: the new mode turns on only with a node file,
which only a separate deployment supplies, and that does not exist yet.

Test: go test ./controlplane/internet-latency-collector/cmd/collector/...

The run command builds a cloud collector and a ClickHouse exporter when a cloud
node file is configured, and the four ripeatlas subcommands build the same
collector, so clear-measurements and create-measurements act on the set the
configured mode owns rather than the exchange set. Without that there is no
supported way to list or stop cloud measurements, and no abort handle short of
the RIPE web console.

The exporter is closed after both loops stop, so its final flush still has
records to write.
The main package spans more than one file, so the step builds the package
rather than a single file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant