Merge pull request #23069 from mattermost/MM-50363-add-telemetry-to-self-hosted-expansion

MM-52347 - Add Telemetry Event Tracking to Self Hosted Expansion
This commit is contained in:
Conor Macpherson 2023-04-27 12:01:46 -04:00 committed by GitHub
commit 79341fa76d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 4 deletions

View File

@ -13,7 +13,7 @@ import {ClientLicense} from '@mattermost/types/config';
import {Client4} from 'mattermost-redux/client'; import {Client4} from 'mattermost-redux/client';
import {getRemainingDaysFromFutureTimestamp, toTitleCase} from 'utils/utils'; import {getRemainingDaysFromFutureTimestamp, toTitleCase} from 'utils/utils';
import {FileTypes} from 'utils/constants'; import {FileTypes, TELEMETRY_CATEGORIES} from 'utils/constants';
import {getSkuDisplayName} from 'utils/subscription'; import {getSkuDisplayName} from 'utils/subscription';
import {calculateOverageUserActivated} from 'utils/overage_team'; import {calculateOverageUserActivated} from 'utils/overage_team';
import {getConfig} from 'mattermost-redux/selectors/entities/admin'; import {getConfig} from 'mattermost-redux/selectors/entities/admin';
@ -24,6 +24,7 @@ import useCanSelfHostedExpand from 'components/common/hooks/useCanSelfHostedExpa
import {getExpandSeatsLink} from 'selectors/cloud'; import {getExpandSeatsLink} from 'selectors/cloud';
import useControlSelfHostedExpansionModal from 'components/common/hooks/useControlSelfHostedExpansionModal'; import useControlSelfHostedExpansionModal from 'components/common/hooks/useControlSelfHostedExpansionModal';
import {useQuery} from 'utils/http_utils'; import {useQuery} from 'utils/http_utils';
import {trackEvent} from 'actions/telemetry_actions';
const DAYS_UNTIL_EXPIRY_WARNING_DISPLAY_THRESHOLD = 30; const DAYS_UNTIL_EXPIRY_WARNING_DISPLAY_THRESHOLD = 30;
const DAYS_UNTIL_EXPIRY_DANGER_DISPLAY_THRESHOLD = 5; const DAYS_UNTIL_EXPIRY_DANGER_DISPLAY_THRESHOLD = 5;
@ -100,6 +101,7 @@ const EnterpriseEditionLeftPanel = ({
); );
const handleClickAddSeats = () => { const handleClickAddSeats = () => {
trackEvent(TELEMETRY_CATEGORIES.SELF_HOSTED_EXPANSION, 'add_seats_clicked');
if (!isSelfHostedPurchaseEnabled || !canExpand) { if (!isSelfHostedPurchaseEnabled || !canExpand) {
window.open(expandableLink(unsanitizedLicense.Id), '_blank'); window.open(expandableLink(unsanitizedLicense.Id), '_blank');
} else { } else {

View File

@ -10,6 +10,8 @@ import PaymentFailedSvg from 'components/common/svg_images_components/payment_fa
import IconMessage from 'components/purchase_modal/icon_message'; import IconMessage from 'components/purchase_modal/icon_message';
import './error_page.scss'; import './error_page.scss';
import {trackEvent} from 'actions/telemetry_actions';
import {TELEMETRY_CATEGORIES} from 'utils/constants';
interface Props { interface Props {
canRetry: boolean; canRetry: boolean;
@ -71,9 +73,15 @@ export default function SelfHostedExpansionErrorPage(props: Props) {
icon={icon} icon={icon}
error={true} error={true}
formattedButtonText={formattedButtonText} formattedButtonText={formattedButtonText}
buttonHandler={props.tryAgain} buttonHandler={() => {
trackEvent(TELEMETRY_CATEGORIES.SELF_HOSTED_EXPANSION, 'failure_try_again_clicked');
props.tryAgain();
}}
formattedTertiaryButonText={tertiaryButtonText} formattedTertiaryButonText={tertiaryButtonText}
tertiaryButtonHandler={() => window.open(contactSupportLink, '_blank', 'noreferrer')} tertiaryButtonHandler={() => {
trackEvent(TELEMETRY_CATEGORIES.SELF_HOSTED_EXPANSION, 'failure_contact_support_clicked');
window.open(contactSupportLink, '_blank', 'noreferrer');
}}
/> />
</div> </div>
); );

View File

@ -8,9 +8,10 @@ import {useHistory} from 'react-router-dom';
import IconMessage from 'components/purchase_modal/icon_message'; import IconMessage from 'components/purchase_modal/icon_message';
import PaymentSuccessStandardSvg from 'components/common/svg_images_components/payment_success_standard_svg'; import PaymentSuccessStandardSvg from 'components/common/svg_images_components/payment_success_standard_svg';
import {ConsolePages} from 'utils/constants'; import {ConsolePages, TELEMETRY_CATEGORIES} from 'utils/constants';
import './success_page.scss'; import './success_page.scss';
import {trackEvent} from 'actions/telemetry_actions';
interface Props { interface Props {
onClose: () => void; onClose: () => void;
@ -34,6 +35,7 @@ export default function SelfHostedExpansionSuccessPage(props: Props) {
<a <a
href='#' href='#'
onClick={() => { onClick={() => {
trackEvent(TELEMETRY_CATEGORIES.SELF_HOSTED_EXPANSION, 'success_screen_closed');
history.push(ConsolePages.BILLING_HISTORY); history.push(ConsolePages.BILLING_HISTORY);
props.onClose(); props.onClose();
}} }}