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

MetalK8s UI Overview Page Network Charts #3264

Open
ChengYanJin opened this issue Apr 6, 2021 · 0 comments
Open

MetalK8s UI Overview Page Network Charts #3264

ChengYanJin opened this issue Apr 6, 2021 · 0 comments
Assignees
Labels
complexity:medium Something that requires one or few days to fix priority:high High priority issues, should be worked on ASAP (after urgent issues), not postponed topic:ui UI-related issues

Comments

@ChengYanJin
Copy link
Contributor

ChengYanJin commented Apr 6, 2021

Component: UI.

Why this is needed:

What should be done:
image

We should have the synced vertical line in the network charts along with the other metric charts. This means we should have the wrapper <SyncedCursorCharts> in a higher layer than <DashboardMetrics/>

Please find the latest design here: #3088 (comment)
Note that: This ticket doesn't include the health of Control-plane and Workload-plane, only the two graphs.

Implementation proposal (strongly recommended):
The graph should be similar as the Throughput graph in the Metrics Panel which separately displays the write and read.
Feel free to check the branch for the metrics charts, it hasn't been merged yet.

MetalK8s development/2.11:
feature/replace-the-metrics-charts-with-the-new-linetemporalchart
PR opened: #3512

The Prometheus queries should be:

  const controlPlaneNetworkBandwidthInAvgQuery = `avg(irate(node_network_receive_bytes_total{job=~"node-exporter",device=~"${controlPlaneInterface}"}[5m]))`;
  const controlPlaneNetworkBandwidthOutAvgQuery = `avg(irate(node_network_transmit_bytes_total{job=~"node-exporter",device=~"${controlPlaneInterface}"}[5m]))`;
  const workloadPlaneNetworkBandwidthInAvgQuery = `avg(irate(node_network_receive_bytes_total{job=~"node-exporter",device=~"${workloadPlaneInterface}"}[5m]))`;
  const workloadPlaneNetworkBandwidthOutAvgQuery = `avg(irate(node_network_transmit_bytes_total{job=~"node-exporter",device=~"${workloadPlaneInterface}"}[5m]))`;

Note:
So we have to retrieve the device(control plane interface/workload plane interface) before we do the query for each of the nodes.
We can define the enabled property of useQuery to the device so that it waits for it to be defined before executing the query.

The chart Y-axis title should be:
export const YAXIS_TITLE_IN_OUT = 'in(+) / out(-)';

  <LineTemporalChart
        series={seriesRef.current || []}
        height={80}
        title="Control Plane Bandwidth"
        startingTimeStamp={Date.parse(chartStartTimeRef.current) / 1000}
        yAxisType={'symmetrical'}
        unitRange={[
          { threshold: 0, label: 'B/s' },
          { threshold: 1024, label: 'KiB/s' },
          { threshold: 1024 * 1024, label: 'MiB/s' },
          { threshold: 1024 * 1024 * 1024, label: 'GiB/s' },
          { threshold: 1024 * 1024 * 1024 * 1024, label: 'TiB/s' },
        ]}
        yAxisTitle = {YAXIS_TITLE_IN_OUT}
        isLegendHided={false}
        isLoading={isNodeLoading}
      />

Test plan:
No test is needed.

@ChengYanJin ChengYanJin added topic:ui UI-related issues complexity:medium Something that requires one or few days to fix labels Apr 6, 2021
@ChengYanJin ChengYanJin assigned alexis-ld and unassigned alexis-ld Jun 6, 2021
@ChengYanJin ChengYanJin added this to the MetalK8s 2.11.0 milestone Aug 29, 2021
@ChengYanJin ChengYanJin added complexity:easy Something that requires less than a day to fix priority:urgent Any issue we should jump in as soon as possible priority:high High priority issues, should be worked on ASAP (after urgent issues), not postponed and removed complexity:medium Something that requires one or few days to fix priority:urgent Any issue we should jump in as soon as possible labels Aug 29, 2021
@ChengYanJin ChengYanJin added complexity:medium Something that requires one or few days to fix and removed complexity:easy Something that requires less than a day to fix labels Sep 2, 2021
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:high High priority issues, should be worked on ASAP (after urgent issues), not postponed topic:ui UI-related issues
Projects
None yet
Development

No branches or pull requests

4 participants