Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display System partitions in Node Page #2932

Closed
thomasdanan opened this issue Nov 17, 2020 · 4 comments · Fixed by #3045
Closed

Display System partitions in Node Page #2932

thomasdanan opened this issue Nov 17, 2020 · 4 comments · Fixed by #3045
Assignees
Labels
complexity:medium Something that requires one or few days to fix priority:urgent Any issue we should jump in as soon as possible severity:major Major impact on live deployments (e.g. some non-critical feature is not working at all) topic:ui UI-related issues

Comments

@thomasdanan
Copy link
Contributor

thomasdanan commented Nov 17, 2020

Component:

'ui'

Why this is needed:

Currently, we can see all Persistent Volumes that were provisioned on a specific Node.
If one system partition is filling up, it may impact the node or some service running on the Node (ex: /var/lib/etcd or /var/logs, ...)

What should be done:

In the Node Page, we would need a new tab named System Partitions.
This tab should present all system partitions (except the ones mounted by containers).
The list of System partitions are displayed in a table with the following columns:

  • Health
  • device mount point
  • Usage
  • Size

The Health of a System partition is computed like we compute the Health of a Persistent Volume (same alert rules).

From a specific System Device (or from the list of System devices on one node), the Platform Administrator can click on a button to access a Grafana Dashboard when he can visualize more information about those devices and more specifically the usage over time.

@xaf-scality feel free to add more details.

system-devices

PS: just put System partitions tab before the details tab.

Implementation proposal (strongly recommended):

Information can be collected as it is done in the Node Detailed Grafana dashboard

Those are the alerts reports on partitions

image

Test plan:

@thomasdanan thomasdanan added the topic:ui UI-related issues label Nov 17, 2020
@thomasdanan thomasdanan changed the title Display System Devices in Node Page Display System partitions in Node Page Jan 8, 2021
@ChengYanJin ChengYanJin added the complexity:medium Something that requires one or few days to fix label Jan 8, 2021
@ChengYanJin ChengYanJin assigned ChengYanJin and unassigned alexis-ld Jan 11, 2021
@ChengYanJin ChengYanJin moved this from To do to In progress in MetalK8s UI adaptation Jan 12, 2021
@Cuervino
Copy link

Cuervino commented Jan 12, 2021

"Partitions" version of the screen:
comparison-05-03-v5-partitions@2x

@gdemonet
Copy link
Contributor

This tab should present all system partitions (except the ones mounted by containers).

How do you plan on retrieving this @ChengYanJin?
IMO, you may start by retrieving all values of the device label for the node_filesystem_avail_bytes and node_filesystem_size_bytes metrics (filtered for the selected node), and only keep the ones which are not a status.deviceName of some Volume object on this node.

@ChengYanJin
Copy link
Contributor

ChengYanJin commented Jan 13, 2021

This tab should present all system partitions (except the ones mounted by containers).

How do you plan on retrieving this @ChengYanJin?
IMO, you may start by retrieving all values of the device label for the node_filesystem_avail_bytes and node_filesystem_size_bytes metrics (filtered for the selected node), and only keep the ones which are not a status.deviceName of some Volume object on this node.

Thanks for the metrics @gdemonet !
From the prometheus query, I actually have fstype field. I was thinking about exclude the devices with value fstype: "iso9660".

And we should exclude the devices withdevice='shm' which I think is used by containerd?
Can you confirm that?

@gdemonet
Copy link
Contributor

Yes, good idea ignoring the ISO 9660 filesystems. For shared memory (device='shm'), indeed it makes sense to ignore them. Likely something we should add to node-exporter collector.diskstats configuration.
Also, I'm wondering if we should go further and only provide details for mounted partitions (which likely means we'll need to get additional info, not sure from where though)?

ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
Use the QueryClientProvider component to connect and provide a
QueryClient to the application

Refs: #2932
ChengYanJin added a commit that referenced this issue Jan 15, 2021
To return the data for system partition table

Refs: #2932
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
To make sure when switch the node we will still in Partition Tab

Refs: #2932
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Jan 15, 2021
ChengYanJin added a commit that referenced this issue Feb 1, 2021
Bump the version of styeld-component and core-ui

Refs: #2932
ChengYanJin added a commit that referenced this issue Feb 1, 2021
- No alert message display because of lacking `message` field in the
annotations, so we need to retrieve the alert from `description`
- Retrieve the alert message from annotations.summary should come from
  the last as a backup of, because it includes the minimal information.

Refs: #2932
ChengYanJin added a commit that referenced this issue Feb 1, 2021
- Fetch the data for the table together by using promise.all
- Display the loader when the status is loading
- UseTheme hook to retrieve the theme from styled-component

Resf: #2932
ChengYanJin added a commit that referenced this issue Feb 1, 2021
ChengYanJin added a commit that referenced this issue Feb 1, 2021
ChengYanJin added a commit that referenced this issue Feb 1, 2021
ChengYanJin added a commit that referenced this issue Feb 1, 2021
ChengYanJin added a commit that referenced this issue Feb 1, 2021
TODO:
We should throw error immediately rather than catch the error and return

This may change the behavior of the error handling of the APIs.

Refs: #2932
ChengYanJin added a commit that referenced this issue Feb 1, 2021
To make sure the functions beforeAll, afterEach, afterAll function in
the correct place.

Refs: #2932
ChengYanJin added a commit that referenced this issue Feb 1, 2021
To make the data a little more accurate

Refs: #2932
@ChengYanJin ChengYanJin moved this from In progress to Done in MetalK8s UI adaptation Feb 8, 2021
gdemonet pushed a commit that referenced this issue Feb 18, 2021
- No alert message display because of lacking `message` field in the
annotations, so we need to retrieve the alert from `description`
- Retrieve the alert message from annotations.summary should come from
  the last as a backup of, because it includes the minimal information.

Refs: #2932
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complexity:medium Something that requires one or few days to fix priority:urgent Any issue we should jump in as soon as possible severity:major Major impact on live deployments (e.g. some non-critical feature is not working at all) topic:ui UI-related issues
Projects
Development

Successfully merging a pull request may close this issue.

5 participants