From b93ea40a40abe55e89b2a1fc5f906445b59203f2 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 11 Mar 2025 12:51:14 +0100 Subject: [PATCH] Refactor TTFMP query `from`, `to` fields. --- .../adding_custom_performance_metrics.mdx | 5 +++-- .../track_performance_measure_entries.test.ts | 22 ++++++++++++++----- .../src/track_performance_measure_entries.ts | 3 ++- .../context/measure_interaction/index.ts | 7 ++++-- .../measure_interaction.test.tsx | 15 ++++++++----- 5 files changed, 36 insertions(+), 16 deletions(-) diff --git a/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx b/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx index 7ebd918f4a331..b68e91b3fc6ca 100644 --- a/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx +++ b/dev_docs/tutorials/performance/adding_custom_performance_metrics.mdx @@ -330,8 +330,9 @@ This will be indexed as: "duration": 736, // Event duration as specified when reporting it "meta": { "target": '/home', - "query_range_secs": 900 - "query_offset_secs": 0 // now + "query_range_secs": 900, // 15 minutes + "query_from_offset_secs": -900 // From 15 minutes ago + "query_to_offset_secs": 0 // To now }, "context": { // Context holds information identifying the deployment, version, application and page that generated the event "version": "8.16.0-SNAPSHOT", diff --git a/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.test.ts b/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.test.ts index d53e67640c3d4..1a2d26db0dc8e 100644 --- a/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.test.ts +++ b/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.test.ts @@ -117,7 +117,8 @@ describe('trackPerformanceMeasureEntries', () => { meta: { isInitialLoad: true, queryRangeSecs: 86400, - queryOffsetSecs: 0, + queryFromOffsetSecs: -86400, + queryToOffsetSecs: 0, }, }, }, @@ -129,7 +130,12 @@ describe('trackPerformanceMeasureEntries', () => { duration: 1000, eventName: 'kibana:plugin_render_time', key1: 'key1', - meta: { is_initial_load: true, query_range_secs: 86400, query_offset_secs: 0 }, + meta: { + is_initial_load: true, + query_range_secs: 86400, + query_from_offset_secs: -86400, + query_to_offset_secs: 0, + }, value1: 'value1', }); }); @@ -146,7 +152,8 @@ describe('trackPerformanceMeasureEntries', () => { type: 'kibana:performance', meta: { queryRangeSecs: 86400, - queryOffsetSecs: 0, + queryFromOffsetSecs: -86400, + queryToOffsetSecs: 0, }, }, }, @@ -159,7 +166,8 @@ describe('trackPerformanceMeasureEntries', () => { eventName: 'kibana:plugin_render_time', meta: { query_range_secs: 86400, - query_offset_secs: 0, + query_from_offset_secs: -86400, + query_to_offset_secs: 0, }, }); }); @@ -191,7 +199,8 @@ describe('trackPerformanceMeasureEntries', () => { meta: { is_initial_load: false, query_range_secs: undefined, - query_offset_secs: undefined, + query_from_offset_secs: undefined, + query_to_offset_secs: undefined, description: '[ttfmp_dependencies] onPageReady is called when the most important content is rendered', }, @@ -227,7 +236,8 @@ describe('trackPerformanceMeasureEntries', () => { meta: { is_initial_load: false, query_range_secs: undefined, - query_offset_secs: undefined, + query_from_offset_secs: undefined, + query_to_offset_secs: undefined, description: truncatedDescription, }, }); diff --git a/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.ts b/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.ts index 7b92655cde055..b1e235a596e11 100644 --- a/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.ts +++ b/src/core/packages/analytics/browser-internal/src/track_performance_measure_entries.ts @@ -83,7 +83,8 @@ export function trackPerformanceMeasureEntries(analytics: AnalyticsClient, isDev ...customMetrics, meta: { query_range_secs: meta?.queryRangeSecs, - query_offset_secs: meta?.queryOffsetSecs, + query_from_offset_secs: meta?.queryFromOffsetSecs, + query_to_offset_secs: meta?.queryToOffsetSecs, description: description?.slice(0, MAX_DESCRIPTION_LENGTH), is_initial_load: meta?.isInitialLoad, }, diff --git a/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/index.ts b/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/index.ts index d8b55e8a79c8e..6780540274c62 100644 --- a/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/index.ts +++ b/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/index.ts @@ -18,7 +18,8 @@ import { DescriptionWithPrefix } from '../types'; interface PerformanceMeta { queryRangeSecs: number; - queryOffsetSecs: number; + queryFromOffsetSecs: number; + queryToOffsetSecs: number; isInitialLoad?: boolean; description?: DescriptionWithPrefix; } @@ -47,7 +48,9 @@ export function measureInteraction(pathname: string) { performanceMeta = { queryRangeSecs: getTimeDifferenceInSeconds(dateRangesInEpoch), - queryOffsetSecs: + queryFromOffsetSecs: + rangeFrom === 'now' ? 0 : getOffsetFromNowInSeconds(dateRangesInEpoch.startDate), + queryToOffsetSecs: rangeTo === 'now' ? 0 : getOffsetFromNowInSeconds(dateRangesInEpoch.endDate), description, }; diff --git a/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/measure_interaction.test.tsx b/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/measure_interaction.test.tsx index 9ca154ab01a86..fb8a3f3a0f8c7 100644 --- a/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/measure_interaction.test.tsx +++ b/src/platform/packages/shared/kbn-ebt-tools/src/performance_metrics/context/measure_interaction/measure_interaction.test.tsx @@ -74,7 +74,8 @@ describe('measureInteraction', () => { customMetrics: eventData.customMetrics, meta: { queryRangeSecs: 900, - queryOffsetSecs: 0, + queryFromOffsetSecs: -900, + queryToOffsetSecs: 0, isInitialLoad: true, }, }, @@ -102,7 +103,8 @@ describe('measureInteraction', () => { customMetrics: undefined, meta: { queryRangeSecs: 1800, - queryOffsetSecs: 0, + queryFromOffsetSecs: -1800, + queryToOffsetSecs: 0, isInitialLoad: true, }, }, @@ -130,7 +132,8 @@ describe('measureInteraction', () => { customMetrics: undefined, meta: { queryRangeSecs: 86400, - queryOffsetSecs: -1800, + queryFromOffsetSecs: -88200, + queryToOffsetSecs: -1800, isInitialLoad: true, }, }, @@ -159,7 +162,8 @@ describe('measureInteraction', () => { customMetrics: undefined, meta: { queryRangeSecs: 86400, - queryOffsetSecs: 1800, + queryFromOffsetSecs: -84600, + queryToOffsetSecs: 1800, isInitialLoad: true, }, }, @@ -198,7 +202,8 @@ describe('measureInteraction', () => { customMetrics: undefined, meta: { queryRangeSecs: 86400, - queryOffsetSecs: 1800, + queryFromOffsetSecs: -84600, + queryToOffsetSecs: 1800, isInitialLoad: false, }, },