Skip to content

Commit

Permalink
Filter metrics for internal users (#10943)
Browse files Browse the repository at this point in the history
  • Loading branch information
cpathipa authored Sep 16, 2024
1 parent 2ea71f4 commit 0290edf
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 46 deletions.
10 changes: 7 additions & 3 deletions packages/manager/src/features/Linodes/LinodeCreatev2/Actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { Box } from 'src/components/Box';
import { Button } from 'src/components/Button/Button';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';
import { useRestrictedGlobalGrantCheck } from 'src/hooks/useRestrictedGlobalGrantCheck';
import { sendApiAwarenessClickEvent } from 'src/utilities/analytics/customEventAnalytics';
import { sendLinodeCreateFormInputEvent } from 'src/utilities/analytics/formEventAnalytics';
Expand All @@ -23,6 +24,7 @@ export const Actions = () => {
const flags = useFlags();
const ldClient = useLDClient();
const { params } = useLinodeCreateQueryParams();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const [isAPIAwarenessModalOpen, setIsAPIAwarenessModalOpen] = useState(false);

Expand Down Expand Up @@ -51,10 +53,12 @@ export const Actions = () => {
if (await trigger()) {
// If validation is successful, we open the dialog.
setIsAPIAwarenessModalOpen(true);
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.OPEN_MODAL, {
variation: apicliButtonCopy,
});
}

ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.OPEN_MODAL, {
variation: apicliButtonCopy,
});
ldClient?.flush();
} else {
scrollErrorIntoView(undefined, { behavior: 'smooth' });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { ResourceLinks } from 'src/components/EmptyLandingPageResources/Resource
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';

import type { ResourcesLinks } from 'src/components/EmptyLandingPageResources/ResourcesLinksTypes';

Expand Down Expand Up @@ -42,16 +43,20 @@ export const gettingStartedGuides: ResourcesLinks['links'] = [
export const AnsibleIntegrationResources = () => {
const ldClient = useLDClient();
const flags = useFlags();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const apicliButtonCopy = flags?.testdxtoolabexperiment;

const handleClick = () => {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.INTEGRATION_ANSIBLE_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
if (!isInternalAccount) {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.INTEGRATION_ANSIBLE_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
}

ldClient?.flush();
};
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { Tabs } from 'src/components/Tabs/Tabs';
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';
import { useInProgressEvents } from 'src/queries/events/events';
import { sendApiAwarenessClickEvent } from 'src/utilities/analytics/customEventAnalytics';

Expand Down Expand Up @@ -63,6 +64,7 @@ export const ApiAwarenessModal = (props: ApiAwarenessModalProps) => {
const ldClient = useLDClient();
const history = useHistory();
const { data: events } = useInProgressEvents();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const linodeCreationEvent = events?.find(
(event) =>
Expand Down Expand Up @@ -97,9 +99,12 @@ export const ApiAwarenessModal = (props: ApiAwarenessModalProps) => {
: undefined;

if (trackingKey) {
ldClient?.track(trackingKey, {
variation: apicliButtonCopy,
});
if (!isInternalAccount) {
ldClient?.track(trackingKey, {
variation: apicliButtonCopy,
});
}

ldClient?.flush();
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { SafeTabPanel } from 'src/components/Tabs/SafeTabPanel';
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';
import { sendApiAwarenessClickEvent } from 'src/utilities/analytics/customEventAnalytics';
import { generateCurlCommand } from 'src/utilities/codesnippets/generate-cURL';

Expand All @@ -24,6 +25,7 @@ export const CurlTabPanel = ({ index, payLoad, title }: CurlTabPanelProps) => {
const flags = useFlags();
const ldClient = useLDClient();
const theme = useTheme();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();
const curlCommand = useMemo(
() => generateCurlCommand(payLoad, '/linode/instances'),
[payLoad]
Expand All @@ -36,9 +38,12 @@ export const CurlTabPanel = ({ index, payLoad, title }: CurlTabPanelProps) => {
<Link
onClick={() => {
sendApiAwarenessClickEvent('link', 'personal access token');
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
}

ldClient?.flush();
}}
to="/profile/tokens"
Expand All @@ -53,10 +58,12 @@ export const CurlTabPanel = ({ index, payLoad, title }: CurlTabPanelProps) => {
'link',
'Get Started with the Linode API'
);
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
}

ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
ldClient?.flush();
}}
to="https://www.linode.com/docs/products/tools/api/get-started/"
Expand All @@ -67,10 +74,12 @@ export const CurlTabPanel = ({ index, payLoad, title }: CurlTabPanelProps) => {
<Link
onClick={() => {
sendApiAwarenessClickEvent('link', 'Linode API Guides');
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
}

ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.CURL_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
ldClient?.flush();
}}
to="https://www.linode.com/docs/products/tools/api/guides/"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { ResourceLinks } from 'src/components/EmptyLandingPageResources/Resource
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';

import type { ResourcesLinks } from 'src/components/EmptyLandingPageResources/ResourcesLinksTypes';

Expand All @@ -27,13 +28,17 @@ export const gettingStartedGuides: ResourcesLinks['links'] = [
export const GoSDKResources = () => {
const ldClient = useLDClient();
const flags = useFlags();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const apicliButtonCopy = flags?.testdxtoolabexperiment;

const handleClick = () => {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.SDK_GO_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.SDK_GO_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
}

ldClient?.flush();
};
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { SafeTabPanel } from 'src/components/Tabs/SafeTabPanel';
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';
import { sendApiAwarenessClickEvent } from 'src/utilities/analytics/customEventAnalytics';
import { generateCLICommand } from 'src/utilities/codesnippets/generate-cli';

Expand All @@ -26,6 +27,7 @@ export const LinodeCLIPanel = ({
}: LinodeCLIPanelProps) => {
const ldClient = useLDClient();
const flags = useFlags();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();
const cliCommand = useMemo(() => generateCLICommand(payLoad), [payLoad]);
const apicliButtonCopy = flags?.testdxtoolabexperiment;

Expand All @@ -40,12 +42,14 @@ export const LinodeCLIPanel = ({
'link',
'Install and Configure the Linode CLI'
);
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.LINODE_CLI_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
if (!isInternalAccount) {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.LINODE_CLI_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
}
ldClient?.flush();
}}
to="https://www.linode.com/docs/products/tools/cli/guides/install/"
Expand All @@ -57,12 +61,14 @@ export const LinodeCLIPanel = ({
<Link
onClick={() => {
sendApiAwarenessClickEvent('link', 'Linode CLI Guides');
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.LINODE_CLI_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
if (!isInternalAccount) {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.LINODE_CLI_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
}
ldClient?.flush();
}}
to="https://www.linode.com/docs/products/tools/cli/guides/"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { ResourceLinks } from 'src/components/EmptyLandingPageResources/Resource
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';

import type { ResourcesLinks } from 'src/components/EmptyLandingPageResources/ResourcesLinksTypes';

Expand All @@ -27,13 +28,17 @@ export const gettingStartedGuides: ResourcesLinks['links'] = [
export const PythonSDKResources = () => {
const ldClient = useLDClient();
const flags = useFlags();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const apicliButtonCopy = flags?.testdxtoolabexperiment;

const handleClick = () => {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.SDK_PYTHON_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
if (!isInternalAccount) {
ldClient?.track(LD_DX_TOOLS_METRICS_KEYS.SDK_PYTHON_RESOURCE_LINKS, {
variation: apicliButtonCopy,
});
}

ldClient?.flush();
};
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { ResourceLinks } from 'src/components/EmptyLandingPageResources/Resource
import { Typography } from 'src/components/Typography';
import { LD_DX_TOOLS_METRICS_KEYS } from 'src/constants';
import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';

import type { ResourcesLinks } from 'src/components/EmptyLandingPageResources/ResourcesLinksTypes';

Expand Down Expand Up @@ -48,16 +49,20 @@ export const gettingStartedGuides: ResourcesLinks['links'] = [
export const TerraformIntegrationResources = () => {
const ldClient = useLDClient();
const flags = useFlags();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const apicliButtonCopy = flags?.testdxtoolabexperiment;

const handleClick = () => {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.INTEGRATION_TERRAFORM_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
if (!isInternalAccount) {
ldClient?.track(
LD_DX_TOOLS_METRICS_KEYS.INTEGRATION_TERRAFORM_RESOURCE_LINKS,
{
variation: apicliButtonCopy,
}
);
}

ldClient?.flush();
};
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { useLDClient } from 'launchdarkly-react-client-sdk';
import React from 'react';

import { useFlags } from 'src/hooks/useFlags';
import { useIsAkamaiAccount } from 'src/hooks/useIsAkamaiAccount';
import { sendApiAwarenessClickEvent } from 'src/utilities/analytics/customEventAnalytics';

import {
Expand All @@ -20,14 +21,15 @@ export interface CodeBlockProps {
export const CodeBlock = (props: CodeBlockProps) => {
const flags = useFlags();
const ldClient = useLDClient();
const { isAkamaiAccount: isInternalAccount } = useIsAkamaiAccount();

const { command, commandType, language, ldTrackingKey } = props;

const apicliButtonCopy = flags?.testdxtoolabexperiment;

const handleCopyIconClick = () => {
sendApiAwarenessClickEvent('Copy Icon', commandType);
if (ldTrackingKey) {
if (ldTrackingKey && !isInternalAccount) {
ldClient?.track(ldTrackingKey, {
variation: apicliButtonCopy,
});
Expand Down

0 comments on commit 0290edf

Please sign in to comment.