Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,16 @@ const BrowserRightPanel = (props: Props) => {
closeRightPanels()
}

const onCloseRedisearchPanel = () => {
closePanel()
sendEventTelemetry({
event: TelemetryEvent.SEARCH_INDEX_ADD_CANCELLED,
eventData: {
databaseId: instanceId
}
})
}

const handleToggleFullScreen = () => {
dispatch(toggleBrowserFullScreen())

Expand Down Expand Up @@ -130,7 +140,7 @@ const BrowserRightPanel = (props: Props) => {
/>
)}
{isCreateIndexPanelOpen && every([!isAddKeyPanelOpen, !isBulkActionsPanelOpen], Boolean) && (
<CreateRedisearchIndex onClosePanel={closePanel} />
<CreateRedisearchIndex onClosePanel={onCloseRedisearchPanel} />
)}
</>
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,47 +1,30 @@
/* eslint-disable react/destructuring-assignment */
import { EuiButton, EuiButtonIcon, EuiIcon, EuiLink, EuiPopover, EuiText, EuiToolTip, } from '@elastic/eui'
import cx from 'classnames'
/* eslint-disable react/no-this-in-sfc */
import React, { Ref, useRef, FC, SVGProps, useState, useCallback } from 'react'
import React, { FC, Ref, SVGProps, useCallback, useRef, useState } from 'react'
import { useDispatch, useSelector } from 'react-redux'
import cx from 'classnames'
import AutoSizer from 'react-virtualized-auto-sizer'
import {
EuiButton,
EuiButtonIcon,
EuiIcon,
EuiLink,
EuiPopover,
EuiText,
EuiToolTip,
} from '@elastic/eui'

import {
changeKeyViewType,
changeSearchMode,
fetchKeys,
keysSelector,
resetKeysData,
} from 'uiSrc/slices/browser/keys'
import {
resetBrowserTree,
setBrowserKeyListDataLoaded,
} from 'uiSrc/slices/app/context'
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
import { sendEventTelemetry, TelemetryEvent, getBasedOnViewTypeEvent } from 'uiSrc/telemetry'
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
import { KeysStoreData, KeyViewType, SearchMode } from 'uiSrc/slices/interfaces/keys'
import KeysSummary from 'uiSrc/components/keys-summary'
import { localStorageService } from 'uiSrc/services'
import { BrowserStorageItem } from 'uiSrc/constants'
import { REDISEARCH_MODULES } from 'uiSrc/slices/interfaces'
import { ReactComponent as TreeViewIcon } from 'uiSrc/assets/img/icons/treeview.svg'
import { ReactComponent as BulkActionsIcon } from 'uiSrc/assets/img/icons/bulk_actions.svg'
import { ReactComponent as TreeViewIcon } from 'uiSrc/assets/img/icons/treeview.svg'
import { ReactComponent as VectorIcon } from 'uiSrc/assets/img/icons/vector.svg'
import { ReactComponent as RediSearchIcon } from 'uiSrc/assets/img/modules/RedisSearchLight.svg'
import KeysSummary from 'uiSrc/components/keys-summary'
import { BrowserStorageItem } from 'uiSrc/constants'
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
import { localStorageService } from 'uiSrc/services'
import { resetBrowserTree, setBrowserKeyListDataLoaded, } from 'uiSrc/slices/app/context'

import FilterKeyType from '../filter-key-type'
import SearchKeyList from '../search-key-list'
import { changeKeyViewType, changeSearchMode, fetchKeys, keysSelector, resetKeysData, } from 'uiSrc/slices/browser/keys'
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
import { REDISEARCH_MODULES } from 'uiSrc/slices/interfaces'
import { KeysStoreData, KeyViewType, SearchMode } from 'uiSrc/slices/interfaces/keys'
import { getBasedOnViewTypeEvent, sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
import AutoRefresh from '../auto-refresh'

import FilterKeyType from '../filter-key-type'
import RediSearchIndexesList from '../redisearch-key-list'
import SearchKeyList from '../search-key-list'

import styles from './styles.module.scss'

Expand Down Expand Up @@ -260,6 +243,17 @@ const KeysHeader = (props: Props) => {
}

const handleSwitchSearchMode = (mode: SearchMode) => {
if (searchMode !== mode) {
sendEventTelemetry({
event: TelemetryEvent.SEARCH_MODE_CHANGED,
eventData: {
databaseId: instanceId,
previous: searchMode,
current: mode
}
})
}

dispatch(changeSearchMode(mode))
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {
EuiButton,
EuiButtonEmpty,
EuiOutsideClickDetector,
EuiSuperSelect,
Expand All @@ -16,8 +15,10 @@ import {
redisearchListSelector,
fetchRedisearchListAction,
} from 'uiSrc/slices/browser/redisearch'
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
import { KeyViewType } from 'uiSrc/slices/interfaces/keys'
import { fetchKeys, keysSelector } from 'uiSrc/slices/browser/keys'
import { sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
import { bufferToString, formatLongName, Nullable } from 'uiSrc/utils'
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'

Expand All @@ -35,6 +36,7 @@ const RediSearchIndexesList = (props: Props) => {
const { viewType, searchMode } = useSelector(keysSelector)
const { selectedIndex = '' } = useSelector(redisearchSelector)
const { data: list = [], loading } = useSelector(redisearchListSelector)
const { id: instanceId } = useSelector(connectedInstanceSelector)

const [isSelectOpen, setIsSelectOpen] = useState<boolean>(false)
const [index, setIndex] = useState<Nullable<string>>(JSON.stringify(selectedIndex))
Expand Down Expand Up @@ -76,6 +78,14 @@ const RediSearchIndexesList = (props: Props) => {
if (isString(value) && value === CREATE) {
onCreateIndex(true)
setIsSelectOpen(false)

sendEventTelemetry({
event: TelemetryEvent.SEARCH_INDEX_ADD_BUTTON_CLICKED,
eventData: {
databaseId: instanceId
}
})

return
}

Expand All @@ -88,6 +98,14 @@ const RediSearchIndexesList = (props: Props) => {
'0',
viewType === KeyViewType.Browser ? SCAN_COUNT_DEFAULT : SCAN_TREE_COUNT_DEFAULT,
))

sendEventTelemetry({
event: TelemetryEvent.SEARCH_INDEX_ADD_BUTTON_CLICKED,
eventData: {
databaseId: instanceId,
totalNumberOfIndexes: list.length
}
})
}

return (
Expand Down
5 changes: 5 additions & 0 deletions redisinsight/ui/src/telemetry/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,4 +187,9 @@ export enum TelemetryEvent {
DATABASE_ANALYSIS_EXTRAPOLATION_CHANGED = 'DATABASE_ANALYSIS_EXTRAPOLATION_CHANGED',

USER_SURVEY_LINK_CLICKED = 'USER_SURVEY_LINK_CLICKED',

SEARCH_MODE_CHANGED = 'SEARCH_MODE_CHANGED',
SEARCH_INDEX_CHANGED = 'SEARCH_INDEX_CHANGED',
SEARCH_INDEX_ADD_BUTTON_CLICKED = 'SEARCH_INDEX_ADD_BUTTON_CLICKED',
SEARCH_INDEX_ADD_CANCELLED = 'SEARCH_INDEX_ADD_CANCELLED',
}