Repository navigation
Log connecting peers and agent versions on the bootstrappers - #29
Merged
Merged
Conversation
ProbeLab's weekly counts of distinct peers and agent versions stopped when the bootstrap.libp2p.io identities moved to these boxes. kubo's peerlog plugin logs both, with no IPs, so turn it on. It logs at info whatever the global level is, so go back to error: at info, relay lines were 90% of the volume and no line had an agent version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Follows #16. ProbeLab's weekly counts of distinct peers and agent versions have been empty since early October, after the bootstrap.libp2p.io identities moved to these boxes (26c2ffb, 2026-09-29).
Why
ProbeLab's query counts distinct
peerand distinctagentfrom rows with ats. Info logging from #16 can't supply that. An 8.5-minute sample from lith-1 at info (2026-11-02) had:kubo's
peerlogplugin is built into the image and logs what's needed. It's off by default.connectedts,peeridentifiedts,peer,agentTested with the image we pin (kubo v0.43.1, by digest), in a local container on the public network for 75 seconds, with
GOLOG_LOG_LEVEL=error:connectedand 648identifiedlines, from 466 distinct peers and 98 distinct agent versions.error.That node was mostly dialling out, so this has not been tested under a bootstrapper's inbound load.
Change
roles/bootstrap/files/kubo-config.json: enablepeerlogunderPlugins.Plugins.k8s/bootstrap/deployment.yaml.j2:GOLOG_LOG_LEVELback toerror, which removes the relay lines, and correct the comment from Log kubo at info, in JSON, on the bootstrappers #16, which wrongly said info logs have no peer IDs.GOLOG_LOG_FMT=jsonstays. Thetime=lines in the sample were info lines that bypassed the JSON setting, and they go away witherror.This also drops the identify warnings and the 1% connection sample that #16 added.
Checked
kubo-config.jsonparses, andbootstrap.ymlpasses--syntax-check.scripts/render-manifests.ymlrenders, and every overlay builds withkubectl kustomize.bootstrapdiff againstmain: only the log level value.bootstrap-wssunchanged. The kubo config is built by the role, so it isn't in that diff.bootstrap.yml --checkagainst a box.Rolling out
bootstrap.ymlis applied by hand, so merging changes nothing on the boxes. Applying it restarts each bootstrapper. Start with one box:On that box, peerlog lines should appear and
dropped eventsshould stay at 0. The plugin drops events when its 64k queue fills. Then run it for the other boxes.Watch the log volume in Loki after the first box. The estimate is about 0.8 GiB a day uncompressed per instance, from the 1% connection sample (about 22 inbound connections a second on lith-1) and the test's 204-byte average line. That's about the same as #16's level, so far above the level before it.
Worth knowing
agentis free text sent by remote peers. Keep it in the log line and don't make it a Loki label.🤖 Generated with Claude Code