diff --git a/.betterer.results b/.betterer.results
index f4b8cf76cea..36a0895fa24 100644
--- a/.betterer.results
+++ b/.betterer.results
@@ -1664,8 +1664,7 @@ exports[`better eslint`] = {
"public/app/features/alerting/unified/components/alert-groups/AlertDetails.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
[0, 0, 0, "No untranslated strings. Wrap text with ", "1"],
- [0, 0, 0, "No untranslated strings. Wrap text with ", "2"],
- [0, 0, 0, "No untranslated strings. Wrap text with ", "3"]
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "2"]
],
"public/app/features/alerting/unified/components/alert-groups/AlertGroup.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
@@ -1683,11 +1682,15 @@ exports[`better eslint`] = {
[0, 0, 0, "Do not use any type assertions.", "1"]
],
"public/app/features/alerting/unified/components/alert-groups/AlertStateFilter.tsx:5381": [
- [0, 0, 0, "No untranslated strings. Wrap text with ", "0"]
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "1"],
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "2"],
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "3"]
],
"public/app/features/alerting/unified/components/alert-groups/GroupBy.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
- [0, 0, 0, "Do not use any type assertions.", "1"]
+ [0, 0, 0, "No untranslated strings. Wrap text with ", "1"],
+ [0, 0, 0, "Do not use any type assertions.", "2"]
],
"public/app/features/alerting/unified/components/alert-groups/MatcherFilter.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
diff --git a/pkg/services/navtree/navtreeimpl/navtree.go b/pkg/services/navtree/navtreeimpl/navtree.go
index 6e0440f88e3..57962943e20 100644
--- a/pkg/services/navtree/navtreeimpl/navtree.go
+++ b/pkg/services/navtree/navtreeimpl/navtree.go
@@ -405,7 +405,7 @@ func (s *ServiceImpl) buildAlertNavLinks(c *contextmodel.ReqContext) *navtree.Na
}
if hasAccess(ac.EvalAny(ac.EvalPermission(ac.ActionAlertingInstanceRead), ac.EvalPermission(ac.ActionAlertingInstancesExternalRead))) {
- alertChildNavs = append(alertChildNavs, &navtree.NavLink{Text: "Alert groups", SubTitle: "See grouped alerts from an Alertmanager instance", Id: "groups", Url: s.cfg.AppSubURL + "/alerting/groups", Icon: "layer-group"})
+ alertChildNavs = append(alertChildNavs, &navtree.NavLink{Text: "Alert groups", SubTitle: "See grouped alerts with active notifications", Id: "groups", Url: s.cfg.AppSubURL + "/alerting/groups", Icon: "layer-group"})
}
if s.features.IsEnabled(c.Req.Context(), featuremgmt.FlagAlertingCentralAlertHistory) {
diff --git a/public/app/core/utils/navBarItem-translations.ts b/public/app/core/utils/navBarItem-translations.ts
index f9ee3dcd99f..47339ea0dab 100644
--- a/public/app/core/utils/navBarItem-translations.ts
+++ b/public/app/core/utils/navBarItem-translations.ts
@@ -75,7 +75,7 @@ export function getNavTitle(navId: string | undefined) {
case 'silences':
return t('nav.alerting-silences.title', 'Silences');
case 'groups':
- return t('nav.alerting-groups.title', 'Groups');
+ return t('nav.alerting-groups.title', 'Active notifications');
case 'alerting-admin':
return t('nav.alerting-admin.title', 'Settings');
case 'cfg':
@@ -234,7 +234,7 @@ export function getNavSubTitle(navId: string | undefined) {
case 'silences':
return t('nav.alerting-silences.subtitle', 'Stop notifications from one or more alerting rules');
case 'groups':
- return t('nav.alerting-groups.subtitle', 'See grouped alerts from an Alertmanager instance');
+ return t('nav.alerting-groups.subtitle', 'See grouped alerts with active notifications');
case 'datasources':
return t('nav.datasources.subtitle', 'Add and configure data sources');
case 'correlations':
diff --git a/public/app/features/alerting/unified/AlertGroups.test.tsx b/public/app/features/alerting/unified/AlertGroups.test.tsx
index d82780dc266..79aa3dc39b8 100644
--- a/public/app/features/alerting/unified/AlertGroups.test.tsx
+++ b/public/app/features/alerting/unified/AlertGroups.test.tsx
@@ -50,7 +50,7 @@ const ui = {
row: byTestId('row'),
collapseToggle: byTestId(selectors.components.AlertRules.toggle),
silenceButton: byText('Silence'),
- sourceButton: byText('See source'),
+ sourceButton: byText('See alert rule'),
matcherInput: byTestId('search-query-input'),
groupByContainer: byTestId('group-by-container'),
groupByInput: byRole('combobox', { name: /group by label keys/i }),
diff --git a/public/app/features/alerting/unified/components/alert-groups/AlertDetails.tsx b/public/app/features/alerting/unified/components/alert-groups/AlertDetails.tsx
index 30757d16fa0..e02a7cfb03c 100644
--- a/public/app/features/alerting/unified/components/alert-groups/AlertDetails.tsx
+++ b/public/app/features/alerting/unified/components/alert-groups/AlertDetails.tsx
@@ -59,7 +59,7 @@ export const AlertDetails = ({ alert, alertManagerSourceName }: AmNotificationsA
)}
{isSeeSourceButtonEnabled && alert.generatorURL && (
- See source
+ {isGrafanaSource ? 'See alert rule' : 'See source'}
)}
diff --git a/public/app/features/alerting/unified/components/alert-groups/AlertGroupAlertsTable.tsx b/public/app/features/alerting/unified/components/alert-groups/AlertGroupAlertsTable.tsx
index 93404167dae..75c371441b1 100644
--- a/public/app/features/alerting/unified/components/alert-groups/AlertGroupAlertsTable.tsx
+++ b/public/app/features/alerting/unified/components/alert-groups/AlertGroupAlertsTable.tsx
@@ -27,7 +27,7 @@ export const AlertGroupAlertsTable = ({ alerts, alertManagerSourceName }: Props)
(): AlertGroupAlertsTableColumnProps[] => [
{
id: 'state',
- label: 'State',
+ label: 'Notification state',
// eslint-disable-next-line react/display-name
renderCell: ({ data: alert }) => (
<>
@@ -45,7 +45,7 @@ export const AlertGroupAlertsTable = ({ alerts, alertManagerSourceName }: Props)
},
{
id: 'labels',
- label: 'Labels',
+ label: 'Instance labels',
// eslint-disable-next-line react/display-name
renderCell: ({ data: { labels } }) => ,
size: 1,
diff --git a/public/app/features/alerting/unified/components/alert-groups/AlertStateFilter.tsx b/public/app/features/alerting/unified/components/alert-groups/AlertStateFilter.tsx
index 68bf6860bae..6363fe4d4d1 100644
--- a/public/app/features/alerting/unified/components/alert-groups/AlertStateFilter.tsx
+++ b/public/app/features/alerting/unified/components/alert-groups/AlertStateFilter.tsx
@@ -1,5 +1,5 @@
import { SelectableValue } from '@grafana/data';
-import { RadioButtonGroup, Label } from '@grafana/ui';
+import { RadioButtonGroup, Label, Tooltip, Icon } from '@grafana/ui';
import { AlertState } from 'app/plugins/datasource/alertmanager/types';
interface Props {
@@ -17,7 +17,25 @@ export const AlertStateFilter = ({ onStateFilterChange, stateFilter }: Props) =>
return (
-
+
+ }
+ >
+
+
+
);
diff --git a/public/app/features/alerting/unified/components/alert-groups/GroupBy.tsx b/public/app/features/alerting/unified/components/alert-groups/GroupBy.tsx
index 130f7018b94..abec11ff9f1 100644
--- a/public/app/features/alerting/unified/components/alert-groups/GroupBy.tsx
+++ b/public/app/features/alerting/unified/components/alert-groups/GroupBy.tsx
@@ -1,7 +1,7 @@
import { uniq } from 'lodash';
import { SelectableValue } from '@grafana/data';
-import { Icon, Label, MultiSelect } from '@grafana/ui';
+import { Icon, Label, MultiSelect, Tooltip } from '@grafana/ui';
import { AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
import { isPrivateLabelKey } from '../../utils/labels';
@@ -22,7 +22,19 @@ export const GroupBy = ({ groups, groupBy, onGroupingChange }: Props) => {
return (
-
+
+ }
+ >
+
+
+