From 34080b20b0bc09ad1e8bf4e0dd33b0b314a9a8a9 Mon Sep 17 00:00:00 2001 From: Pete Harverson Date: Thu, 12 Aug 2021 18:02:27 +0100 Subject: [PATCH] [ML] Adds initial record score to the anomalies table expanded row content (#108216) * [ML] Adds initial record score to the anomalies table expanded row content * [ML] Edits to tooltip text following review * [ML] Add check for undefined when outputting probability --- .../anomalies_table/anomaly_details.js | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js index 20e426ac37997..669a81ffd6248 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js @@ -26,6 +26,7 @@ import { EuiSpacer, EuiTabbedContent, EuiText, + EuiToolTip, } from '@elastic/eui'; import { formatHumanReadableDateTimeSeconds } from '../../../../common/util/date_utils'; @@ -47,7 +48,7 @@ function getFilterEntity(entityName, entityValue, filter) { return ; } -function getDetailsItems(anomaly, examples, filter) { +function getDetailsItems(anomaly, filter) { const source = anomaly.source; // TODO - when multivariate analyses are more common, @@ -183,11 +184,55 @@ function getDetailsItems(anomaly, examples, filter) { }); } + items.push({ + title: ( + + + {i18n.translate('xpack.ml.anomaliesTable.anomalyDetails.recordScoreTitle', { + defaultMessage: 'Record score', + })} + + + + ), + description: Math.floor(1000 * source.record_score) / 1000, + }); + + items.push({ + title: ( + + + {i18n.translate('xpack.ml.anomaliesTable.anomalyDetails.initialRecordScoreTitle', { + defaultMessage: 'Initial record score', + })} + + + + ), + description: Math.floor(1000 * source.initial_record_score) / 1000, + }); + items.push({ title: i18n.translate('xpack.ml.anomaliesTable.anomalyDetails.probabilityTitle', { defaultMessage: 'Probability', }), - description: source.probability, + description: + source.probability !== undefined ? Number.parseFloat(source.probability).toPrecision(3) : '', }); // If there was only one cause, the actual, typical and by_field @@ -469,7 +514,7 @@ export class AnomalyDetails extends Component { } renderDetails() { - const detailItems = getDetailsItems(this.props.anomaly, this.props.examples, this.props.filter); + const detailItems = getDetailsItems(this.props.anomaly, this.props.filter); const isInterimResult = get(this.props.anomaly, 'source.is_interim', false); return (