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
---
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:

View File

@ -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"
}
}
}

View File

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

View File

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