Skip to content

Conversation

@ChrisPaulBennett
Copy link
Contributor

@ChrisPaulBennett ChrisPaulBennett commented Mar 12, 2025

This apart of 3 pull requests for adding CPU time and Max RSS analysis to the Cylc UI.

This adds the Max RSS and CPU time (as measured by cgroups) to the table view, box plot and time series views.

Linked to;
cylc/cylc-flow#6663
cylc/cylc-ui#2100

Check List

  • I have read CONTRIBUTING.md and added my name as a Code Contributor.
  • Contains logically grouped changes (else tidy your branch by rebase).
  • Does not contain off-topic changes (use other PRs for other changes).
  • Applied any dependency changes to both setup.cfg (and conda-environment.yml if present).
  • Tests are included (or explain why tests are not needed).
  • Changelog entry included if this is a change that can affect users
  • Cylc-Doc pull request opened if required at cylc/cylc-doc/pull/XXXX.
  • If this is a bug fix, PR should be raised against the relevant ?.?.x branch.

@ChrisPaulBennett ChrisPaulBennett marked this pull request as draft March 12, 2025 09:19
@ChrisPaulBennett ChrisPaulBennett marked this pull request as ready for review April 2, 2025 14:15
# Conflicts:
#	cylc/uiserver/schema.py
#	cylc/uiserver/tests/test_workflow_retrieval.py
@MetRonnie

This comment was marked as resolved.

@ChrisPaulBennett
Copy link
Contributor Author

I've merged in the previous changes to the SQL infrastructure that deals with task states. @oliver-sanders I've had to change some of your code that creates parts of the SQL query, mostly just to take into account the new join.
The codecov failures are from code that I haven't touched.

@MetRonnie

This comment was marked as resolved.

Copy link
Member

@MetRonnie MetRonnie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes appear to have broken compatibility with workflows run in earlier versions of Cylc. I tested the tasks GraphQL query on a workflow that ran in 8.4.4.dev and got an empty result

query {
  tasks(live: false, workflows: ["wflow"]) {
    name
  }
}
{
  "data": {
    "tasks": []
  }
}

@ChrisPaulBennett
Copy link
Contributor Author

This been fixed. Max RSS and CPU time will be 0, if no data is present. An update to the cylc-ui needs to be made to not show cpu time / max rss charts if there is no data

@ChrisPaulBennett ChrisPaulBennett self-assigned this Jul 18, 2025
@MetRonnie MetRonnie added this to the 1.8.0 milestone Aug 4, 2025
@MetRonnie
Copy link
Member

This been fixed. Max RSS and CPU time will be 0, if no data is present. An update to the cylc-ui needs to be made to not show cpu time / max rss charts if there is no data

Is there a way to make this null instead of 0? Because currently the UI can't tell the difference between no data and times that are actually zero (to the nearest whole second).

@oliver-sanders oliver-sanders modified the milestones: 1.8.0, 1.9.0 Sep 17, 2025
@ChrisPaulBennett
Copy link
Contributor Author

This been fixed. Max RSS and CPU time will be 0, if no data is present. An update to the cylc-ui needs to be made to not show cpu time / max rss charts if there is no data

Is there a way to make this null instead of 0? Because currently the UI can't tell the difference between no data and times that are actually zero (to the nearest whole second).

This has been fixed in the UI repo

@MetRonnie
Copy link
Member

I don't think that fix is valid - the UI should treat 0 as 0 seconds, and null/undefined should be treated as empty. So the uiserver should send null when there is no data rather than 0. Some tasks may run in ~0 seconds so 0 is a valid normal value.

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.

3 participants