Skip to content

Commit 563bb16

Browse files
author
ci bot
committed
Merge branch 'monitor-fixes-10' into 'enterprise'
fix(monitors): address some monitor fixes See merge request dkinternal/testgen/dataops-testgen!404
2 parents af92632 + 751236b commit 563bb16

1 file changed

Lines changed: 49 additions & 9 deletions

File tree

testgen/ui/components/frontend/js/pages/table_monitoring_trends.js

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ const TableMonitoringTrend = (props) => {
133133
if (volumeRange.min === volumeRange.max) {
134134
volumeRange.max = volumeRange.max + 100;
135135
}
136+
const tickDecimals = (value, range) => (range.max - range.min) < 1 ? 3 : (value >= 1000 ? 0 : 3);
136137

137138
const metricRanges = metricEventGroups.map(group => {
138139
const predictionKey = `metric:${group.test_definition_id}`;
@@ -193,11 +194,50 @@ const TableMonitoringTrend = (props) => {
193194

194195
const rawTimeline = [...new Set(allTimes)].sort();
195196
const dateRange = { min: rawTimeline[0] ?? (new Date()).getTime(), max: rawTimeline[rawTimeline.length - 1] ?? (new Date()).getTime() + 1 * 24 * 60 * 60 * 1000 };
196-
const timeline = ([
197-
new Date(dateRange.min),
198-
...getAdaptiveTimeTicksV2(rawTimeline.slice(2, rawTimeline.length - 2).map(time => new Date(time)), chartsWidth, tickWidth),
199-
new Date(dateRange.max),
200-
]).filter((t) => !!t);
197+
const toPixelX = (date) => scale(date.getTime(), { old: dateRange, new: { min: origin.x, max: end.x } }, origin.x);
198+
const xTickMinSpacing = 65;
199+
const timeline = (() => {
200+
const adaptiveTicks = getAdaptiveTimeTicksV2(
201+
rawTimeline.map(time => new Date(time)),
202+
end.x - origin.x,
203+
xTickMinSpacing,
204+
);
205+
206+
const seen = new Set();
207+
const candidates = [];
208+
for (const date of [new Date(dateRange.min), ...adaptiveTicks, new Date(dateRange.max)]) {
209+
if (!date) continue;
210+
const t = date.getTime();
211+
if (!seen.has(t)) {
212+
seen.add(t);
213+
candidates.push(date);
214+
}
215+
}
216+
candidates.sort((a, b) => a.getTime() - b.getTime());
217+
218+
if (candidates.length <= 2) return candidates;
219+
220+
const first = candidates[0];
221+
const last = candidates[candidates.length - 1];
222+
const firstPx = toPixelX(first);
223+
const lastPx = toPixelX(last);
224+
225+
if (lastPx - firstPx < xTickMinSpacing) return [first];
226+
227+
const result = [first];
228+
let prevPx = firstPx;
229+
230+
for (let i = 1; i < candidates.length - 1; i++) {
231+
const px = toPixelX(candidates[i]);
232+
if (px - prevPx >= xTickMinSpacing && lastPx - px >= xTickMinSpacing) {
233+
result.push(candidates[i]);
234+
prevPx = px;
235+
}
236+
}
237+
238+
result.push(last);
239+
return result;
240+
})();
201241

202242
const parsedFreshnessEvents = freshnessEvents.map((e) => ({
203243
changed: e.changed,
@@ -549,8 +589,8 @@ const TableMonitoringTrend = (props) => {
549589
// Volume Chart Y axis
550590
g(
551591
{ transform: `translate(${chartsYAxisWidth - 4}, ${positionTracking.volumeTrendChart + (volumeTrendChartHeight / 2)})` },
552-
text({ x: 0, y: 35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(volumeRange.min)),
553-
text({ x: 0, y: -35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(volumeRange.max)),
592+
text({ x: 0, y: 35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(volumeRange.min, tickDecimals(volumeRange.min, volumeRange))),
593+
text({ x: 0, y: -35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(volumeRange.max, tickDecimals(volumeRange.max, volumeRange))),
554594
),
555595

556596
// Schema Chart Y axis
@@ -565,8 +605,8 @@ const TableMonitoringTrend = (props) => {
565605
const chartName = `metricTrendChart_${idx}`;
566606
return g(
567607
{ transform: `translate(${chartsYAxisWidth - 4}, ${positionTracking[chartName] + (metricTrendChartHeight / 2)})` },
568-
text({ x: 0, y: 35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(metricChart.range.min)),
569-
text({ x: 0, y: -35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(metricChart.range.max)),
608+
text({ x: 0, y: 35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(metricChart.range.min, tickDecimals(metricChart.range.min, metricChart.range))),
609+
text({ x: 0, y: -35, class: 'tick-text', 'text-anchor': 'end', fill: 'var(--caption-text-color)' }, formatNumber(metricChart.range.max, tickDecimals(metricChart.range.max, metricChart.range))),
570610
);
571611
}),
572612
),

0 commit comments

Comments
 (0)