Skip to content

cylc server monitor #72

@oliver-sanders

Description

@oliver-sanders

Writing this up here as it's uncertain where this code would live.

At the Met Office we have a pool of 12 16 servers which suites can run on. To help us keep track of the health of these servers and the usage of Cylc on them we wrote a tool which provides a web dashboard with:

  • Plots of the number of running suites, server load, memory usage and CPU for the suite servers.
  • Plot of the number of suites running under each Cylc version.
  • Graph of the number of running suites and active users.
  • Listing of all suites running on the suite servers with info such as run time and memory usage.
  • Listing of all processes running on the suite servers which aren't Cylc processes.

This is important functionality for larger sites, there are lots of ways in which is can be improved (e.g. daily job counts).

This code is written in Python2.6 and has to run in a bare environment so is kinda ugly and not especially portable. It needs a re-write!

We should be able to re-implement this functionality within the Cylc UI/UI-Server infrastructure to provide an admin dashboard. That way this functionality would ship with Cylc and be available to all.

This would involve the creation of a dashboard for Cylc admins (we could make it accessible to all users), it would require an always-running UI Server running under a specified account, which, depending on site specifics may require certain privileges to be effective. It will need to maintain a database, sqlite3 is more than sufficient.

Infrastructure aside the actual code component is pretty simple:

  • The current implementation is a few thousand lines of code, with modern Python and packaging a direct re-implementation could be much lighter.
  • Server info can come from psutils.
  • Suite listings can come from the UI Server suite discovery service.
  • The rest is data management and plotting.

Infrastructure wise:

  • The server side component of this code could live in:
    • The UI Server
    • Another repo which provides plugin extensions to the UI Server.
  • The UI component of the code could live in:
    • The UI
      • Would inflate dependencies but thanks to webpack this wouldn't impact load times.
    • Another Vue project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions