Skip to content

Commit ef31ced

Browse files
[ML] Adding datafeed timing stats to Job Management list (#40993) (#41975)
* [ML] Adding datafeed timing stats to Job Management list * renaming section title * adding extra datafeed_config check * filtering out total_search_time_ms
1 parent 00db7ea commit ef31ced

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

x-pack/legacy/plugins/ml/public/jobs/jobs_list/components/job_details/extract_job_details.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ export function extractJobDetails(job) {
122122
if (job.node) {
123123
datafeed.items.push(['node', JSON.stringify(job.node)]);
124124
}
125+
if (job.datafeed_config && job.datafeed_config.timing_stats) {
126+
// remove the timing_stats list from the datafeed section
127+
// so not to show it twice.
128+
const i = datafeed.items.findIndex(item => item[0] === 'timing_stats');
129+
if (i >= 0) {
130+
datafeed.items.splice(i, 1);
131+
}
132+
}
125133

126134
const counts = {
127135
title: i18n.translate('xpack.ml.jobsList.jobDetails.countsTitle', {
@@ -139,6 +147,17 @@ export function extractJobDetails(job) {
139147
items: filterObjects(job.model_size_stats).map(formatValues)
140148
};
141149

150+
const datafeedTimingStats = {
151+
title: i18n.translate('xpack.ml.jobsList.jobDetails.datafeedTimingStatsTitle', {
152+
defaultMessage: 'Timing stats'
153+
}),
154+
position: 'right',
155+
items: (job.datafeed_config && job.datafeed_config.timing_stats) ?
156+
filterObjects(job.datafeed_config.timing_stats)
157+
.filter(o => o[0] !== 'total_search_time_ms') // remove total_search_time_ms as average_search_time_per_bucket_ms is better
158+
.map(formatValues) : []
159+
};
160+
142161
return {
143162
general,
144163
customUrl,
@@ -151,6 +170,7 @@ export function extractJobDetails(job) {
151170
dataDescription,
152171
datafeed,
153172
counts,
154-
modelSizeStats
173+
modelSizeStats,
174+
datafeedTimingStats
155175
};
156176
}

x-pack/legacy/plugins/ml/public/jobs/jobs_list/components/job_details/job_details.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ class JobDetailsUI extends Component {
6767
dataDescription,
6868
datafeed,
6969
counts,
70-
modelSizeStats
70+
modelSizeStats,
71+
datafeedTimingStats
7172
} = extractJobDetails(job);
7273

7374
const { intl } = this.props;
@@ -93,7 +94,7 @@ class JobDetailsUI extends Component {
9394
id: 'xpack.ml.jobsList.jobDetails.tabs.datafeedLabel',
9495
defaultMessage: 'Datafeed'
9596
}),
96-
content: <JobDetailsPane sections={[datafeed]} />,
97+
content: <JobDetailsPane sections={[datafeed, datafeedTimingStats]} />,
9798
}, {
9899
id: 'counts',
99100
name: intl.formatMessage({

x-pack/legacy/plugins/ml/public/services/job_service.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ class JobService {
351351
delete tempJob.datafeed_config.job_id;
352352
delete tempJob.datafeed_config.state;
353353
delete tempJob.datafeed_config.node;
354+
delete tempJob.datafeed_config.timing_stats;
354355

355356
// remove query_delay if it's between 60s and 120s
356357
// the back-end produces a random value between 60 and 120 and so

x-pack/legacy/plugins/ml/server/models/job_service/jobs.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ export function jobsProvider(callWithRequest) {
200200
const datafeedStats = results[DATAFEED_STATS].datafeeds.find(ds => (ds.datafeed_id === datafeed.datafeed_id));
201201
if (datafeedStats) {
202202
datafeed.state = datafeedStats.state;
203+
datafeed.timing_stats = datafeedStats.timing_stats;
203204
}
204205
}
205206
datafeeds[datafeed.job_id] = datafeed;

0 commit comments

Comments
 (0)