From e2364fe639a729fc794ab86e24d50b96443dc0ce Mon Sep 17 00:00:00 2001 From: Michael Jaradah Date: Sun, 4 Oct 2026 08:28:13 -0700 Subject: [PATCH] can-bench: run on the latest Zelos release, and drop its workarounds Agent 26.0.8 -> 26.0.9, CLI 0.1.9 -> 0.1.10, and the notebooks pin zelos-sdk 0.0.12. Those releases fix what the bench was working around: - Rendered notebooks are no longer written 0600 and root-owned (zeloscloud/src#1505), so the `chmod a+r` step and the entrypoint's umask go. - `zelos extensions install` takes a version with or without its "v" (zeloscloud/src#1491), so that comment goes. 26.0.9 no longer binds `[::]`; it serves IPv4 with a warning. The default, 0.0.0.0:2300, is what the bench wants, so `--listen-address` goes. `just record`, the traces/ mount and traces/dcdc-defect.trz go too. They fed the first notebook suite, which checked a committed recording; the current two notebooks read the live bench, and nothing reads the recording. The apt source uses the signed keyring, as the install docs do, instead of [trusted=yes]. The README gets the versions, the Data view, and the CAN//... signal layout the extension has published under since v0.1.15. --- bench/agent-entrypoint.sh | 8 +----- bench/agent.Dockerfile | 14 ++++++----- can-bench/README.md | 23 +++++++++--------- can-bench/compose.yaml | 2 -- can-bench/justfile | 15 ------------ can-bench/notebooks/bench-health.md | 2 +- .../notebooks/dcdc-respects-allowance.md | 2 +- can-bench/traces/dcdc-defect.trz | Bin 124416 -> 0 bytes 8 files changed, 22 insertions(+), 44 deletions(-) delete mode 100644 can-bench/traces/dcdc-defect.trz diff --git a/bench/agent-entrypoint.sh b/bench/agent-entrypoint.sh index 11a3222..761b4e8 100755 --- a/bench/agent-entrypoint.sh +++ b/bench/agent-entrypoint.sh @@ -6,11 +6,6 @@ # disables extension installs while more than one agent is connected. set -euo pipefail -# The agent runs as root, and its default umask leaves everything it writes -# into a mounted volume unreadable to the user who owns the checkout. Rendered -# notebooks and recorded traces are meant to be opened. -umask 022 - CONFIG=${BENCH_CAN_CONFIG:-/bench/can.json} EXTENSION=${BENCH_CAN_EXTENSION:-zeloscloud.zelos-extension-can} @@ -23,8 +18,7 @@ echo "config: ${CONFIG}" # every sample, so queries return nothing. zelos-agent \ --store-type memory \ - --store-retain-duration "${BENCH_RETAIN:-15m}" \ - --listen-address '[::]:2300' & + --store-retain-duration "${BENCH_RETAIN:-15m}" & agent_pid=$! trap 'kill "${agent_pid}" 2>/dev/null || true' TERM INT diff --git a/bench/agent.Dockerfile b/bench/agent.Dockerfile index 8330295..dddbe7b 100644 --- a/bench/agent.Dockerfile +++ b/bench/agent.Dockerfile @@ -4,17 +4,19 @@ # download, the Python interpreter and its dependencies in an image layer. FROM ubuntu:22.04 -ARG AGENT_VERSION=26.0.8 -ARG CLI_VERSION=0.1.9 -# The marketplace identifier is the repository path, and the version is the git -# tag, including its leading "v". +ARG AGENT_VERSION=26.0.9 +ARG CLI_VERSION=0.1.10 +# The marketplace identifier is the extension's repository. ARG CAN_EXTENSION=zeloscloud/zelos-extension-can ARG CAN_EXTENSION_VERSION=v0.1.17 RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates curl procps \ - && echo "deb [trusted=yes] https://release.zeloscloud.io/app/ubuntu jammy main" \ - > /etc/apt/sources.list.d/zelos.list \ + && curl -fsSLo /usr/share/keyrings/zelos-archive-keyring.gpg \ + https://release.zeloscloud.io/app/zelos-archive-keyring.gpg \ + && printf '%s\n' 'Types: deb' 'URIs: https://release.zeloscloud.io/app/ubuntu' 'Suites: jammy' \ + 'Components: main' 'Signed-By: /usr/share/keyrings/zelos-archive-keyring.gpg' \ + > /etc/apt/sources.list.d/zelos.sources \ && apt-get update \ && apt-get install -y --no-install-recommends "zelos-agent=${AGENT_VERSION}" \ && rm -rf /var/lib/apt/lists/* diff --git a/can-bench/README.md b/can-bench/README.md index 39979c4..daa5ecb 100644 --- a/can-bench/README.md +++ b/can-bench/README.md @@ -129,7 +129,6 @@ bench runs. ../nodes/vcu|bms|dcdc/ three Zephyr applications bench/ the agent's config; the images and Renode script are ../bench/ notebooks/ the tests -traces/ recorded runs the tests check against ``` The firmware lives at the root of the repository, shared with any other bench. @@ -168,16 +167,16 @@ and 512 KB. Open the Zelos app and connect to the bench: 1. Open the right sidebar — `Cmd+J` or `Ctrl+J` -2. **Data Sources** → **New agent** +2. **Data** → **New agent** 3. Enter `localhost:2300`, or `:2300` from another machine The signal tree fills with `vcan0` and every message in the table above. Double-click a signal to plot it. -Signals are named `vcan0/_.`, for example -`vcan0/0300_DCDC_Status.InputCurrent`. A second source, `vcan0_raw`, carries -every frame undecoded, which distinguishes "no traffic" from "traffic the DBC -does not match". +Signals are named `CAN/vcan0/_.`, for example +`CAN/vcan0/0300_DCDC_Status.InputCurrent`. `CAN/vcan0/Frame` carries every frame +undecoded, which distinguishes "no traffic" from "traffic the DBC does not +match". **If port 2300 is already in use**, `docker compose` fails with `failed to bind host port`. The Zelos app runs its own agent on that port, so this happens on @@ -214,8 +213,8 @@ That restarts the simulator with the second DC-DC firmware and gives the agent a fresh store, so what you see next comes only from this build. Give it a couple of minutes to get through a drive cycle, then plot two signals together: -- `vcan0/0201_BMS_Limits.AuxCurrentLimit` -- `vcan0/0300_DCDC_Status.InputCurrent` +- `CAN/vcan0/0201_BMS_Limits.AuxCurrentLimit` +- `CAN/vcan0/0300_DCDC_Status.InputCurrent` When the vehicle enters Charge, the BMS drops the converter's allowance. The draw should be under the new limit at once. Instead it walks down to it, drawing @@ -247,8 +246,7 @@ Each file in `notebooks/` is a test, and `just test` runs both: the allowance rather than assuming the bench has been up long enough. `just flash defect` loads the defective DC-DC build, and the second notebook -fails on it. `traces/dcdc-defect.trz` is a recording of that build, if you want -to look at the fault without running it. +fails on it. Each notebook is also a report: it charts what it measured and ends with its checks. `just test` exits non-zero if either fails, and writes a self-contained @@ -292,8 +290,9 @@ extension in the app's Explorer. This has not been run here. | Zephyr | `v4.4.2` | | Zephyr SDK | `1.0.1`, Arm only | | Renode | `antmicro/renode:1.16.1` | -| Zelos agent | `26.0.8` | -| Zelos CLI | `0.1.9` | +| Zelos agent | `26.0.9` | +| Zelos CLI | `0.1.10` | +| Zelos SDK (notebooks) | `0.0.12` | | CAN extension | `zeloscloud/zelos-extension-can` `v0.1.17` | | cantools | `41.3.1` | diff --git a/can-bench/compose.yaml b/can-bench/compose.yaml index 919bb3e..9834275 100644 --- a/can-bench/compose.yaml +++ b/can-bench/compose.yaml @@ -38,8 +38,6 @@ services: # Mounted rather than copied into the image, so editing it takes effect # on the next `just up`. - ./bench:/bench:ro - # Recorded runs the tests check against, and where `just record` writes. - - ./traces:/traces # Writable: the notebook runner assigns cell ids and stages a # provisioning script beside each notebook. - ./notebooks:/notebooks diff --git a/can-bench/justfile b/can-bench/justfile index fcd7de2..e3d62e9 100644 --- a/can-bench/justfile +++ b/can-bench/justfile @@ -41,10 +41,6 @@ test: zelos notebook run "/notebooks/${name}" -o "/notebooks/${name%.md}.html" \ || failed+=("${name}") done - # The agent writes its rendered pages 0600 and owned by root, so the user - # who asked for them cannot open them. Fixed from inside the container, - # because only root there can. - docker compose exec -T agent sh -c 'chmod a+r /notebooks/*.html' || true if [ ${#failed[@]} -gt 0 ]; then echo echo "failed: ${failed[*]}" >&2 @@ -72,17 +68,6 @@ flash VARIANT: _elf echo echo "DC-DC is now the {{ VARIANT }} build. Give it ~2 min for a drive cycle, then: just test" -# Record the running bench to traces/, for a test to check against later. -# -# trz2 rather than the default: the legacy format is a DuckDB database with a -# 2.8 MB floor regardless of window, where this is about 100 KB. -record NAME: - docker compose exec -T agent zelos live export \ - --output "/traces/{{ NAME }}.trz" --last 5m --format trz2 --force - # As with the rendered pages: written 0600 and root-owned. See `test`. - docker compose exec -T agent sh -c 'chmod a+r /traces/{{ NAME }}.trz' - @echo "wrote traces/{{ NAME }}.trz" - # Regenerate the CAN codec from the DBC. Deterministic: no timestamps. dbc: {{ FIRMWARE }} dbc diff --git a/can-bench/notebooks/bench-health.md b/can-bench/notebooks/bench-health.md index b908582..55b4136 100644 --- a/can-bench/notebooks/bench-health.md +++ b/can-bench/notebooks/bench-health.md @@ -2,7 +2,7 @@ description: Every node on the bench is talking, and what it says makes sense. requires-python: '>=3.10' dependencies: -- zelos-sdk[notebook]>=0.0.12a2 +- zelos-sdk[notebook]==0.0.12 - tzdata params: window: -2m diff --git a/can-bench/notebooks/dcdc-respects-allowance.md b/can-bench/notebooks/dcdc-respects-allowance.md index 638c82d..3041352 100644 --- a/can-bench/notebooks/dcdc-respects-allowance.md +++ b/can-bench/notebooks/dcdc-respects-allowance.md @@ -2,7 +2,7 @@ description: The DC-DC converter stays under the current the BMS allows it. requires-python: '>=3.10' dependencies: -- zelos-sdk[notebook]>=0.0.12a2 +- zelos-sdk[notebook]==0.0.12 - tzdata params: window: -5m diff --git a/can-bench/traces/dcdc-defect.trz b/can-bench/traces/dcdc-defect.trz deleted file mode 100644 index e6ba448105278b30f959fac20abfcade75e7e5f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124416 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 OD^TX)i1Z`<1d?qj6s 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