Skip to content

Commit ad5e975

Browse files
Merge pull request #16286 from MatousJobanek/fix-devsandbox-telemetry-4.21
[release-4.21] OCPBUGS-83572: fix Developer Sandbox telemetry
2 parents 3c2cad3 + 9c201d6 commit ad5e975

4 files changed

Lines changed: 15 additions & 14 deletions

File tree

frontend/@types/console/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ declare interface Window {
5959
// One of the following should be always available on prod env.
6060
SEGMENT_API_KEY: string;
6161
SEGMENT_PUBLIC_API_KEY: string;
62+
// DevSandbox-specific configuration
6263
DEVSANDBOX_SEGMENT_API_KEY: string;
64+
DEVSANDBOX: 'true' | 'false';
6365
// Optional override for analytics.min.js script URL
6466
SEGMENT_JS_URL: string;
6567
// Additional telemetry options passed to Console frontend

frontend/packages/console-dynamic-plugin-sdk/src/api/segment-analytics.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { GetSegmentAnalytics } from '../extensions/console-types';
22

33
// Segment API key. Must be present for telemetry to be enabled.
4+
// When running in DevSandbox mode, prefer the DevSandbox-specific key.
45
const TELEMETRY_API_KEY =
6+
(window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true' &&
7+
window.SERVER_FLAGS.telemetry?.DEVSANDBOX_SEGMENT_API_KEY) ||
58
window.SERVER_FLAGS.telemetry?.SEGMENT_API_KEY ||
69
window.SERVER_FLAGS.telemetry?.SEGMENT_PUBLIC_API_KEY ||
7-
window.SERVER_FLAGS.telemetry?.DEVSANDBOX_SEGMENT_API_KEY ||
810
'';
911

1012
// Segment "apiHost" parameter, should be like "api.segment.io/v1"

frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,28 +105,28 @@ describe('getClusterProperties', () => {
105105
expect(getClusterProperties().clusterType).toBe('TEST');
106106
});
107107

108-
it('returns DEVSANDBOX when CLUSTER_TYPE is "OSD" but and DEVSANDBOX is "true"', () => {
108+
it('returns DEVSANDBOX when DEVSANDBOX is "true" regardless of CLUSTER_TYPE', () => {
109109
window.SERVER_FLAGS = {
110110
...originServerFlags,
111-
telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'true' },
111+
telemetry: { CLUSTER_TYPE: 'ROSA', DEVSANDBOX: 'true' },
112112
};
113113
expect(getClusterProperties().clusterType).toBe('DEVSANDBOX');
114114
});
115115

116-
it('returns the clusterType that it is configured if CLUSTER_TYPE is not OSD (in the future) but DEVSANDBOX is still "true"', () => {
116+
it('returns DEVSANDBOX when DEVSANDBOX is "true" even if CLUSTER_TYPE is a different value', () => {
117117
window.SERVER_FLAGS = {
118118
...originServerFlags,
119119
telemetry: { CLUSTER_TYPE: 'a_FUTURE_DEVSANDBOX_KEY', DEVSANDBOX: 'true' },
120120
};
121-
expect(getClusterProperties().clusterType).toBe('a_FUTURE_DEVSANDBOX_KEY');
121+
expect(getClusterProperties().clusterType).toBe('DEVSANDBOX');
122122
});
123123

124-
it('returns the clusterType that it is configured if CLUSTER_TYPE is OSD but DEVSANDBOX is not exactly "true"', () => {
124+
it('returns the configured clusterType when DEVSANDBOX is not exactly "true"', () => {
125125
window.SERVER_FLAGS = {
126126
...originServerFlags,
127-
telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'false' },
127+
telemetry: { CLUSTER_TYPE: 'ROSA', DEVSANDBOX: 'false' },
128128
};
129-
expect(getClusterProperties().clusterType).toBe('OSD');
129+
expect(getClusterProperties().clusterType).toBe('ROSA');
130130
});
131131
});
132132

@@ -208,12 +208,12 @@ describe('useTelemetry', () => {
208208
});
209209
});
210210

211-
it('calls the listener with clusterType DEVSANDBOX when CLUSTER_TYPE is OSD and DEVSANDBOX is "true"', () => {
211+
it('calls the listener with clusterType DEVSANDBOX when DEVSANDBOX is "true"', () => {
212212
window.SERVER_FLAGS = {
213213
...originServerFlags,
214214
consoleVersion: 'x.y.z',
215215
telemetry: {
216-
CLUSTER_TYPE: 'OSD',
216+
CLUSTER_TYPE: 'ROSA',
217217
DEVSANDBOX: 'true',
218218
STATE: CLUSTER_TELEMETRY_ANALYTICS.ENFORCE,
219219
},

frontend/packages/console-shared/src/hooks/useTelemetry.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ export const getClusterProperties = () => {
4040
const clusterProperties: ClusterProperties = {};
4141
clusterProperties.clusterId = window.SERVER_FLAGS.telemetry?.CLUSTER_ID;
4242
clusterProperties.clusterType = window.SERVER_FLAGS.telemetry?.CLUSTER_TYPE;
43-
if (
44-
window.SERVER_FLAGS.telemetry?.CLUSTER_TYPE === 'OSD' &&
45-
window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true'
46-
) {
43+
if (window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true') {
4744
clusterProperties.clusterType = 'DEVSANDBOX';
4845
}
4946
// Prefer to report the OCP version (releaseVersion) if available.

0 commit comments

Comments
 (0)