From c8e092f29b72b5748820637b5f95e75b0fd803e6 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Tue, 2 Dec 2025 13:14:40 -0500 Subject: [PATCH 1/5] Implement daily rollup and index sorting --- .../plugins/slo/common/constants.ts | 20 ++++++++++--------- .../sli_settings_template.ts | 4 +++- .../summary_settings_template.ts | 4 +++- .../index_templates/sli_index_template.ts | 5 +++-- .../index_templates/summary_index_template.ts | 5 +++-- .../ingest_templates/sli_pipeline_template.ts | 9 ++++++++- .../summary_pipeline_template.ts | 14 +++++++++++++ .../slo/server/services/resource_installer.ts | 8 ++++---- 8 files changed, 49 insertions(+), 20 deletions(-) diff --git a/x-pack/solutions/observability/plugins/slo/common/constants.ts b/x-pack/solutions/observability/plugins/slo/common/constants.ts index 3998fc2161db3..e109b0ddd8ca1 100644 --- a/x-pack/solutions/observability/plugins/slo/common/constants.ts +++ b/x-pack/solutions/observability/plugins/slo/common/constants.ts @@ -56,21 +56,23 @@ export const SUPPRESSED_PRIORITY_ACTION = { export const LOCK_ID_RESOURCE_INSTALLER = 'slo:resource_installer'; export const SLO_MODEL_VERSION = 2; -export const SLO_RESOURCES_VERSION = 3.5; +export const SLO_RESOURCES_VERSION = 3.6; export const SLO_RESOURCES_VERSION_MAJOR = 3; -export const SLI_COMPONENT_TEMPLATE_MAPPINGS_NAME = '.slo-observability.sli-mappings'; -export const SLI_COMPONENT_TEMPLATE_SETTINGS_NAME = '.slo-observability.sli-settings'; -export const SLI_INDEX_TEMPLATE_NAME = '.slo-observability.sli'; -export const SLI_INDEX_TEMPLATE_PATTERN = `.slo-observability.sli-*`; +export const SLI_COMPONENT_TEMPLATE_MAPPINGS_NAME = `.slo-observability.sli-mappings-v${SLO_RESOURCES_VERSION}`; +export const SLI_COMPONENT_TEMPLATE_SETTINGS_NAME = `.slo-observability.sli-settings-v${SLO_RESOURCES_VERSION}`; + +export const SLI_INDEX_TEMPLATE_NAME = `.slo-observability.sli-v${SLO_RESOURCES_VERSION}`; +export const SLI_INDEX_TEMPLATE_PATTERN = `.slo-observability.sli-v${SLO_RESOURCES_VERSION}*`; export const SLI_DESTINATION_INDEX_NAME = `.slo-observability.sli-v${SLO_RESOURCES_VERSION}`; export const SLI_DESTINATION_INDEX_PATTERN = `.slo-observability.sli-v${SLO_RESOURCES_VERSION_MAJOR}*`; + export const SLI_INGEST_PIPELINE_INDEX_NAME_PREFIX = `.slo-observability.sli-v${SLO_RESOURCES_VERSION}.`; -export const SUMMARY_COMPONENT_TEMPLATE_MAPPINGS_NAME = '.slo-observability.summary-mappings'; -export const SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME = '.slo-observability.summary-settings'; -export const SUMMARY_INDEX_TEMPLATE_NAME = '.slo-observability.summary'; -export const SUMMARY_INDEX_TEMPLATE_PATTERN = `.slo-observability.summary-*`; +export const SUMMARY_COMPONENT_TEMPLATE_MAPPINGS_NAME = `.slo-observability.summary-mappings-v${SLO_RESOURCES_VERSION}`; +export const SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME = `.slo-observability.summary-settings-v${SLO_RESOURCES_VERSION}`; +export const SUMMARY_INDEX_TEMPLATE_NAME = `.slo-observability.summary-v${SLO_RESOURCES_VERSION}`; +export const SUMMARY_INDEX_TEMPLATE_PATTERN = `.slo-observability.summary-v${SLO_RESOURCES_VERSION}*`; export const SUMMARY_DESTINATION_INDEX_NAME = `.slo-observability.summary-v${SLO_RESOURCES_VERSION}`; // store the summary document generated by transform export const SUMMARY_TEMP_INDEX_NAME = `.slo-observability.summary-v${SLO_RESOURCES_VERSION}.temp`; // store the temporary summary document export const SUMMARY_DESTINATION_INDEX_PATTERN = `.slo-observability.summary-v${SLO_RESOURCES_VERSION_MAJOR}*`; // include temp and non-temp summary indices diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts index 3b06438eb010d..f1279cca50e83 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts @@ -5,15 +5,17 @@ * 2.0. */ +import type { ClusterPutComponentTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; import { SLI_COMPONENT_TEMPLATE_SETTINGS_NAME, SLO_RESOURCES_VERSION, } from '../../../common/constants'; -export const SLI_SETTINGS_TEMPLATE = { +export const SLI_SETTINGS_TEMPLATE: ClusterPutComponentTemplateRequest = { name: SLI_COMPONENT_TEMPLATE_SETTINGS_NAME, template: { settings: { + 'sort.field': ['slo.id', 'slo.revision', 'slo.instanceId'], auto_expand_replicas: '0-1', hidden: true, }, diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts index 6424bb342a31e..fa79415395d3a 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts @@ -5,15 +5,17 @@ * 2.0. */ +import type { ClusterPutComponentTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; import { SLO_RESOURCES_VERSION, SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME, } from '../../../common/constants'; -export const SUMMARY_SETTINGS_TEMPLATE = { +export const SUMMARY_SETTINGS_TEMPLATE: ClusterPutComponentTemplateRequest = { name: SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME, template: { settings: { + 'sort.field': ['slo.id'], auto_expand_replicas: '0-1', hidden: true, }, diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/sli_index_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/sli_index_template.ts index 6b3447a72c8d4..f949ecdb09be1 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/sli_index_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/sli_index_template.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { IndicesPutIndexTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; import { SLI_COMPONENT_TEMPLATE_MAPPINGS_NAME, SLI_COMPONENT_TEMPLATE_SETTINGS_NAME, @@ -13,11 +14,11 @@ import { SLO_RESOURCES_VERSION, } from '../../../common/constants'; -export const SLI_INDEX_TEMPLATE = { +export const SLI_INDEX_TEMPLATE: IndicesPutIndexTemplateRequest = { name: SLI_INDEX_TEMPLATE_NAME, index_patterns: [SLI_INDEX_TEMPLATE_PATTERN], composed_of: [SLI_COMPONENT_TEMPLATE_MAPPINGS_NAME, SLI_COMPONENT_TEMPLATE_SETTINGS_NAME], - priority: 500, + priority: 600, _meta: { description: 'Template for SLO rollup data', version: SLO_RESOURCES_VERSION, diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/summary_index_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/summary_index_template.ts index fd70d9909d799..9f0f16e6fd124 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/summary_index_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/index_templates/summary_index_template.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { IndicesPutIndexTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; import { SLO_RESOURCES_VERSION, SUMMARY_COMPONENT_TEMPLATE_MAPPINGS_NAME, @@ -13,11 +14,11 @@ import { SUMMARY_INDEX_TEMPLATE_PATTERN, } from '../../../common/constants'; -export const SUMMARY_INDEX_TEMPLATE = { +export const SUMMARY_INDEX_TEMPLATE: IndicesPutIndexTemplateRequest = { name: SUMMARY_INDEX_TEMPLATE_NAME, index_patterns: [SUMMARY_INDEX_TEMPLATE_PATTERN], composed_of: [SUMMARY_COMPONENT_TEMPLATE_MAPPINGS_NAME, SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME], - priority: 500, + priority: 600, _meta: { description: 'SLO summary index template', version: SLO_RESOURCES_VERSION, diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/sli_pipeline_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/sli_pipeline_template.ts index 5bcb23d448ae8..ce0017a1d3680 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/sli_pipeline_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/sli_pipeline_template.ts @@ -71,7 +71,7 @@ export const getSLIPipelineTemplate = ( date_index_name: { field: '@timestamp', index_name_prefix: SLI_INGEST_PIPELINE_INDEX_NAME_PREFIX, - date_rounding: 'M', + date_rounding: 'd', date_formats: ['UNIX_MS', 'ISO8601', "yyyy-MM-dd'T'HH:mm:ss.SSSXX"], }, }, @@ -100,6 +100,13 @@ export const getSLIPipelineTemplate = ( name: `slo-${slo.id}@custom`, }, }, + { + pipeline: { + ignore_missing_pipeline: true, + ignore_failure: true, + name: 'slo-rollup-global@custom', + }, + }, ], _meta: { description: 'Ingest pipeline for SLO rollup data', diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/summary_pipeline_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/summary_pipeline_template.ts index 8a3f8cf58eca6..506862929acc6 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/summary_pipeline_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/summary_pipeline_template.ts @@ -249,6 +249,20 @@ export const getSummaryPipelineTemplate = ( ignore_failure: true, }, }, + { + pipeline: { + ignore_missing_pipeline: true, + ignore_failure: true, + name: `slo-${slo.id}@custom`, + }, + }, + { + pipeline: { + ignore_missing_pipeline: true, + ignore_failure: true, + name: 'slo-summary-global@custom', + }, + }, ], _meta: { description: `Ingest pipeline for SLO summary data [id: ${slo.id}, revision: ${slo.revision}]`, diff --git a/x-pack/solutions/observability/plugins/slo/server/services/resource_installer.ts b/x-pack/solutions/observability/plugins/slo/server/services/resource_installer.ts index af6fb4875dc3f..a4a268d51306d 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/resource_installer.ts +++ b/x-pack/solutions/observability/plugins/slo/server/services/resource_installer.ts @@ -87,18 +87,18 @@ export class DefaultResourceInstaller implements ResourceInstaller { } private async fetchComponentTemplateVersion(name: string) { - const getTemplateRes = await this.execute(() => + const response = await this.execute(() => this.esClient.cluster.getComponentTemplate({ name }, { ignore: [404] }) ); - return getTemplateRes?.component_templates?.[0]?.component_template?._meta?.version ?? null; + return response?.component_templates?.[0]?.component_template?._meta?.version ?? null; } private async fetchIndexTemplateVersion(name: string) { - const getTemplateRes = await this.execute(() => + const response = await this.execute(() => this.esClient.indices.getIndexTemplate({ name }, { ignore: [404] }) ); - return getTemplateRes?.index_templates?.[0]?.index_template?._meta?.version ?? null; + return response?.index_templates?.[0]?.index_template?._meta?.version ?? null; } } From 7cd48a115501af99e3bb8a15a2a013347ddcdad0 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Tue, 2 Dec 2025 14:22:48 -0500 Subject: [PATCH 2/5] Add sort order --- .../server/assets/component_templates/sli_settings_template.ts | 1 + .../assets/component_templates/summary_settings_template.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts index f1279cca50e83..79f276138cd33 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/sli_settings_template.ts @@ -16,6 +16,7 @@ export const SLI_SETTINGS_TEMPLATE: ClusterPutComponentTemplateRequest = { template: { settings: { 'sort.field': ['slo.id', 'slo.revision', 'slo.instanceId'], + 'sort.order': ['asc', 'asc', 'asc'], auto_expand_replicas: '0-1', hidden: true, }, diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts index fa79415395d3a..1b7394c96b5a9 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts @@ -16,6 +16,7 @@ export const SUMMARY_SETTINGS_TEMPLATE: ClusterPutComponentTemplateRequest = { template: { settings: { 'sort.field': ['slo.id'], + 'sort.order': ['asc'], auto_expand_replicas: '0-1', hidden: true, }, From 3ac0add529a1beed0b35a73fabc661eef6d5ee0d Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Tue, 2 Dec 2025 15:07:17 -0500 Subject: [PATCH 3/5] Update tests --- .../sli_pipeline_template.test.ts.snap | 26 ++++++++++++++----- .../slo_transform_template.test.ts | 4 +-- .../__snapshots__/create_slo.test.ts.snap | 15 ++++++++--- .../clean_up_temp_summary.test.ts.snap | 4 +-- .../__snapshots__/occurrences.test.ts.snap | 18 ++++++------- .../timeslices_calendar_aligned.test.ts.snap | 6 ++--- .../timeslices_rolling.test.ts.snap | 6 ++--- .../apm_transaction_duration.test.ts.snap | 12 ++++----- .../apm_transaction_error_rate.test.ts.snap | 12 ++++----- .../__snapshots__/histogram.test.ts.snap | 12 ++++----- .../__snapshots__/kql_custom.test.ts.snap | 12 ++++----- .../__snapshots__/metric_custom.test.ts.snap | 8 +++--- .../synthetics_availability.test.ts.snap | 4 +-- .../timeslice_metric.test.ts.snap | 8 +++--- 14 files changed, 84 insertions(+), 63 deletions(-) diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/__snapshots__/sli_pipeline_template.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/__snapshots__/sli_pipeline_template.test.ts.snap index 2e55fc0681140..bc4ed834e4a9d 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/__snapshots__/sli_pipeline_template.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/assets/ingest_templates/__snapshots__/sli_pipeline_template.test.ts.snap @@ -6,7 +6,7 @@ Object { "description": "Ingest pipeline for SLO rollup data", "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "description": "Ingest pipeline for SLO rollup data [id: irrelevant, revision: 1]", "id": ".slo-observability.sli.pipeline-irrelevant-1", @@ -63,9 +63,9 @@ Object { "ISO8601", "yyyy-MM-dd'T'HH:mm:ss.SSSXX", ], - "date_rounding": "M", + "date_rounding": "d", "field": "@timestamp", - "index_name_prefix": ".slo-observability.sli-v3.5.", + "index_name_prefix": ".slo-observability.sli-v3.6.", }, }, Object { @@ -90,6 +90,13 @@ Object { "name": "slo-irrelevant@custom", }, }, + Object { + "pipeline": Object { + "ignore_failure": true, + "ignore_missing_pipeline": true, + "name": "slo-rollup-global@custom", + }, + }, ], } `; @@ -100,7 +107,7 @@ Object { "description": "Ingest pipeline for SLO rollup data", "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "description": "Ingest pipeline for SLO rollup data [id: irrelevant, revision: 1]", "id": ".slo-observability.sli.pipeline-irrelevant-1", @@ -157,9 +164,9 @@ Object { "ISO8601", "yyyy-MM-dd'T'HH:mm:ss.SSSXX", ], - "date_rounding": "M", + "date_rounding": "d", "field": "@timestamp", - "index_name_prefix": ".slo-observability.sli-v3.5.", + "index_name_prefix": ".slo-observability.sli-v3.6.", }, }, Object { @@ -184,6 +191,13 @@ Object { "name": "slo-irrelevant@custom", }, }, + Object { + "pipeline": Object { + "ignore_failure": true, + "ignore_missing_pipeline": true, + "name": "slo-rollup-global@custom", + }, + }, ], } `; diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/transform_templates/slo_transform_template.test.ts b/x-pack/solutions/observability/plugins/slo/server/assets/transform_templates/slo_transform_template.test.ts index 51fd309883b6b..cfbff2bc139ae 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/transform_templates/slo_transform_template.test.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/transform_templates/slo_transform_template.test.ts @@ -143,7 +143,7 @@ describe('slo transform template', () => { }, defer_validation: true, _meta: { - version: 3.5, + version: 3.6, managed: true, managed_by: 'observability', }, @@ -247,7 +247,7 @@ describe('slo transform template', () => { }, defer_validation: true, _meta: { - version: 3.5, + version: 3.6, managed: true, managed_by: 'observability', }, diff --git a/x-pack/solutions/observability/plugins/slo/server/services/__snapshots__/create_slo.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/__snapshots__/create_slo.test.ts.snap index 9ffcad31a9e4d..d7c400d2955e9 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/__snapshots__/create_slo.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/__snapshots__/create_slo.test.ts.snap @@ -7,7 +7,7 @@ Array [ "description": "Ingest pipeline for SLO rollup data", "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "description": "Ingest pipeline for SLO rollup data [id: unique-id, revision: 1]", "id": ".slo-observability.sli.pipeline-unique-id-1", @@ -61,9 +61,9 @@ Array [ "ISO8601", "yyyy-MM-dd'T'HH:mm:ss.SSSXX", ], - "date_rounding": "M", + "date_rounding": "d", "field": "@timestamp", - "index_name_prefix": ".slo-observability.sli-v3.5.", + "index_name_prefix": ".slo-observability.sli-v3.6.", }, }, Object { @@ -88,6 +88,13 @@ Array [ "name": "slo-unique-id@custom", }, }, + Object { + "pipeline": Object { + "ignore_failure": true, + "ignore_missing_pipeline": true, + "name": "slo-rollup-global@custom", + }, + }, ], }, ] @@ -180,7 +187,7 @@ Array [ }, }, "id": "slo-unique-id", - "index": ".slo-observability.summary-v3.5.temp", + "index": ".slo-observability.summary-v3.6.temp", "refresh": true, }, ] diff --git a/x-pack/solutions/observability/plugins/slo/server/services/management/__snapshots__/clean_up_temp_summary.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/management/__snapshots__/clean_up_temp_summary.test.ts.snap index ab8d27818acd3..191459df4fec3 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/management/__snapshots__/clean_up_temp_summary.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/management/__snapshots__/clean_up_temp_summary.test.ts.snap @@ -6,7 +6,7 @@ exports[`CleanUpTempSummary deletes the duplicated temp documents 1`] = ` Array [ Object { "conflicts": "proceed", - "index": ".slo-observability.summary-v3.5.temp", + "index": ".slo-observability.summary-v3.6.temp", "query": Object { "bool": Object { "minimum_should_match": 1, @@ -45,7 +45,7 @@ exports[`CleanUpTempSummary deletes the duplicated temp documents 1`] = ` Array [ Object { "conflicts": "proceed", - "index": ".slo-observability.summary-v3.5.temp", + "index": ".slo-observability.summary-v3.6.temp", "query": Object { "bool": Object { "minimum_should_match": 1, diff --git a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/occurrences.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/occurrences.test.ts.snap index 554c1c40820e5..0d5e67abab64b 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/occurrences.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/occurrences.test.ts.snap @@ -5,12 +5,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Summarise the rollup data of SLO: irrelevant [id: irrelevant, revision: 1].", "dest": Object { - "index": ".slo-observability.summary-v3.5", + "index": ".slo-observability.summary-v3.6", "pipeline": ".slo-observability.summary.pipeline-irrelevant-1", }, "frequency": "1m", @@ -212,7 +212,7 @@ Object { "unattended": true, }, "source": Object { - "index": ".slo-observability.sli-v3.5*", + "index": ".slo-observability.sli-v3.6*", "query": Object { "bool": Object { "filter": Array [ @@ -253,12 +253,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Summarise the rollup data of SLO: irrelevant [id: irrelevant, revision: 1].", "dest": Object { - "index": ".slo-observability.summary-v3.5", + "index": ".slo-observability.summary-v3.6", "pipeline": ".slo-observability.summary.pipeline-irrelevant-1", }, "frequency": "1m", @@ -460,7 +460,7 @@ Object { "unattended": true, }, "source": Object { - "index": ".slo-observability.sli-v3.5*", + "index": ".slo-observability.sli-v3.6*", "query": Object { "bool": Object { "filter": Array [ @@ -501,12 +501,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Summarise the rollup data of SLO: irrelevant [id: irrelevant, revision: 1].", "dest": Object { - "index": ".slo-observability.summary-v3.5", + "index": ".slo-observability.summary-v3.6", "pipeline": ".slo-observability.summary.pipeline-irrelevant-1", }, "frequency": "1m", @@ -708,7 +708,7 @@ Object { "unattended": true, }, "source": Object { - "index": ".slo-observability.sli-v3.5*", + "index": ".slo-observability.sli-v3.6*", "query": Object { "bool": Object { "filter": Array [ diff --git a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_calendar_aligned.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_calendar_aligned.test.ts.snap index 0f2f12ec4e45e..24b5d418f1928 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_calendar_aligned.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_calendar_aligned.test.ts.snap @@ -5,12 +5,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Summarise the rollup data of SLO: irrelevant [id: irrelevant, revision: 1].", "dest": Object { - "index": ".slo-observability.summary-v3.5", + "index": ".slo-observability.summary-v3.6", "pipeline": ".slo-observability.summary.pipeline-irrelevant-1", }, "frequency": "1m", @@ -236,7 +236,7 @@ Object { "unattended": true, }, "source": Object { - "index": ".slo-observability.sli-v3.5*", + "index": ".slo-observability.sli-v3.6*", "query": Object { "bool": Object { "filter": Array [ diff --git a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_rolling.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_rolling.test.ts.snap index 1db250227ccb5..65c3d1a5c470c 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_rolling.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/summary_transform_generator/generators/__snapshots__/timeslices_rolling.test.ts.snap @@ -5,12 +5,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Summarise the rollup data of SLO: irrelevant [id: irrelevant, revision: 1].", "dest": Object { - "index": ".slo-observability.summary-v3.5", + "index": ".slo-observability.summary-v3.6", "pipeline": ".slo-observability.summary.pipeline-irrelevant-1", }, "frequency": "1m", @@ -212,7 +212,7 @@ Object { "unattended": true, }, "source": Object { - "index": ".slo-observability.sli-v3.5*", + "index": ".slo-observability.sli-v3.6*", "query": Object { "bool": Object { "filter": Array [ diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap index 383ef4a0e7bd9..43c2e2045b298 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_duration.test.ts.snap @@ -369,12 +369,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -517,12 +517,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -665,12 +665,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap index 39f5a33619559..ded20dc02b7a2 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/apm_transaction_error_rate.test.ts.snap @@ -345,12 +345,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -480,12 +480,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -615,12 +615,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/histogram.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/histogram.test.ts.snap index d99c94dfc9aa4..9156ce4b73b85 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/histogram.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/histogram.test.ts.snap @@ -86,12 +86,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -224,12 +224,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -362,12 +362,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/kql_custom.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/kql_custom.test.ts.snap index b09959b114cf0..d23a8f20a781d 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/kql_custom.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/kql_custom.test.ts.snap @@ -145,12 +145,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -265,12 +265,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -385,12 +385,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/metric_custom.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/metric_custom.test.ts.snap index fae305f2849f3..7557e20c32786 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/metric_custom.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/metric_custom.test.ts.snap @@ -126,12 +126,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -275,12 +275,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/synthetics_availability.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/synthetics_availability.test.ts.snap index 0b589e43fca98..f1a467ce48cdb 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/synthetics_availability.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/synthetics_availability.test.ts.snap @@ -5,12 +5,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", diff --git a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/timeslice_metric.test.ts.snap b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/timeslice_metric.test.ts.snap index c1e972d42bcda..36a484064fb54 100644 --- a/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/timeslice_metric.test.ts.snap +++ b/x-pack/solutions/observability/plugins/slo/server/services/transform_generators/__snapshots__/timeslice_metric.test.ts.snap @@ -42,12 +42,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", @@ -260,12 +260,12 @@ Object { "_meta": Object { "managed": true, "managed_by": "observability", - "version": 3.5, + "version": 3.6, }, "defer_validation": true, "description": "Rolled-up SLI data for SLO: irrelevant [id: irrelevant, revision: 1]", "dest": Object { - "index": ".slo-observability.sli-v3.5", + "index": ".slo-observability.sli-v3.6", "pipeline": ".slo-observability.sli.pipeline-irrelevant-1", }, "frequency": "1m", From 6c7c9a4be57a84308ff4f69936db414ff442c437 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Tue, 2 Dec 2025 20:12:19 -0500 Subject: [PATCH 4/5] Fix integration tests --- .../apis/slo/create_slo.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/solutions/observability/test/api_integration_deployment_agnostic/apis/slo/create_slo.ts b/x-pack/solutions/observability/test/api_integration_deployment_agnostic/apis/slo/create_slo.ts index d97b12a6820f4..78de00b026ab3 100644 --- a/x-pack/solutions/observability/test/api_integration_deployment_agnostic/apis/slo/create_slo.ts +++ b/x-pack/solutions/observability/test/api_integration_deployment_agnostic/apis/slo/create_slo.ts @@ -106,7 +106,7 @@ export default function ({ getService }: DeploymentAgnosticFtrProviderContext) { const rollUpTransformResponse = await transformHelper.assertExist(getSLOTransformId(id, 1)); expect(rollUpTransformResponse.transforms[0].source.index).eql(['kbn-data-forge*']); expect(rollUpTransformResponse.transforms[0].dest).eql({ - index: '.slo-observability.sli-v3.5', + index: '.slo-observability.sli-v3.6', pipeline: `.slo-observability.sli.pipeline-${id}-1`, }); expect(rollUpTransformResponse.transforms[0].pivot.group_by).eql({ @@ -118,10 +118,10 @@ export default function ({ getService }: DeploymentAgnosticFtrProviderContext) { getSLOSummaryTransformId(id, 1) ); expect(summaryTransformResponse.transforms[0].source.index).eql([ - '.slo-observability.sli-v3.5*', + '.slo-observability.sli-v3.6*', ]); expect(summaryTransformResponse.transforms[0].dest).eql({ - index: '.slo-observability.summary-v3.5', + index: '.slo-observability.summary-v3.6', pipeline: `.slo-observability.summary.pipeline-${id}-1`, }); }); From 00e7e75883f5ffb5e7fb19fe56e2d33f31cf2357 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Wed, 3 Dec 2025 09:44:21 -0500 Subject: [PATCH 5/5] Remove sorting on id --- .../assets/component_templates/summary_settings_template.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts index 1b7394c96b5a9..5026bae354d8a 100644 --- a/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts +++ b/x-pack/solutions/observability/plugins/slo/server/assets/component_templates/summary_settings_template.ts @@ -15,8 +15,6 @@ export const SUMMARY_SETTINGS_TEMPLATE: ClusterPutComponentTemplateRequest = { name: SUMMARY_COMPONENT_TEMPLATE_SETTINGS_NAME, template: { settings: { - 'sort.field': ['slo.id'], - 'sort.order': ['asc'], auto_expand_replicas: '0-1', hidden: true, },