From f27fd7838e99fe8e9ed8c78736c4607a6eb21ccd Mon Sep 17 00:00:00 2001 From: Jordan Date: Wed, 29 Jan 2025 15:25:32 +0200 Subject: [PATCH 1/5] added telemetry collection condition based on render condition --- .../components/misconfiguration_insight.tsx | 24 ++++++++++--------- .../components/vulnerabilities_insight.tsx | 23 ++++++++++-------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx index 74374fe23c6bf..78ff8f742fbd9 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx @@ -6,7 +6,7 @@ */ import React, { useEffect, useMemo } from 'react'; -import { EuiFlexItem, type EuiFlexGroupProps, useEuiTheme } from '@elastic/eui'; +import { type EuiFlexGroupProps, EuiFlexItem, useEuiTheme } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { css } from '@emotion/react'; import { useMisconfigurationPreview } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_preview'; @@ -64,21 +64,23 @@ export const MisconfigurationsInsight: React.FC = pageSize: 1, }); - useEffect(() => { - uiMetricService.trackUiMetric( - METRIC_TYPE.COUNT, - `${MISCONFIGURATION_INSIGHT}-${telemetrySuffix}` - ); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - const passedFindings = data?.count.passed || 0; const failedFindings = data?.count.failed || 0; const totalFindings = useMemo( () => passedFindings + failedFindings, [passedFindings, failedFindings] ); - const hasMisconfigurationFindings = totalFindings > 0; + const shouldRender = totalFindings > 0; // this component only renders if there are findings + + useEffect(() => { + if (shouldRender) { + uiMetricService.trackUiMetric( + METRIC_TYPE.COUNT, + `${MISCONFIGURATION_INSIGHT}-${telemetrySuffix}` + ); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [shouldRender]); const misconfigurationsStats = useMemo( () => getFindingsStats(passedFindings, failedFindings), @@ -107,7 +109,7 @@ export const MisconfigurationsInsight: React.FC = [totalFindings, fieldName, name, scopeId, isPreview, dataTestSubj, euiTheme.size] ); - if (!hasMisconfigurationFindings) return null; + if (!shouldRender) return null; return ( diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx index 748deea7105ef..b6c39a81a0ad3 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx @@ -61,21 +61,14 @@ export const VulnerabilitiesInsight: React.FC = ({ pageSize: 1, }); - useEffect(() => { - uiMetricService.trackUiMetric( - METRIC_TYPE.COUNT, - `${VULNERABILITIES_INSIGHT}-${telemetrySuffix}` - ); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {}; const totalVulnerabilities = useMemo( () => CRITICAL + HIGH + MEDIUM + LOW + NONE, [CRITICAL, HIGH, MEDIUM, LOW, NONE] ); - const hasVulnerabilitiesFindings = useMemo( + // this component only renders if there are findings + const shouldRender = useMemo( () => hasVulnerabilitiesData({ critical: CRITICAL, @@ -87,6 +80,16 @@ export const VulnerabilitiesInsight: React.FC = ({ [CRITICAL, HIGH, MEDIUM, LOW, NONE] ); + useEffect(() => { + if (shouldRender) { + uiMetricService.trackUiMetric( + METRIC_TYPE.COUNT, + `${VULNERABILITIES_INSIGHT}-${telemetrySuffix}` + ); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [shouldRender]); + const vulnerabilitiesStats = useMemo( () => getVulnerabilityStats( @@ -124,7 +127,7 @@ export const VulnerabilitiesInsight: React.FC = ({ [totalVulnerabilities, hostName, scopeId, isPreview, dataTestSubj, euiTheme.size] ); - if (!hasVulnerabilitiesFindings) return null; + if (!shouldRender) return null; return ( From e46bdd0800500eefe5eaa44ccc26e13f979bf5bd Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:51:42 +0000 Subject: [PATCH 2/5] [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' --- .../components/vulnerabilities_insight.tsx | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx index 6a195a57db516..dbc9c9fbdeb9d 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx @@ -62,24 +62,24 @@ export const VulnerabilitiesInsight: React.FC = ({ pageSize: 1, }); - const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {}; - const totalVulnerabilities = useMemo( - () => CRITICAL + HIGH + MEDIUM + LOW + NONE, - [CRITICAL, HIGH, MEDIUM, LOW, NONE] - ); + const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {}; + const totalVulnerabilities = useMemo( + () => CRITICAL + HIGH + MEDIUM + LOW + NONE, + [CRITICAL, HIGH, MEDIUM, LOW, NONE] + ); - // this component only renders if there are findings - const shouldRender = useMemo( - () => - hasVulnerabilitiesData({ - critical: CRITICAL, - high: HIGH, - medium: MEDIUM, - low: LOW, - none: NONE, - }), - [CRITICAL, HIGH, MEDIUM, LOW, NONE] - ); + // this component only renders if there are findings + const shouldRender = useMemo( + () => + hasVulnerabilitiesData({ + critical: CRITICAL, + high: HIGH, + medium: MEDIUM, + low: LOW, + none: NONE, + }), + [CRITICAL, HIGH, MEDIUM, LOW, NONE] + ); useEffect(() => { if (shouldRender && telemetryKey) { @@ -87,7 +87,6 @@ export const VulnerabilitiesInsight: React.FC = ({ } }, [telemetryKey, renderingId]); - const vulnerabilitiesStats = useMemo( () => getVulnerabilityStats( From 6ad1171d1fb6d03fd8f5610e7479a2e30d0014cd Mon Sep 17 00:00:00 2001 From: Jordan Date: Fri, 31 Jan 2025 23:56:19 +0200 Subject: [PATCH 3/5] lint --- .../components/misconfiguration_insight.tsx | 2 +- .../components/vulnerabilities_insight.tsx | 37 +++++++++---------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx index ab4c48e78435c..739686565acc0 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx @@ -77,7 +77,7 @@ export const MisconfigurationsInsight: React.FC = if (shouldRender && telemetryKey) { uiMetricService.trackUiMetric(METRIC_TYPE.COUNT, telemetryKey); } - }, [telemetryKey, renderingId]); + }, [shouldRender, telemetryKey, renderingId]); const misconfigurationsStats = useMemo( () => getFindingsStats(passedFindings, failedFindings), diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx index 6a195a57db516..1e7d27ae70d58 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/vulnerabilities_insight.tsx @@ -62,31 +62,30 @@ export const VulnerabilitiesInsight: React.FC = ({ pageSize: 1, }); - const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {}; - const totalVulnerabilities = useMemo( - () => CRITICAL + HIGH + MEDIUM + LOW + NONE, - [CRITICAL, HIGH, MEDIUM, LOW, NONE] - ); + const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {}; + const totalVulnerabilities = useMemo( + () => CRITICAL + HIGH + MEDIUM + LOW + NONE, + [CRITICAL, HIGH, MEDIUM, LOW, NONE] + ); - // this component only renders if there are findings - const shouldRender = useMemo( - () => - hasVulnerabilitiesData({ - critical: CRITICAL, - high: HIGH, - medium: MEDIUM, - low: LOW, - none: NONE, - }), - [CRITICAL, HIGH, MEDIUM, LOW, NONE] - ); + // this component only renders if there are findings + const shouldRender = useMemo( + () => + hasVulnerabilitiesData({ + critical: CRITICAL, + high: HIGH, + medium: MEDIUM, + low: LOW, + none: NONE, + }), + [CRITICAL, HIGH, MEDIUM, LOW, NONE] + ); useEffect(() => { if (shouldRender && telemetryKey) { uiMetricService.trackUiMetric(METRIC_TYPE.COUNT, telemetryKey); } - }, [telemetryKey, renderingId]); - + }, [shouldRender, telemetryKey, renderingId]); const vulnerabilitiesStats = useMemo( () => From b9729744711d0361c15b5946cbfcfa8e2a5747ab Mon Sep 17 00:00:00 2001 From: Jordan Date: Sun, 2 Feb 2025 14:04:34 +0200 Subject: [PATCH 4/5] added version to naming so it will be easier to track after fix telemetry --- .../kbn-cloud-security-posture/common/utils/ui_metrics.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/platform/packages/shared/kbn-cloud-security-posture/common/utils/ui_metrics.ts b/x-pack/platform/packages/shared/kbn-cloud-security-posture/common/utils/ui_metrics.ts index 23f0144729986..89c8b219f4789 100644 --- a/x-pack/platform/packages/shared/kbn-cloud-security-posture/common/utils/ui_metrics.ts +++ b/x-pack/platform/packages/shared/kbn-cloud-security-posture/common/utils/ui_metrics.ts @@ -10,8 +10,8 @@ import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; export const APP_NAME = 'cloud-security'; -export const MISCONFIGURATION_INSIGHT = 'misconfiguration-insight' as const; -export const VULNERABILITIES_INSIGHT = 'vulnerabilities-insight' as const; +export const MISCONFIGURATION_INSIGHT = 'misconfiguration-insight-v2' as const; +export const VULNERABILITIES_INSIGHT = 'vulnerabilities-insight-v2' as const; export const MISCONFIGURATION_INSIGHT_HOST_DETAILS = `${MISCONFIGURATION_INSIGHT}-host-details` as const; export const MISCONFIGURATION_INSIGHT_USER_DETAILS = From 12eb8de9078e76ec0db45b9575a079e8cabf78ac Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 11 Feb 2025 10:58:01 +0000 Subject: [PATCH 5/5] [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' --- .../shared/components/misconfiguration_insight.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx index e68e04f394b80..9aec2f44e6fa9 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/document_details/shared/components/misconfiguration_insight.tsx @@ -83,9 +83,9 @@ export const MisconfigurationsInsight: React.FC = pageSize: 1, }); - const isNewNavigationEnabled = useIsExperimentalFeatureEnabled( - 'newExpandableFlyoutNavigationEnabled' - ); + const isNewNavigationEnabled = useIsExperimentalFeatureEnabled( + 'newExpandableFlyoutNavigationEnabled' + ); const passedFindings = data?.count.passed || 0; const failedFindings = data?.count.failed || 0;