From 2c1e9fd8d9c37eaeafaec16556526276211b140d Mon Sep 17 00:00:00 2001 From: Ersin Erdal Date: Wed, 15 Feb 2023 20:50:38 +0100 Subject: [PATCH 1/3] Add date_nanos support to Time field --- .../public/common/lib/get_time_options.test.ts | 6 +++++- .../public/common/lib/get_time_options.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.test.ts b/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.test.ts index 684253c5acdf5..83d6515bf7831 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.test.ts @@ -31,8 +31,12 @@ describe('get_time_options', () => { test('if getTimeFieldOptions return only date type fields', () => { const timeOnlyTypeFields = getTimeFieldOptions([ { type: 'date', name: 'order_date' }, + { type: 'date_nanos', name: 'order_date_nanos' }, { type: 'number', name: 'sum' }, ]); - expect(timeOnlyTypeFields).toMatchObject([{ text: 'order_date', value: 'order_date' }]); + expect(timeOnlyTypeFields).toMatchObject([ + { text: 'order_date', value: 'order_date' }, + { text: 'order_date_nanos', value: 'order_date_nanos' }, + ]); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.ts b/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.ts index 16a7a8db61301..c20a2385c12c9 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.ts +++ b/x-pack/plugins/triggers_actions_ui/public/common/lib/get_time_options.ts @@ -27,7 +27,7 @@ export const getTimeFieldOptions = ( const options: TimeFieldOptions[] = []; fields.forEach((field: { type: string; name: string }) => { - if (field.type === 'date') { + if (field.type === 'date' || field.type === 'date_nanos') { options.push({ text: field.name, value: field.name, From 89082fbb237d1f228a6853bcc751aa11fe6be0bb Mon Sep 17 00:00:00 2001 From: Ersin Erdal Date: Thu, 16 Feb 2023 21:59:23 +0100 Subject: [PATCH 2/3] Add epoch_millis format type to query builder --- .../common/build_sorted_events_query.test.ts | 7 +++++++ .../stack_alerts/common/build_sorted_events_query.ts | 1 + .../rule_types/es_query/lib/fetch_search_source_query.ts | 9 ++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/stack_alerts/common/build_sorted_events_query.test.ts b/x-pack/plugins/stack_alerts/common/build_sorted_events_query.test.ts index bac84bd4a4b28..8e53736b23963 100644 --- a/x-pack/plugins/stack_alerts/common/build_sorted_events_query.test.ts +++ b/x-pack/plugins/stack_alerts/common/build_sorted_events_query.test.ts @@ -63,6 +63,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, @@ -111,6 +112,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, @@ -160,6 +162,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, @@ -210,6 +213,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, @@ -272,6 +276,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, @@ -320,6 +325,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'desc', }, }, @@ -368,6 +374,7 @@ describe('buildSortedEventsQuery', () => { sort: [ { timefield: { + format: 'strict_date_optional_time||epoch_millis', order: 'asc', }, }, diff --git a/x-pack/plugins/stack_alerts/common/build_sorted_events_query.ts b/x-pack/plugins/stack_alerts/common/build_sorted_events_query.ts index 7b92374b8fb33..5253fb8eb74ee 100644 --- a/x-pack/plugins/stack_alerts/common/build_sorted_events_query.ts +++ b/x-pack/plugins/stack_alerts/common/build_sorted_events_query.ts @@ -80,6 +80,7 @@ export const buildSortedEventsQuery = ({ { [sortField]: { order: sortOrder ?? 'asc', + format: 'strict_date_optional_time||epoch_millis', }, }, ], diff --git a/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_search_source_query.ts b/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_search_source_query.ts index ac9df7a0c0f8d..1e255da508a13 100644 --- a/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_search_source_query.ts +++ b/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_search_source_query.ts @@ -129,7 +129,14 @@ export function updateSearchSource( const searchSourceChild = searchSource.createChild(); searchSourceChild.setField('filter', filters as Filter[]); - searchSourceChild.setField('sort', [{ [timeFieldName]: SortDirection.desc }]); + searchSourceChild.setField('sort', [ + { + [timeFieldName]: { + order: SortDirection.desc, + format: 'strict_date_optional_time||epoch_millis', + }, + }, + ]); searchSourceChild.setField( 'aggs', buildAggregation({ From 18456a8e6fb796c70fd701154ad3d4502acf003a Mon Sep 17 00:00:00 2001 From: Ersin Erdal Date: Thu, 16 Feb 2023 22:53:10 +0100 Subject: [PATCH 3/3] fix failing unit test --- .../server/rule_types/es_query/lib/fetch_es_query.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_es_query.test.ts b/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_es_query.test.ts index 10e8278f1976a..193f559ce2d62 100644 --- a/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_es_query.test.ts +++ b/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_es_query.test.ts @@ -130,6 +130,7 @@ describe('fetchEsQuery', () => { sort: [ { '@timestamp': { + format: 'strict_date_optional_time||epoch_millis', order: 'desc', }, }, @@ -194,6 +195,7 @@ describe('fetchEsQuery', () => { sort: [ { '@timestamp': { + format: 'strict_date_optional_time||epoch_millis', order: 'desc', }, }, @@ -258,6 +260,7 @@ describe('fetchEsQuery', () => { sort: [ { '@timestamp': { + format: 'strict_date_optional_time||epoch_millis', order: 'desc', }, }, @@ -349,6 +352,7 @@ describe('fetchEsQuery', () => { sort: [ { '@timestamp': { + format: 'strict_date_optional_time||epoch_millis', order: 'desc', }, },