Added option for grafana alertmanager

This commit is contained in:
myztillx 2023-12-19 11:11:06 -05:00
parent e0886ef715
commit ee2eb7abe1
4 changed files with 18 additions and 6 deletions

View File

@ -3,7 +3,9 @@ title: Grafana
description: Grafana Widget Configuration 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 ```yaml
widget: widget:

View File

@ -662,7 +662,8 @@
"dashboards": "Dashboards", "dashboards": "Dashboards",
"datasources": "Data Sources", "datasources": "Data Sources",
"totalalerts": "Total Alerts", "totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alerts Triggered",
"alertmanager": "Alerts Triggered"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
@ -755,7 +756,7 @@
"ping": "Ping" "ping": "Ping"
}, },
"urbackup": { "urbackup": {
"ok" : "Ok", "ok": "Ok",
"errored": "Errors", "errored": "Errors",
"noRecent": "Out of Date", "noRecent": "Out of Date",
"totalUsed": "Used Storage" "totalUsed": "Used Storage"
@ -795,4 +796,4 @@
"noEventsToday": "No events for today!", "noEventsToday": "No events for today!",
"noEventsFound": "No events found" "noEventsFound": "No events found"
} }
} }

View File

@ -10,18 +10,20 @@ export default function Component({ service }) {
const { widget } = service; const { widget } = service;
const { data: statsData, error: statsError } = useWidgetAPI(widget, "stats"); const { data: statsData, error: statsError } = useWidgetAPI(widget, "stats");
const { data: alertsData, error: alertsError } = useWidgetAPI(widget, "alerts"); const { data: alertsData, error: alertsError } = useWidgetAPI(widget, "alerts");
const { data: alertmanagerData, error: alertmanagerError } = useWidgetAPI(widget, "alertmanager");
if (statsError || alertsError) { if (statsError || alertsError || alertmanagerError) {
return <Container service={service} error={statsError ?? alertsError} />; return <Container service={service} error={statsError ?? alertsError} />;
} }
if (!statsData || !alertsData) { if (!statsData || !alertsData || !alertmanagerData) {
return ( return (
<Container service={service}> <Container service={service}>
<Block label="grafana.dashboards" /> <Block label="grafana.dashboards" />
<Block label="grafana.datasources" /> <Block label="grafana.datasources" />
<Block label="grafana.totalalerts" /> <Block label="grafana.totalalerts" />
<Block label="grafana.alertstriggered" /> <Block label="grafana.alertstriggered" />
<Block label="grafana.alertmanager" />
</Container> </Container>
); );
} }
@ -35,6 +37,10 @@ export default function Component({ service }) {
label="grafana.alertstriggered" label="grafana.alertstriggered"
value={t("common.number", { value: alertsData.filter((a) => a.state === "alerting").length })} value={t("common.number", { value: alertsData.filter((a) => a.state === "alerting").length })}
/> />
<Block
label="grafana.alertmanager"
value={t("common.number", { value: alertmanagerData.length })}
/>
</Container> </Container>
); );
} }

View File

@ -8,6 +8,9 @@ const widget = {
alerts: { alerts: {
endpoint: "alerts", endpoint: "alerts",
}, },
alertmanager: {
endpoint: "alertmanager/grafana/api/v2/alerts"
},
stats: { stats: {
endpoint: "admin/stats", endpoint: "admin/stats",
validate: ["dashboards"], validate: ["dashboards"],