Skip to content

Commit

Permalink
Bug 2183915: "No data available" shows on Virtualization overview met…
Browse files Browse the repository at this point in the history
…rics chart

Signed-off-by: Aviv Turgeman <aturgema@redhat.com>
  • Loading branch information
avivtur committed Apr 18, 2023
1 parent 5ea423e commit dbe9807
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ import './ChartCard.scss';
const ChartCard: React.FC<ChartCardProps> = ({ metric }) => {
const { t } = useKubevirtTranslation();
const metricChartData = useMetricChartData(metric);
const { chartData, isReady, numberOfTicks, unit } = metricChartData;
const { chartData, isReady, unit } = metricChartData;
const currentValue = getCurrentValue(chartData);
const chartLabel = t("Last {{count}} days' trend", { count: numberOfTicks });
const chartLabel = t('Last 1 day trend');
const metricLabel = unit && isReady ? `${metric} (${unit})` : metric;
const metricValue = currentValue && !isNaN(currentValue) ? currentValue?.toLocaleString() : 0;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,13 @@ import { useActiveNamespace } from '@openshift-console/dynamic-plugin-sdk-intern
import { getMetricQuery } from '../metricQueries';

import { ChartData, ChartDomain } from './types';
import {
findUnit,
formatLargestValue,
getFormattedData,
getLargestValue,
getNumberOfTicks,
} from './utils';
import { findUnit, formatLargestValue, getFormattedData, getLargestValue } from './utils';

export type MetricChartData = {
chartData: ChartData;
domain: ChartDomain;
isReady: boolean;
largestValue: number;
numberOfTicks: number;
unit: string;
};

Expand All @@ -31,7 +24,7 @@ type UseMetricChartData = (metric: string) => MetricChartData;
const useMetricChartData: UseMetricChartData = (metric) => {
const [activeNamespace] = useActiveNamespace();
const currentTime = useMemo(() => Date.now(), []);
const timespan = DurationOption.getMilliseconds(DurationOption.ONE_WEEK.toString());
const timespan = DurationOption.getMilliseconds(DurationOption.ONE_DAY.toString());

const [queryData] = usePrometheusPoll({
endpoint: PrometheusEndpoint.QUERY_RANGE,
Expand All @@ -46,7 +39,6 @@ const useMetricChartData: UseMetricChartData = (metric) => {
const unit = findUnit(metric, largestRawValue);
const formattedData = getFormattedData(rawData, metric, unit);
const largestValue = formatLargestValue(metric, largestRawValue, unit);
const numberOfTicks = getNumberOfTicks(formattedData);

const domain: ChartDomain = {
x: [formattedData?.[0]?.x, formattedData?.[formattedData?.length - 1]?.x],
Expand All @@ -58,7 +50,6 @@ const useMetricChartData: UseMetricChartData = (metric) => {
domain,
isReady: formattedData?.length > 1,
largestValue,
numberOfTicks: numberOfTicks?.length,
unit,
};
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,6 @@ export const getFormattedData = (rawData: PrometheusValue[], metric: string, uni
return { x: new Date(x * MILLISECONDS_MULTIPLIER), y: humanizedValue };
});

export const getNumberOfTicks = (formattedData: ChartPoint[]) =>
formattedData?.reduce((acc, point, idx) => {
const currPointDay = getDay(point);
if (currPointDay !== getDay(formattedData?.[idx - 1])) {
acc.push(currPointDay);
}
return acc;
}, []);

export const getPrevDay = (pointDay: number): number =>
pointDay === SUNDAY ? SATURDAY : pointDay - 1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ const metricQueriesForNamespace = {
[METRICS.VCPU_USAGE]: (namespace) =>
`count(kubevirt_vmi_vcpu_wait_seconds{namespace="${namespace}"})`,
[METRICS.MEMORY]: (namespace) =>
`sum(kubevirt_vmi_memory_available_bytes - kubevirt_vmi_memory_usable_bytes) by (${namespace})`,
[METRICS.STORAGE]: (namespace) => `sum(kubevirt_vmi_filesystem_used_bytes) by (${namespace})`,
`sum by (namespace)(kubevirt_vmi_memory_available_bytes{namespace="${namespace}"} - kubevirt_vmi_memory_usable_bytes{namespace="${namespace}"})`,
[METRICS.STORAGE]: (namespace) =>
`sum by (namespace)(kubevirt_vmi_filesystem_used_bytes{namespace="${namespace}"})`,
};

const metricQueriesForAllNamespaces = {
Expand Down

0 comments on commit dbe9807

Please sign in to comment.