Add 25th hour for runtime bracket 24-25h

- zoomstate does not work
- maxbins too hardcoded for runtimes > 25 hours
This commit is contained in:
Christoph Kluge 2025-01-24 10:39:33 +01:00
parent a3e5c424fd
commit 9e6072fed2
3 changed files with 15 additions and 12 deletions

View File

@ -362,7 +362,7 @@ func (r *queryResolver) JobsStatistics(ctx context.Context, filter []*model.JobF
var stats []*model.JobsStatistics var stats []*model.JobsStatistics
// Top Level Defaults // Top Level Defaults
var defaultDurationBins int = 24 var defaultDurationBins int = 25
var defaultMetricBins int = 10 var defaultMetricBins int = 10
if requireField(ctx, "totalJobs") || requireField(ctx, "totalWalltime") || requireField(ctx, "totalNodes") || requireField(ctx, "totalCores") || if requireField(ctx, "totalJobs") || requireField(ctx, "totalWalltime") || requireField(ctx, "totalNodes") || requireField(ctx, "totalCores") ||

View File

@ -451,15 +451,17 @@ func (r *JobRepository) AddHistograms(
start := time.Now() start := time.Now()
// targetBinCount : Frontendargument // targetBinCount : Frontendargument
// -> Min Bins: 24 -> Min Resolution: By Hour // -> Min Bins: 25 -> Min Resolution: By Hour
// -> In Between Bins: 48 -> Resolution by Half Hour // -> In Between Bins: 50 -> Resolution by Half Hour
// 96 -> Resolution by Quarter Hour // 100 -> Resolution by Quarter Hour
// 144 -> Resolution by 10 Minutes // 150 -> Resolution by 10 Minutes
// 288 -> Resolution by 5 Minutes // 300 -> Resolution by 5 Minutes
// 720 -> Resolution by 2 Minutes // 750 -> Resolution by 2 Minutes
// -> Max Bins: 1440 -> Max Resolution: By Minute // -> Max Bins: 1500 -> Max Resolution: By Minute
binSizeSeconds := (86400 / *targetBinCount) binSizeSeconds := (90000 / *targetBinCount)
// Important Note: Fixed to 25h max display range -> Too site specific! Configurable or Extend? -> Start view with "classic" by hour histogram, zoom mostly required for "small" runtimes
castType := r.getCastType() castType := r.getCastType()
var err error var err error

View File

@ -41,7 +41,8 @@
points: 2, points: 2,
}; };
const binCounts = xtime ? [24, 48, 96, 144, 288, 720, 1440] : [10, 20, 50, 100, 200]; // , 500, 1000 // TimeBins: Include Hour "24-25"
const binCounts = xtime ? [25, 50, 100, 150, 300, 750, 1500] : [10, 20, 50, 100, 200]; // , 500, 1000
function formatTime(t) { function formatTime(t) {
if (t !== null) { if (t !== null) {
@ -158,7 +159,7 @@
if (key === 'x') { if (key === 'x') {
if (zoomableHistogram) { if (zoomableHistogram) {
const numX = (u.series[0].idxs[1] - u.series[0].idxs[0]) const numX = (u.series[0].idxs[1] - u.series[0].idxs[0])
if (xtime && numX <= 12 && lastBinCount !== 1440) { if (xtime && numX <= 12 && lastBinCount !== 1500) {
// console.log("Dispatch for Duration: ", numX, lastBinCount, binCounts[binCounts.indexOf(lastBinCount) + 1]) // console.log("Dispatch for Duration: ", numX, lastBinCount, binCounts[binCounts.indexOf(lastBinCount) + 1])
dispatch('zoom', { dispatch('zoom', {
durationBinCount: binCounts[binCounts.indexOf(lastBinCount) + 1], durationBinCount: binCounts[binCounts.indexOf(lastBinCount) + 1],
@ -201,7 +202,7 @@
label: xlabel, label: xlabel,
labelGap: 10, labelGap: 10,
size: 25, size: 25,
incrs: xtime ? [60, 120, 300, 600, 900, 1800, 3600, 7200, 14400] : [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000], incrs: xtime ? [60, 120, 300, 600, 900, 1800, 3600, 7200, 14400, 18000] : [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000],
border: { border: {
show: true, show: true,
stroke: "#000000", stroke: "#000000",