diff --git a/docs/widgets/services/grafana.md b/docs/widgets/services/grafana.md index bfdebb2c..14897a6e 100644 --- a/docs/widgets/services/grafana.md +++ b/docs/widgets/services/grafana.md @@ -3,7 +3,9 @@ title: Grafana description: Grafana Widget Configuration --- -Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered"]`. +Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered", "alertmanager"]`. + +`alertmanager` is for the new grafana alerts api since the api used by `alertstriggered` has been deprecated. If `alertstriggered` does not work, try `alertmanager`. ```yaml widget: diff --git a/public/locales/en/common.json b/public/locales/en/common.json index aa4ef1e5..7bf2b434 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -662,7 +662,8 @@ "dashboards": "Dashboards", "datasources": "Data Sources", "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "alertstriggered": "Alerts Triggered", + "alertmanager": "Alerts Triggered" }, "nextcloud": { "cpuload": "Cpu Load", @@ -755,7 +756,7 @@ "ping": "Ping" }, "urbackup": { - "ok" : "Ok", + "ok": "Ok", "errored": "Errors", "noRecent": "Out of Date", "totalUsed": "Used Storage" @@ -795,4 +796,4 @@ "noEventsToday": "No events for today!", "noEventsFound": "No events found" } -} +} \ No newline at end of file diff --git a/src/widgets/grafana/component.jsx b/src/widgets/grafana/component.jsx index 32d2a98e..a8ff5bfc 100755 --- a/src/widgets/grafana/component.jsx +++ b/src/widgets/grafana/component.jsx @@ -10,18 +10,20 @@ export default function Component({ service }) { const { widget } = service; const { data: statsData, error: statsError } = useWidgetAPI(widget, "stats"); const { data: alertsData, error: alertsError } = useWidgetAPI(widget, "alerts"); + const { data: alertmanagerData, error: alertmanagerError } = useWidgetAPI(widget, "alertmanager"); - if (statsError || alertsError) { + if (statsError || alertsError || alertmanagerError) { return ; } - if (!statsData || !alertsData) { + if (!statsData || !alertsData || !alertmanagerData) { return ( + ); } @@ -35,6 +37,10 @@ export default function Component({ service }) { label="grafana.alertstriggered" value={t("common.number", { value: alertsData.filter((a) => a.state === "alerting").length })} /> + ); } diff --git a/src/widgets/grafana/widget.js b/src/widgets/grafana/widget.js index af3e56ea..36656ccd 100755 --- a/src/widgets/grafana/widget.js +++ b/src/widgets/grafana/widget.js @@ -8,6 +8,9 @@ const widget = { alerts: { endpoint: "alerts", }, + alertmanager: { + endpoint: "alertmanager/grafana/api/v2/alerts" + }, stats: { endpoint: "admin/stats", validate: ["dashboards"],