Skip to content

chore(autocon5): pin sonda 1.22.2 and migrate aggregate scrape to /scenarios/metrics - #112

Open
davidban77 wants to merge 5 commits into
mainfrom
update-sonda-to-1.16-scenarios-metrics
Open

chore(autocon5): pin sonda 1.22.2 and migrate aggregate scrape to /scenarios/metrics#112
davidban77 wants to merge 5 commits into
mainfrom
update-sonda-to-1.16-scenarios-metrics

Conversation

@davidban77

@davidban77 davidban77 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

sonda 1.16.0 renamed the aggregate scenario-metrics route from /metrics to /scenarios/metrics and reclaimed /metrics for server-self telemetry. Without the URL flip a student running nobs autocon5 up gets sonda_server_* series at the address Part 1 tells them to open, Telegraf ingests server telemetry instead of device shapes, and every Part 1 and Part 2 query comes back empty. This flips the scrape URLs and pins sonda 1.22.2, the newest published image.

  • Telegraf scrape URLs move to /scenarios/metrics, filtered per device and scoped with include_state=running,unresolved,held so paused baselines drop out during a cascade. Both hands-on guides, the tour, the compose comments, the data-pipelines doc and the srl1 catalog header follow.
  • SONDA_IMAGE pinned to 1.22.2 across compose and both .env.example files; the shared root pin was three versions stale. Scrape output is unchanged from 1.16.0 — same 38 series per device, same cascade timing. (1.22.3 is tagged upstream but its release workflow was cancelled before the container build, so no image exists for it.)
  • The ping pack drops a jitter key sonda never read: it sat inside generator:, where a composable pack's metrics cannot carry one, so the series was always the bare sine. It also blocks parsing under sonda 1.22.3, which rejects unknown keys in nested blocks.
  • Cascade tests realigned to the Pattern C octet design — they still built the cascade with in_octet_start/out_octet_start and asserted octet entries the cascade stopped emitting once freezing moved to delay.close.snap_to on the baselines.
  • A contract test now asserts every cascade-targetable baseline interface freezes both octet counters. Removing an override previously left the suite green while octet series silently dropped for the length of a flap.

…cenarios/metrics

sonda 1.16.0 (released 2026-06-15) renamed the aggregate scenario-metrics
route from `/metrics` to `/scenarios/metrics` and reclaimed `/metrics`
for the server-self endpoint (Prometheus convention). The workshop's
Telegraf scrape configs, both hands-on guides, the docker-compose comment
block, the data-pipelines doc, and the srl1 catalog comment all needed
the URL flip. Also bumps the pinned `SONDA_IMAGE` from 1.14.0 to 1.16.0
in docker-compose.yml and refreshes the .env.example commented example.

End-to-end verified: a fresh `nobs autocon5 up` against this branch
produces 6 hits for `interface_oper_state{intf_role="peer"}` in
Prometheus (3 per device, 2 devices) — same shape Part 1 promises.
…ites

Follow-up to the previous commit. Missed two surfaces:

- `docs/workshop/tour.md`: the rendered docs-site Tour page (separate
  from the autocon5 in-repo guides) had its API table row, the
  pre-curl prose, and three curl examples still pointing at the
  legacy aggregate `/metrics` URL. Updated all five sites.
- `workshops/autocon5/sonda/scripts/sonda-setup.sh`: header comment
  describing what Telegraf scrapes still said `/metrics`.

The `/metrics` mention in tour.md's "what is Prometheus" paragraph
stays — that's a generic reference to the Prometheus exposition
format, not the sonda endpoint.
Bumps SONDA_IMAGE from 1.16.0 to 1.22.2, the newest published image. 1.22.3
is tagged upstream but its release workflow was cancelled before the container
build, so no image exists for it.

Scrape output is unchanged: both devices still expose the same 38 series, and
the `while:` cascade inversion pauses baselines on the same schedule.

- docker-compose.yml, workshops/autocon5/.env.example — SONDA_IMAGE default
- .env.example — shared pin was three versions stale at v1.0.1
- docs/data-pipelines.md — version label in the pipeline diagram

Refs: #112

Claude-Session: https://claude.ai/code/session_01VkjrQfom1CVg1NUnwj6Cux
`jitter` sat inside the ping pack's `generator:` block, where sonda never read
it — jitter is an entry-level schedule field, and a composable pack's metrics
cannot carry one. The emitted series was always the bare sine.

Removing it keeps the pack parsing under sonda 1.22.3, which rejects unknown
keys in nested scenario blocks. Moving the key up to entry level is not an
option: it would fan out across the whole pack and jitter `ping_result_code`,
whose 0/1/2 values drive the exact value mappings on the device-health State
panel.

Refs: #112

Claude-Session: https://claude.ai/code/session_01VkjrQfom1CVg1NUnwj6Cux
The interface cascade stopped emitting octet counters when octet freezing moved
to `delay.close.snap_to` on the baseline pack overrides, but the tests still
built the cascade with `in_octet_start`/`out_octet_start` and asserted
`cascade_in_octets`/`cascade_out_octets` entries, so every interface-cascade
test raised TypeError.

Tests now assert the current contract on both halves: the cascade emits only
the signal, the oper_state override and the UPDOWN log, and every baseline
interface a cascade can target carries snap_to on both of its octet metrics.
Without the second half, deleting an override left the suite green while octet
series silently dropped for the duration of a flap.

The module docstring carried the same stale claim as the tests.

Refs: #112

Claude-Session: https://claude.ai/code/session_01VkjrQfom1CVg1NUnwj6Cux
@davidban77 davidban77 changed the title chore(autocon5): bump sonda to 1.16.0 + migrate aggregate scrape to /scenarios/metrics chore(autocon5): pin sonda 1.22.2, migrate aggregate scrape to /scenarios/metrics, and land Part 1-3 work Aug 31, 2026
@davidban77 davidban77 changed the title chore(autocon5): pin sonda 1.22.2, migrate aggregate scrape to /scenarios/metrics, and land Part 1-3 work chore(autocon5): pin sonda 1.22.2 and migrate aggregate scrape to /scenarios/metrics Aug 31, 2026
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