forked from louislam/uptime-kuma
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Grafana Oncall notification provider (louislam#2783)
* Add Grafana Oncall notification provider * Fix linter errors * Remove useless variables * Remove test message Co-authored-by: Frank Elsinga <[email protected]> * spelling consistency * Update server/notification-providers/grafana-oncall.js Co-authored-by: Frank Elsinga <[email protected]> * Update server/notification-providers/grafana-oncall.js Co-authored-by: Frank Elsinga <[email protected]> * eslint requirements Co-authored-by: Matthew Nickson <[email protected]> * Add Grafana Oncall translation * Update src/components/notifications/GrafanaOncall.vue Co-authored-by: Frank Elsinga <[email protected]> * Check empty url --------- Co-authored-by: Emmanuel Cohen <[email protected]> Co-authored-by: Frank Elsinga <[email protected]> Co-authored-by: Matthew Nickson <[email protected]> Co-authored-by: Louis Lam <[email protected]>
- Loading branch information
1 parent
8412e19
commit 9b599cc
Showing
6 changed files
with
75 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
const NotificationProvider = require("./notification-provider"); | ||
const axios = require("axios"); | ||
const { DOWN, UP } = require("../../src/util"); | ||
|
||
class GrafanaOncall extends NotificationProvider { | ||
|
||
name = "GrafanaOncall"; | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { | ||
|
||
if (!notification.GrafanaOncallURL) { | ||
throw new Error("GrafanaOncallURL cannot be empty"); | ||
} | ||
|
||
let okMsg = "Sent Successfully."; | ||
try { | ||
if (heartbeatJSON === null) { | ||
let grafanaupdata = { | ||
title: "General notification", | ||
message: msg, | ||
state: "alerting", | ||
}; | ||
await axios.post( | ||
notification.GrafanaOncallURL, | ||
grafanaupdata | ||
); | ||
return okMsg; | ||
} else if (heartbeatJSON["status"] === DOWN) { | ||
let grafanadowndata = { | ||
title: monitorJSON["name"] + " is down", | ||
message: heartbeatJSON["msg"], | ||
state: "alerting", | ||
}; | ||
await axios.post( | ||
notification.GrafanaOncallURL, | ||
grafanadowndata | ||
); | ||
return okMsg; | ||
} else if (heartbeatJSON["status"] === UP) { | ||
let grafanaupdata = { | ||
title: monitorJSON["name"] + " is up", | ||
message: heartbeatJSON["msg"], | ||
state: "ok", | ||
}; | ||
await axios.post( | ||
notification.GrafanaOncallURL, | ||
grafanaupdata | ||
); | ||
return okMsg; | ||
} | ||
} catch (error) { | ||
this.throwGeneralAxiosError(error); | ||
} | ||
|
||
} | ||
} | ||
|
||
module.exports = GrafanaOncall; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<template> | ||
<div class="mb-3"> | ||
<label for="GrafanaOncallURL" class="form-label">{{ $t("GrafanaOncallURL") }}<span style="color: red;"><sup>*</sup></span></label> | ||
<input id="GrafanaOncallURL" v-model="$parent.notification.GrafanaOncallURL" type="text" class="form-control" required> | ||
</div> | ||
</template> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters