From 28017ed9338c1705d6d17465251d3d89f5da5ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?= Date: Mon, 16 Dec 2019 18:22:01 +0100 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=94=8A=F0=9F=90=9B=20[RUMF-201]=20add?= =?UTF-8?q?=20internal=20logs=20for=20buggy=20load=20event=20measures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/transport.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/core/src/transport.ts b/packages/core/src/transport.ts index bce44b7f88..c879198851 100644 --- a/packages/core/src/transport.ts +++ b/packages/core/src/transport.ts @@ -1,6 +1,6 @@ import lodashMerge from 'lodash.merge' -import { monitor } from './internalMonitoring' +import { addMonitoringMessage, monitor } from './internalMonitoring' import { Context, jsonStringify } from './utils' /** @@ -27,6 +27,8 @@ export class HttpRequest { } } +const isObject = (o: unknown): o is { [k: string]: unknown } => typeof o === 'object' && o !== null + export class Batch { private beforeFlushOnUnloadHandlers: Array<() => void> = [] private buffer: string = '' @@ -82,6 +84,20 @@ export class Batch { private process(message: T) { const contextualizedMessage = lodashMerge({}, this.contextProvider(), message) as Context + if ( + isObject(contextualizedMessage.view) && + isObject(contextualizedMessage.view.measures) && + isObject(contextualizedMessage.rum) + ) { + const loadEventEnd = contextualizedMessage.view.measures.load_event_end + if (typeof loadEventEnd === 'number' && loadEventEnd > 86400e9 /* 1 day in ns */) { + addMonitoringMessage( + `Buggy load event measure: ${loadEventEnd} - ` + + `View Id: ${contextualizedMessage.view.id} - ` + + `Document Version: ${contextualizedMessage.rum.document_version}` + ) + } + } const processedMessage = jsonStringify(contextualizedMessage)! const messageBytesSize = this.sizeInBytes(processedMessage) return { processedMessage, messageBytesSize } From a917851004685115d00dfc6db48bd1e320d86c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?= Date: Tue, 17 Dec 2019 10:23:49 +0100 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=91=8C=20extract=20function=20to=20re?= =?UTF-8?q?port=20abnormal=20measures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/transport.ts | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/core/src/transport.ts b/packages/core/src/transport.ts index c879198851..e3ff669430 100644 --- a/packages/core/src/transport.ts +++ b/packages/core/src/transport.ts @@ -29,6 +29,23 @@ export class HttpRequest { const isObject = (o: unknown): o is { [k: string]: unknown } => typeof o === 'object' && o !== null +function reportAdbnormalMeasure(contextualizedMessage: Context) { + if ( + isObject(contextualizedMessage.view) && + isObject(contextualizedMessage.view.measures) && + isObject(contextualizedMessage.rum) + ) { + const loadEventEnd = contextualizedMessage.view.measures.load_event_end + if (typeof loadEventEnd === 'number' && loadEventEnd > 86400e9 /* 1 day in ns */) { + addMonitoringMessage( + `Buggy load event measure: ${loadEventEnd} - ` + + `View Id: ${contextualizedMessage.view.id} - ` + + `Document Version: ${contextualizedMessage.rum.document_version}` + ) + } + } +} + export class Batch { private beforeFlushOnUnloadHandlers: Array<() => void> = [] private buffer: string = '' @@ -84,20 +101,7 @@ export class Batch { private process(message: T) { const contextualizedMessage = lodashMerge({}, this.contextProvider(), message) as Context - if ( - isObject(contextualizedMessage.view) && - isObject(contextualizedMessage.view.measures) && - isObject(contextualizedMessage.rum) - ) { - const loadEventEnd = contextualizedMessage.view.measures.load_event_end - if (typeof loadEventEnd === 'number' && loadEventEnd > 86400e9 /* 1 day in ns */) { - addMonitoringMessage( - `Buggy load event measure: ${loadEventEnd} - ` + - `View Id: ${contextualizedMessage.view.id} - ` + - `Document Version: ${contextualizedMessage.rum.document_version}` - ) - } - } + reportAdbnormalMeasure(contextualizedMessage) const processedMessage = jsonStringify(contextualizedMessage)! const messageBytesSize = this.sizeInBytes(processedMessage) return { processedMessage, messageBytesSize } From 285a4e107b3e2ccec2a194cfceef30a9c6e513dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?= Date: Tue, 17 Dec 2019 11:13:00 +0100 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=91=8C=20fix=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/transport.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/transport.ts b/packages/core/src/transport.ts index e3ff669430..e1d363bddf 100644 --- a/packages/core/src/transport.ts +++ b/packages/core/src/transport.ts @@ -29,7 +29,7 @@ export class HttpRequest { const isObject = (o: unknown): o is { [k: string]: unknown } => typeof o === 'object' && o !== null -function reportAdbnormalMeasure(contextualizedMessage: Context) { +function reportAbnormalMeasure(contextualizedMessage: Context) { if ( isObject(contextualizedMessage.view) && isObject(contextualizedMessage.view.measures) && @@ -101,7 +101,7 @@ export class Batch { private process(message: T) { const contextualizedMessage = lodashMerge({}, this.contextProvider(), message) as Context - reportAdbnormalMeasure(contextualizedMessage) + reportAbnormalMeasure(contextualizedMessage) const processedMessage = jsonStringify(contextualizedMessage)! const messageBytesSize = this.sizeInBytes(processedMessage) return { processedMessage, messageBytesSize }