Skip to content

Add resource consumption monitoring in the Buildomat agent #87

@emilyalbini

Description

@emilyalbini

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions