Skip to content

Commit 3b75b1b

Browse files
authored
[7.x] [Metrics UI] Minor fixes to inventory timeline (#78226) (#78339)
1 parent db0dc62 commit 3b75b1b

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/interval_label.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const IntervalLabel = ({ intervalAsString }: Props) => {
2222
<p>
2323
<FormattedMessage
2424
id="xpack.infra.homePage.toolbar.showingLastOneMinuteDataText"
25-
defaultMessage="Last {duration} of data"
25+
defaultMessage="Last {duration} of data for the selected time"
2626
values={{ duration: intervalAsString }}
2727
/>
2828
</p>

x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_timeline.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,28 @@ const ONE_MINUTE = 60;
2828
const ONE_HOUR = ONE_MINUTE * 60;
2929
const ONE_DAY = ONE_HOUR * 24;
3030
const ONE_WEEK = ONE_DAY * 7;
31+
const ONE_MONTH = ONE_DAY * 30;
32+
33+
const getDisplayInterval = (interval: string | undefined) => {
34+
if (interval) {
35+
const intervalInSeconds = getIntervalInSeconds(interval);
36+
if (intervalInSeconds < 300) return '5m';
37+
}
38+
return interval;
39+
};
3140

3241
const getTimeLengthFromInterval = (interval: string | undefined) => {
3342
if (interval) {
3443
const intervalInSeconds = getIntervalInSeconds(interval);
35-
const multiplier =
36-
intervalInSeconds < ONE_MINUTE
37-
? ONE_HOUR / intervalInSeconds
38-
: intervalInSeconds < ONE_HOUR
39-
? 60
40-
: intervalInSeconds < ONE_DAY
41-
? 7
42-
: intervalInSeconds < ONE_WEEK
43-
? 30
44-
: 1;
45-
const timeLength = intervalInSeconds * multiplier;
44+
// Get up to 288 datapoints based on interval
45+
const timeLength =
46+
intervalInSeconds <= ONE_MINUTE * 15
47+
? ONE_DAY
48+
: intervalInSeconds <= ONE_MINUTE * 35
49+
? ONE_DAY * 3
50+
: intervalInSeconds <= ONE_HOUR * 2.5
51+
? ONE_WEEK
52+
: ONE_MONTH;
4653
return { timeLength, intervalInSeconds };
4754
} else {
4855
return { timeLength: 0, intervalInSeconds: 0 };
@@ -67,15 +74,19 @@ export function useTimeline(
6774
);
6875
};
6976

70-
const timeLengthResult = useMemo(() => getTimeLengthFromInterval(interval), [interval]);
77+
const displayInterval = useMemo(() => getDisplayInterval(interval), [interval]);
78+
79+
const timeLengthResult = useMemo(() => getTimeLengthFromInterval(displayInterval), [
80+
displayInterval,
81+
]);
7182
const { timeLength, intervalInSeconds } = timeLengthResult;
7283

7384
const timerange: InfraTimerangeInput = {
74-
interval: interval ?? '',
85+
interval: displayInterval ?? '',
7586
to: currentTime + intervalInSeconds * 1000,
7687
from: currentTime - timeLength * 1000,
77-
lookbackSize: 0,
7888
ignoreLookback: true,
89+
forceInterval: true,
7990
};
8091

8192
const { error, loading, response, makeRequest } = useHTTPRequest<SnapshotNodeResponse>(

0 commit comments

Comments
 (0)