Repository navigation
Feat/146 implement file system arrays - #582
Merged
Merged
Conversation
Adds a Claude Code skill whose driver builds cc-backend and runs it isolated in a scratch directory with the internal metric store, never touching the repo's ./var. Subcommands cover setup, start/stop, line-protocol ingestion, job start, GraphQL queries and metric store dumps; `smoke` checks per-mount filesystem series and their node sum for a running job end to end. .gitignore now re-includes only .claude/skills/run-cc-backend/. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Adopt cc-lib v2.15.0, which adds the filesystem and network device scopes, declares their instances in the subcluster topology and removes the metric-group API. - One IsDevice() branch in the shared scope-query builder handles accelerator, filesystem and network for both the internal metric store and the external cc-metric-store client: one query per declared instance at the device scope, one aggregated query per host at node scope, no data for any other requested scope. - Instances come from topology.filesystems/networks of each node's subcluster, and from the job's allocated accelerators. A subcluster that declares none gets no data and no error. - The archiver also stores the filesystem and network scopes whenever the subcluster declares them, independent of the node count. - Remove the metric-group plumbing from the archive decoders, the Parquet converter and the job-data deep copy. - Collectors must tag device data type=<device>,type-id=<id>, as for accelerators; stype/stype-id under type=node lands in the host buffer. - Regenerate Swagger and document device scopes in CLAUDE.md. Includes the OpenSpec change device-metric-scopes. BREAKING CHANGE: a device scope requested for a CPU-native metric now returns no data instead of falling back to the native scope. Newly archived GPU jobs with more than 8 nodes no longer contain hwthread series, and the node list and single-node GPU job rows show CPU metrics at core instead of hwthread scope. Job data with a top-level array such as the former "filesystems" no longer decodes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The job-archive and line-protocol links pointed at cc-specifications, which is no longer maintained in step with the code. README.md and CLAUDE.md now point at the JSON schemas embedded in cc-lib, which are canonical. The /write/ endpoint documents its line format inline, including the type/type-id tags of device metrics, and the description now reaches the generated Swagger (a blank line had cut it off). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Move the completed OpenSpec change to the archive and add its nine requirements as the new device-metric-scopes main spec. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
An aggregated series was labelled with the id of its first source: a
filesystem or GPU metric at node scope carried the first mount point or
GPU, a hardware-thread metric at core scope the first hardware thread of
each core. It now carries the id of the scope instance it represents:
none at node scope, the core id at core scope, the socket id at socket
scope. Unaggregated series keep their source id.
- BuildScopeQueries returns the target id with every aggregated result,
and the builders of both stores return QueryTarget{Scope, ID} in place
of the parallel assignedScope slice.
- The result loops of LoadData, LoadScopedStats and LoadNodeListData, in
the internal store and the cc-metric-store client, take the target id
for aggregated queries.
- Core metrics at socket scope are now built from core ids. The branch
passed hardware-thread ids as core ids, so on SMT nodes it aggregated
the wrong cores and picked sockets the job does not use.
- The run-cc-backend smoke test asserts that the node series has no id.
Includes the OpenSpec change aggregated-series-ids.
BREAKING CHANGE: GraphQL Series.id / ScopedStats.id, REST job data and
newly archived jobs report different ids for aggregated series. Jobs
already archived keep their stored ids.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Move the completed OpenSpec change to the archive and add its five requirements as the new scope-aggregation main spec. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
No description provided.