Skip to content

Commit f625ed0

Browse files
committed
#RI-3697 - add telemetry parameters to extrapolation controls
1 parent e5f274a commit f625ed0

File tree

6 files changed

+40
-26
lines changed

6 files changed

+40
-26
lines changed

redisinsight/ui/src/pages/databaseAnalysis/components/analysis-data-view/AnalysisDataView.spec.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from 'react'
22
import { instance, mock } from 'ts-mockito'
33
import { MOCK_ANALYSIS_REPORT_DATA } from 'uiSrc/mocks/data/analysis'
44
import { INSTANCE_ID_MOCK } from 'uiSrc/mocks/handlers/analytics/clusterDetailsHandlers'
5+
import { SectionName } from 'uiSrc/pages/databaseAnalysis'
56
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
67
import { formatBytes, getGroupTypeDisplay } from 'uiSrc/utils'
78
import { numberWithSpaces } from 'uiSrc/utils/numbers'
@@ -266,23 +267,28 @@ describe('AnalysisDataView', () => {
266267
<AnalysisDataView {...instance(mockedProps)} reports={mockReports} data={mockedData} />
267268
)
268269

269-
const clickAndCheckTelemetry = (el: HTMLInputElement) => {
270+
const clickAndCheckTelemetry = (el: HTMLInputElement, section: SectionName) => {
270271
fireEvent.click(el)
271272
expect(sendEventTelemetry).toBeCalledWith({
272273
event: TelemetryEvent.DATABASE_ANALYSIS_EXTRAPOLATION_CHANGED,
273274
eventData: {
274275
databaseId: INSTANCE_ID_MOCK,
275276
from: !el.checked,
276-
to: el.checked
277+
to: el.checked,
278+
section
277279
}
278280
})
279281
sendEventTelemetry.mockRestore()
280282
}
281283

282-
[summaryContainerId, analyticsTTLContainerId, topNameSpacesContainerId].forEach((id) => {
284+
[
285+
{ id: summaryContainerId, section: SectionName.SUMMARY_PER_DATA },
286+
{ id: analyticsTTLContainerId, section: SectionName.MEMORY_LIKELY_TO_BE_FREED },
287+
{ id: topNameSpacesContainerId, section: SectionName.TOP_NAMESPACES },
288+
].forEach(({ id, section }) => {
283289
const extrapolateSwitch = within(screen.getByTestId(id)).getByTestId(extrapolateResultsId)
284-
clickAndCheckTelemetry(extrapolateSwitch as HTMLInputElement)
285-
clickAndCheckTelemetry(extrapolateSwitch as HTMLInputElement)
290+
clickAndCheckTelemetry(extrapolateSwitch as HTMLInputElement, section)
291+
clickAndCheckTelemetry(extrapolateSwitch as HTMLInputElement, section)
286292
})
287293
})
288294
})

redisinsight/ui/src/pages/databaseAnalysis/components/analysis-data-view/AnalysisDataView.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { isNull } from 'lodash'
44
import { useParams } from 'react-router-dom'
55
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
66
import { Nullable } from 'uiSrc/utils'
7-
import { DEFAULT_EXTRAPOLATION, EmptyMessage } from 'uiSrc/pages/databaseAnalysis/constants'
7+
import { DEFAULT_EXTRAPOLATION, EmptyMessage, SectionName } from 'uiSrc/pages/databaseAnalysis/constants'
88
import {
99
TopKeys,
1010
EmptyAnalysisMessage,
@@ -34,13 +34,14 @@ const AnalysisDataView = (props: Props) => {
3434
}
3535
}, [data])
3636

37-
const onSwitchExtrapolation = (value: boolean) => {
37+
const onSwitchExtrapolation = (value: boolean, section: SectionName) => {
3838
sendEventTelemetry({
3939
event: TelemetryEvent.DATABASE_ANALYSIS_EXTRAPOLATION_CHANGED,
4040
eventData: {
4141
databaseId: instanceId,
4242
from: !value,
43-
to: value
43+
to: value,
44+
section
4445
}
4546
})
4647
}

redisinsight/ui/src/pages/databaseAnalysis/components/analysis-ttl-view/ExpirationGroupsView.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1-
import React, { useEffect, useState } from 'react'
21
import { EuiSwitch, EuiTitle } from '@elastic/eui'
3-
import AutoSizer from 'react-virtualized-auto-sizer'
4-
import { useDispatch, useSelector } from 'react-redux'
5-
import cx from 'classnames'
62

7-
import { DEFAULT_EXTRAPOLATION } from 'uiSrc/pages/databaseAnalysis'
8-
import { extrapolate, formatBytes, formatExtrapolation, Nullable } from 'uiSrc/utils'
3+
import cx from 'classnames'
4+
import React, { useEffect, useState } from 'react'
5+
import { useDispatch, useSelector } from 'react-redux'
6+
import AutoSizer from 'react-virtualized-auto-sizer'
97
import { AreaChart } from 'uiSrc/components/charts'
108
import { AreaChartData, AreaChartDataType, DEFAULT_MULTIPLIER_GRID } from 'uiSrc/components/charts/area-chart/AreaChart'
9+
10+
import { DEFAULT_EXTRAPOLATION, SectionName } from 'uiSrc/pages/databaseAnalysis'
1111
import { DBAnalysisReportsSelector, setShowNoExpiryGroup } from 'uiSrc/slices/analytics/dbAnalysis'
12+
import { extrapolate, formatBytes, formatExtrapolation, Nullable } from 'uiSrc/utils'
1213
import { DatabaseAnalysis } from 'apiSrc/modules/database-analysis/models'
14+
1315
import styles from './styles.module.scss'
1416

1517
export interface Props {
1618
data: Nullable<DatabaseAnalysis>
1719
loading: boolean
1820
extrapolation: number
19-
onSwitchExtrapolation?: (value: boolean) => void
21+
onSwitchExtrapolation?: (value: boolean, section: SectionName) => void
2022
}
2123

2224
const ExpirationGroupsView = (props: Props) => {
@@ -90,7 +92,7 @@ const ExpirationGroupsView = (props: Props) => {
9092
checked={isExtrapolated}
9193
onChange={(e) => {
9294
setIsExtrapolated(e.target.checked)
93-
onSwitchExtrapolation?.(e.target.checked)
95+
onSwitchExtrapolation?.(e.target.checked, SectionName.MEMORY_LIKELY_TO_BE_FREED)
9496
}}
9597
data-testid="extrapolate-results"
9698
/>

redisinsight/ui/src/pages/databaseAnalysis/components/summary-per-data/SummaryPerData.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { DonutChart } from 'uiSrc/components/charts'
66
import { ChartData } from 'uiSrc/components/charts/donut-chart/DonutChart'
77
import { KeyIconSvg, MemoryIconSvg } from 'uiSrc/components/database-overview/components/icons'
88
import { GROUP_TYPES_COLORS, GroupTypesColors } from 'uiSrc/constants'
9-
import { DEFAULT_EXTRAPOLATION } from 'uiSrc/pages/databaseAnalysis'
9+
import { DEFAULT_EXTRAPOLATION, SectionName } from 'uiSrc/pages/databaseAnalysis'
1010
import { extrapolate, formatBytes, getGroupTypeDisplay, Nullable } from 'uiSrc/utils'
1111
import { getPercentage, numberWithSpaces } from 'uiSrc/utils/numbers'
1212

@@ -18,7 +18,7 @@ export interface Props {
1818
data: Nullable<DatabaseAnalysis>
1919
loading: boolean
2020
extrapolation?: number
21-
onSwitchExtrapolation?: (value: boolean) => void
21+
onSwitchExtrapolation?: (value: boolean, section: SectionName) => void
2222
}
2323

2424
const widthResponsiveSize = 1024
@@ -132,7 +132,7 @@ const SummaryPerData = ({ data, loading, extrapolation, onSwitchExtrapolation }:
132132
checked={isExtrapolated}
133133
onChange={(e) => {
134134
setIsExtrapolated(e.target.checked)
135-
onSwitchExtrapolation?.(e.target.checked)
135+
onSwitchExtrapolation?.(e.target.checked, SectionName.SUMMARY_PER_DATA)
136136
}}
137137
data-testid="extrapolate-results"
138138
/>

redisinsight/ui/src/pages/databaseAnalysis/components/top-namespace/TopNamespace.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
import React, { useEffect, useState } from 'react'
2-
import cx from 'classnames'
31
import { EuiButton, EuiSwitch, EuiTitle } from '@elastic/eui'
4-
import { Nullable } from 'uiSrc/utils'
5-
import { DEFAULT_EXTRAPOLATION, TableView } from 'uiSrc/pages/databaseAnalysis'
2+
import cx from 'classnames'
3+
import React, { useEffect, useState } from 'react'
4+
import { DEFAULT_EXTRAPOLATION, SectionName, TableView } from 'uiSrc/pages/databaseAnalysis'
65
import { TableLoader } from 'uiSrc/pages/databaseAnalysis/components'
6+
import { Nullable } from 'uiSrc/utils'
77
import { DatabaseAnalysis } from 'apiSrc/modules/database-analysis/models'
8-
98
import Table from './Table'
109
import styles from './styles.module.scss'
1110

1211
export interface Props {
1312
data: Nullable<DatabaseAnalysis>
1413
loading: boolean
1514
extrapolation: number
16-
onSwitchExtrapolation?: (value: boolean) => void
15+
onSwitchExtrapolation?: (value: boolean, section: SectionName) => void
1716
}
1817

1918
const TopNamespace = (props: Props) => {
@@ -70,7 +69,7 @@ const TopNamespace = (props: Props) => {
7069
checked={isExtrapolated}
7170
onChange={(e) => {
7271
setIsExtrapolated(e.target.checked)
73-
onSwitchExtrapolation?.(e.target.checked)
72+
onSwitchExtrapolation?.(e.target.checked, SectionName.TOP_NAMESPACES)
7473
}}
7574
data-testid="extrapolate-results"
7675
/>

redisinsight/ui/src/pages/databaseAnalysis/constants.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,9 @@ export type Content = {
1717
}
1818

1919
export const DEFAULT_EXTRAPOLATION = 1
20+
21+
export enum SectionName {
22+
SUMMARY_PER_DATA = 'SUMMARY_PER_DATA',
23+
MEMORY_LIKELY_TO_BE_FREED = 'MEMORY_LIKELY_TO_BE_FREED',
24+
TOP_NAMESPACES = 'TOP_NAMESPACES',
25+
}

0 commit comments

Comments
 (0)