From 5cd13bb2dfd0ae769a7161d9b41ecadd19e2f236 Mon Sep 17 00:00:00 2001 From: Bastien Caudan Date: Tue, 9 Jan 2024 16:03:31 +0100 Subject: [PATCH] enrich telemetry events --- .../core/src/domain/telemetry/telemetry.spec.ts | 17 +++++++++++++++++ packages/core/src/domain/telemetry/telemetry.ts | 2 ++ 2 files changed, 19 insertions(+) diff --git a/packages/core/src/domain/telemetry/telemetry.spec.ts b/packages/core/src/domain/telemetry/telemetry.spec.ts index 425060f553..ac52ab19f5 100644 --- a/packages/core/src/domain/telemetry/telemetry.spec.ts +++ b/packages/core/src/domain/telemetry/telemetry.spec.ts @@ -5,6 +5,7 @@ import type { ExperimentalFeature } from '../../tools/experimentalFeatures' import { resetExperimentalFeatures, addExperimentalFeatures } from '../../tools/experimentalFeatures' import type { Configuration } from '../configuration' import { INTAKE_SITE_US1, INTAKE_SITE_US1_FED } from '../configuration' +import { setNavigatorOnLine, setNavigatorConnection } from '../../../test' import { resetTelemetry, startTelemetry, @@ -93,6 +94,22 @@ describe('telemetry', () => { }) }) + it('should contain connectivity information', () => { + setNavigatorOnLine(false) + setNavigatorConnection({ type: 'wifi', effectiveType: '4g' }) + + const { notifySpy } = startAndSpyTelemetry() + callMonitored(() => { + throw new Error('message') + }) + + expect(notifySpy.calls.mostRecent().args[0].telemetry.connectivity).toEqual({ + status: 'not_connected', + interfaces: ['wifi'], + effective_type: '4g', + }) + }) + describe('telemetry context', () => { it('should be added to telemetry events', () => { const { telemetry, notifySpy } = startAndSpyTelemetry() diff --git a/packages/core/src/domain/telemetry/telemetry.ts b/packages/core/src/domain/telemetry/telemetry.ts index c43fa9ed13..dae8c490ae 100644 --- a/packages/core/src/domain/telemetry/telemetry.ts +++ b/packages/core/src/domain/telemetry/telemetry.ts @@ -15,6 +15,7 @@ import { combine } from '../../tools/mergeInto' import { NonErrorPrefix } from '../error/error.types' import type { StackTrace } from '../error/computeStackTrace' import { computeStackTrace } from '../error/computeStackTrace' +import { getConnectivity } from '../connectivity' import type { TelemetryEvent } from './telemetryEvent.types' import type { RawTelemetryConfiguration, RawTelemetryEvent, RuntimeEnvInfo } from './rawTelemetryEvent.types' import { StatusType, TelemetryType } from './rawTelemetryEvent.types' @@ -94,6 +95,7 @@ export function startTelemetry(telemetryService: TelemetryService, configuration }, telemetry: combine(event, { runtime_env: runtimeEnvInfo, + connectivity: getConnectivity(), }), experimental_features: arrayFrom(getExperimentalFeatures()), },