From 3424cbfe5f4a9d2a77e212aae17ee515b4d1aa7b Mon Sep 17 00:00:00 2001 From: Frank Kong Date: Fri, 23 Jun 2023 17:09:39 -0400 Subject: [PATCH] fix(dynatrace): update link that "View Entity in Dynatrace" redirects user to Signed-off-by: Frank Kong --- .changeset/mighty-shoes-refuse.md | 5 +++ .../Problems/ProblemsList/ProblemsList.tsx | 31 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .changeset/mighty-shoes-refuse.md diff --git a/.changeset/mighty-shoes-refuse.md b/.changeset/mighty-shoes-refuse.md new file mode 100644 index 0000000000..ec17e5e357 --- /dev/null +++ b/.changeset/mighty-shoes-refuse.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-dynatrace': patch +--- + +updated the link that the "View Entity in Dynatrace" redirects the user to. diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 2ee0dda48d..9a4ef4d9b9 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -43,6 +43,31 @@ const cardContents = ( ); }; +const dynatraceEntityPrefixes = (idPrefix: string): string => { + switch (idPrefix) { + case 'APPLICATION': + return '#uemapplications/uemappmetrics;uemapplicationId='; + + case 'SERVICE': + return '#services/serviceOverview;id='; + + case `MOBILE_APPLICATION`: + return '#mobileappoverview;appID='; + + case 'SYNTHETIC_TEST': + return 'ui/browser-monitor/'; + + case 'KUBERNETES_CLUSTER': + return 'ui/kubernetes/'; + + case 'PROCESS_GROUP_INSTANCE': + return '#processdetails;id='; + + default: + return 'ui/entity/'; + } +}; + export const ProblemsList = (props: ProblemsListProps) => { const { dynatraceEntityId } = props; const configApi = useApi(configApiRef); @@ -54,6 +79,10 @@ export const ProblemsList = (props: ProblemsListProps) => { }, [dynatraceApi, dynatraceEntityId]); const problems = value?.problems; + const deepLinkPrefix = dynatraceEntityPrefixes( + `${dynatraceEntityId.split('-')[0]}`, + ); + if (loading) { return ; } else if (error) { @@ -65,7 +94,7 @@ export const ProblemsList = (props: ProblemsListProps) => { subheader={`Last 2 hours - ${dynatraceEntityId}`} deepLink={{ title: 'View Entity in Dynatrace', - link: `${dynatraceBaseUrl}/#serviceOverview;id=${dynatraceEntityId}`, + link: `${dynatraceBaseUrl}/${deepLinkPrefix}${dynatraceEntityId}`, }} > {cardContents(problems || [], dynatraceBaseUrl)}