Skip to content

Commit 2bd5c98

Browse files
feature: add dev-monitoring redirects to admin console pages
1 parent 50e7e77 commit 2bd5c98

21 files changed

Lines changed: 209 additions & 194 deletions

web/console-extensions.json

Lines changed: 48 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,6 @@
9999
"insertAfter": "dashboards-virt"
100100
}
101101
},
102-
{
103-
"type": "console.tab",
104-
"properties": {
105-
"contextId": "dev-console-observe",
106-
"name": "%plugin__monitoring-plugin~Dashboards%",
107-
"href": "",
108-
"component": {
109-
"$codeRef": "LegacyDashboardsPage.MpCmoLegacyDashboardsPage"
110-
}
111-
}
112-
},
113102
{
114103
"type": "console.redux-reducer",
115104
"properties": {
@@ -276,5 +265,53 @@
276265
"path": ["/virt-monitoring/alerts/:ruleID"],
277266
"component": { "$codeRef": "AlertsDetailsPage.MpCmoAlertsDetailsPage" }
278267
}
268+
},
269+
{
270+
"type": "console.page/route",
271+
"properties": {
272+
"exact": false,
273+
"path": "/dev-monitoring/ns/:ns/alerts/:ruleID",
274+
"component": { "$codeRef": "DevRedirects.AlertRedirect" }
275+
}
276+
},
277+
{
278+
"type": "console.page/route",
279+
"properties": {
280+
"exact": false,
281+
"path": "/dev-monitoring/ns/:ns/rules/:id",
282+
"component": { "$codeRef": "DevRedirects.RulesRedirect" }
283+
}
284+
},
285+
{
286+
"type": "console.page/route",
287+
"properties": {
288+
"exact": false,
289+
"path": "/dev-monitoring/ns/:ns/silences/:id",
290+
"component": { "$codeRef": "DevRedirects.SilenceRedirect" }
291+
}
292+
},
293+
{
294+
"type": "console.page/route",
295+
"properties": {
296+
"exact": false,
297+
"path": "/dev-monitoring/ns/:ns/silences/:id/edit",
298+
"component": { "$codeRef": "DevRedirects.SilenceEditRedirect" }
299+
}
300+
},
301+
{
302+
"type": "console.page/route",
303+
"properties": {
304+
"exact": false,
305+
"path": "/dev-monitoring/ns/:ns/silences/~new",
306+
"component": { "$codeRef": "DevRedirects.SilenceNewRedirect" }
307+
}
308+
},
309+
{
310+
"type": "console.page/route",
311+
"properties": {
312+
"exact": false,
313+
"path": "/dev-monitoring/ns/:ns/metrics",
314+
"component": { "$codeRef": "DevRedirects.MetricsRedirect" }
315+
}
279316
}
280317
]

web/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@
187187
"MonitoringReducer": "./store/reducers",
188188
"IncidentsPage": "./components/Incidents/IncidentsPage",
189189
"TargetsPage": "./components/targets-page",
190-
"PrometheusRedirectPage": "./components/prometheus-redirect-page",
190+
"PrometheusRedirectPage": "./components/redirects/prometheus-redirect-page",
191+
"DevRedirects": "./components/redirects/dev-redirects",
191192
"MonitoringContext": "./contexts/MonitoringContext"
192193
},
193194
"dependencies": {

web/src/components/Incidents/IncidentsDetailsRowTable.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interface IncidentsDetailsRowTableProps {
1717
}
1818

1919
const IncidentsDetailsRowTable = ({ alerts }: IncidentsDetailsRowTableProps) => {
20-
const [namespace, setNamespace] = useActiveNamespace();
20+
const [, setNamespace] = useActiveNamespace();
2121
const { perspective } = usePerspective();
2222
const { t } = useTranslation(process.env.I18N_NAMESPACE);
2323

@@ -34,7 +34,7 @@ const IncidentsDetailsRowTable = ({ alerts }: IncidentsDetailsRowTableProps) =>
3434
<Td dataLabel="expanded-details-alertname">
3535
<ResourceIcon kind={RuleResource.kind} />
3636
<Link
37-
to={getRuleUrl(perspective, alertDetails?.rule, namespace)}
37+
to={getRuleUrl(perspective, alertDetails?.rule)}
3838
onClick={() => setNamespace(ALL_NAMESPACES_KEY)}
3939
>
4040
{alertDetails.alertname}
@@ -63,7 +63,7 @@ const IncidentsDetailsRowTable = ({ alerts }: IncidentsDetailsRowTableProps) =>
6363
}
6464

6565
return null;
66-
}, [alerts, perspective, namespace, setNamespace]);
66+
}, [alerts, perspective, setNamespace]);
6767

6868
return (
6969
<Table borders={false} variant="compact" data-test={DataTestIDs.IncidentsDetailsTable.Table}>

web/src/components/alerting/AlertDetail/SilencedByTable.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import type { FC, MouseEvent } from 'react';
22
import { useState, useMemo } from 'react';
3-
import {
4-
ResourceIcon,
5-
Silence,
6-
SilenceStates,
7-
useActiveNamespace,
8-
} from '@openshift-console/dynamic-plugin-sdk';
3+
import { ResourceIcon, Silence, SilenceStates } from '@openshift-console/dynamic-plugin-sdk';
94
import { useTranslation } from 'react-i18next';
105
import { useNavigate } from 'react-router-dom-v5-compat';
116
import {
@@ -30,13 +25,12 @@ import { t_global_spacer_xs } from '@patternfly/react-tokens';
3025
export const SilencedByList: FC<{ silences: Silence[] }> = ({ silences }) => {
3126
const { t } = useTranslation(process.env.I18N_NAMESPACE);
3227
const { perspective } = usePerspective();
33-
const [namespace] = useActiveNamespace();
3428
const navigate = useNavigate();
3529
const [isModalOpen, , setModalOpen, setModalClosed] = useBoolean(false);
3630
const [silence, setSilence] = useState<Silence | null>(null);
3731

3832
const editSilence = (event: MouseEvent, rowIndex: number) => {
39-
navigate(getEditSilenceAlertUrl(perspective, silences.at(rowIndex)?.id, namespace));
33+
navigate(getEditSilenceAlertUrl(perspective, silences.at(rowIndex)?.id));
4034
};
4135

4236
const rowActions = (silence: Silence): IAction[] => {
@@ -79,7 +73,7 @@ export const SilencedByList: FC<{ silences: Silence[] }> = ({ silences }) => {
7973
<Link
8074
data-test-id="silence-resource-link"
8175
title={silence.id}
82-
to={getSilenceAlertUrl(perspective, silence.id, namespace)}
76+
to={getSilenceAlertUrl(perspective, silence.id)}
8377
>
8478
{silence.name}
8579
</Link>

web/src/components/alerting/AlertList/AggregateAlertTableRow.tsx

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import {
2-
Alert,
3-
ResourceIcon,
4-
TableColumn,
5-
useActiveNamespace,
6-
} from '@openshift-console/dynamic-plugin-sdk';
1+
import { Alert, ResourceIcon, TableColumn } from '@openshift-console/dynamic-plugin-sdk';
72
import { ExpandableRowContent, Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table';
83
import type { FC } from 'react';
94
import { useState, useMemo } from 'react';
@@ -33,7 +28,6 @@ const AggregateAlertTableRow: AggregateAlertTableRowProps = ({
3328
const { perspective } = usePerspective();
3429
const title = aggregatedAlert.name;
3530
const isACMPerspective = perspective === 'acm';
36-
const [namespace] = useActiveNamespace();
3731

3832
const filteredAlerts = useMemo(
3933
() => filterAlerts(aggregatedAlert.alerts, selectedFilters),
@@ -99,11 +93,7 @@ const AggregateAlertTableRow: AggregateAlertTableRowProps = ({
9993
</FlexItem>
10094
<FlexItem>
10195
<Link
102-
to={getRuleUrl(
103-
perspective,
104-
firstAlert?.rule,
105-
firstAlert?.labels?.namespace || namespace,
106-
)}
96+
to={getRuleUrl(perspective, firstAlert?.rule)}
10797
data-test-id="alert-resource-link"
10898
data-test={DataTestIDs.AlertingRuleResourceLink}
10999
>

web/src/components/alerting/AlertList/AlertTableRow.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { DropdownItem, Flex, FlexItem } from '@patternfly/react-core';
2121
import KebabDropdown from '../../../components/kebab-dropdown';
2222
import type { FC } from 'react';
2323
import { useTranslation } from 'react-i18next';
24-
import { useNavigate, useParams } from 'react-router-dom-v5-compat';
24+
import { useNavigate } from 'react-router-dom-v5-compat';
2525
import { AlertResource, alertState } from '../../../components/utils';
2626
import {
2727
getAlertUrl,
@@ -35,9 +35,6 @@ const AlertTableRow: FC<{ alert: Alert }> = ({ alert }) => {
3535
const { t } = useTranslation(process.env.I18N_NAMESPACE);
3636
const { perspective } = usePerspective();
3737
const navigate = useNavigate();
38-
const params = useParams<{ ns: string }>();
39-
40-
const namespace = params.ns;
4138

4239
const state = alertState(alert);
4340

@@ -49,7 +46,7 @@ const AlertTableRow: FC<{ alert: Alert }> = ({ alert }) => {
4946
dropdownItems.unshift(
5047
<DropdownItem
5148
key="silence-alert"
52-
onClick={() => navigate(getNewSilenceAlertUrl(perspective, alert, namespace))}
49+
onClick={() => navigate(getNewSilenceAlertUrl(perspective, alert))}
5350
data-test={DataTestIDs.SilenceAlertDropdownItem}
5451
>
5552
{t('Silence alert')}
@@ -86,12 +83,7 @@ const AlertTableRow: FC<{ alert: Alert }> = ({ alert }) => {
8683
</FlexItem>
8784
<FlexItem>
8885
<Link
89-
to={getAlertUrl(
90-
perspective,
91-
alert,
92-
alert?.rule?.id,
93-
alert?.labels?.namespace || namespace,
94-
)}
86+
to={getAlertUrl(perspective, alert, alert?.rule?.id)}
9587
data-test-id="alert-resource-link"
9688
data-test={DataTestIDs.AlertResourceLink}
9789
>

web/src/components/alerting/AlertRulesDetailsPage.tsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,10 @@ const PrometheusTemplate = ({ text }) => (
8383

8484
type ActiveAlertsProps = {
8585
alerts: PrometheusAlert[];
86-
namespace: string;
8786
ruleID: string;
8887
};
8988

90-
export const ActiveAlerts: FC<ActiveAlertsProps> = ({ alerts, namespace, ruleID }) => {
89+
export const ActiveAlerts: FC<ActiveAlertsProps> = ({ alerts, ruleID }) => {
9190
const { t } = useTranslation(process.env.I18N_NAMESPACE);
9291
const { perspective } = usePerspective();
9392
const navigate = useNavigate();
@@ -110,7 +109,7 @@ export const ActiveAlerts: FC<ActiveAlertsProps> = ({ alerts, namespace, ruleID
110109
<Td>
111110
<Link
112111
data-test={DataTestIDs.AlertResourceLink}
113-
to={getAlertUrl(perspective, a, ruleID, namespace)}
112+
to={getAlertUrl(perspective, a, ruleID)}
114113
>
115114
{alertDescription(a)}
116115
</Link>
@@ -187,10 +186,7 @@ const AlertRulesDetailsPage_: FC = () => {
187186
<PageBreadcrumb hasBodyWrapper={false}>
188187
<Breadcrumb>
189188
<BreadcrumbItem>
190-
<Link
191-
to={getAlertRulesUrl(perspective, namespace)}
192-
data-test={DataTestIDs.Breadcrumb}
193-
>
189+
<Link to={getAlertRulesUrl(perspective)} data-test={DataTestIDs.Breadcrumb}>
194190
{t('Alerting rules')}
195191
</Link>
196192
</BreadcrumbItem>
@@ -316,7 +312,6 @@ const AlertRulesDetailsPage_: FC = () => {
316312
to={getQueryBrowserUrl({
317313
perspective: perspective,
318314
query: rule?.query,
319-
namespace: namespace,
320315
})}
321316
>
322317
<CodeBlock>
@@ -372,7 +367,7 @@ const AlertRulesDetailsPage_: FC = () => {
372367
{_.isEmpty(rule?.alerts) ? (
373368
<div>{t('None found')}</div>
374369
) : (
375-
<ActiveAlerts alerts={rule.alerts} ruleID={rule?.id} namespace={namespace} />
370+
<ActiveAlerts alerts={rule.alerts} ruleID={rule?.id} />
376371
)}
377372
</PageSection>
378373
</PageGroup>

web/src/components/alerting/AlertRulesPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ const RuleTableRow: FC<RowProps<Rule>> = ({ obj }) => {
9797
</FlexItem>
9898
<FlexItem>
9999
<Link
100-
to={getRuleUrl(perspective, obj, obj.labels.namespace)}
100+
to={getRuleUrl(perspective, obj)}
101101
data-test={DataTestIDs.AlertingRuleResourceLink}
102102
>
103103
<Truncate content={obj.name} />

web/src/components/alerting/AlertUtils.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ export const Graph: FC<GraphProps> = ({
255255

256256
const GraphLink = () =>
257257
query && perspective !== 'acm' ? (
258-
<Link aria-label={t('Inspect')} to={getQueryBrowserUrl({ perspective, query, namespace })}>
258+
<Link aria-label={t('Inspect')} to={getQueryBrowserUrl({ perspective, query })}>
259259
{t('Inspect')}
260260
</Link>
261261
) : null;

web/src/components/alerting/AlertsDetailsPage.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ const AlertsDetailsPage_: FC = () => {
159159
<PageBreadcrumb hasBodyWrapper={false}>
160160
<Breadcrumb>
161161
<BreadcrumbItem>
162-
<Link to={getAlertsUrl(perspective, namespace)} data-test={DataTestIDs.Breadcrumb}>
162+
<Link to={getAlertsUrl(perspective)} data-test={DataTestIDs.Breadcrumb}>
163163
{t('Alerts')}
164164
</Link>
165165
</BreadcrumbItem>
@@ -193,7 +193,7 @@ const AlertsDetailsPage_: FC = () => {
193193
{state !== AlertStates.Silenced && (
194194
<SplitItem>
195195
<Button
196-
onClick={() => navigate(getNewSilenceAlertUrl(perspective, alert, namespace))}
196+
onClick={() => navigate(getNewSilenceAlertUrl(perspective, alert))}
197197
variant="primary"
198198
data-test={DataTestIDs.SilenceButton}
199199
>
@@ -370,7 +370,7 @@ const AlertsDetailsPage_: FC = () => {
370370
</FlexItem>
371371
<FlexItem>
372372
<Link
373-
to={getRuleUrl(perspective, rule, namespace)}
373+
to={getRuleUrl(perspective, rule)}
374374
data-test={DataTestIDs.AlertingRuleResourceLink}
375375
>
376376
{_.get(rule, 'name')}
@@ -383,7 +383,7 @@ const AlertsDetailsPage_: FC = () => {
383383
</GridItem>
384384
</Grid>
385385
</PageSection>
386-
{silences.loaded && !_.isEmpty(alert?.silencedBy) && (
386+
{silences?.loaded && !_.isEmpty(alert?.silencedBy) && (
387387
<>
388388
<Divider />
389389
<PageSection hasBodyWrapper={false}>

0 commit comments

Comments
 (0)