oxidecomputer / oxidecomputer/buildomat

Add resource consumption monitoring in the Buildomat agent

Open
#87 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
72
Forks
5
PR merge metrics
No merged PRs in 30d

Description

In my Omicron CI performance work I developed an ad-hoc tool to gather CPU, memory and disk metrics for CI builds, writing them in a CSV file and uploading them as a Buildomat output. This worked well, and I could commit it to Omicron and call it a day, but having insights on the resource usage of a task is something that could prove useful for any Buildomat build.

We should polish the code I wrote in the ad-hoc tool and integrate it in the Buildomat agent, running it on every build. The agent would use the native system APIs to read metrics every second (reading /proc on Linux and calling kstat on illumos) without relying on subprocess, and upload the resulting CSV as the /buildomat/resource-usage.csv output.

We can then add a [rendered] link next to the output on the GitHub log viewer, linking to a page that renders the relevant graphs server side and displays them in the browser. I have other ideas on how to expose the graphs, but they'd rely on heavy JS which I'm not sure we want to add to the log viewer.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked dev-tools/ci-resource-usage/src implementation, then inspect the Buildomat agent and GitHub log viewer entry points. Determine how the agent emits build outputs and how rendered links are added; done means resource-usage.csv is collected for builds and the proposed rendered graph view is integrated.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
build-system, devops, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.