// this script was tested with AzureMonitorMetricAlert version 2.0 and should work for
// "conditionType": "MultipleResourceMultipleMetricCriteria"
process_incoming_request({ request }) {
// console is a global helper to improve debug
console.log(JSON.stringify(request.content, null, 4));
var alertColor = "warning";
var condition = request.content.data.context.condition;
var conditionFields = [];
if(request.content.data.status === "Deactivated"){ alertColor = "good"; }
else if (request.content.data.status === "Activated") {
console.log(condition.allOf);
for (const cond of condition.allOf) {
title: "Condition: " + cond.metricName,
value: cond.metricValue + " " + cond.operator + " " + cond.threshold + " ("
+ (cond.metricUnit ? cond.metricUnit + ", " : "")
+ cond.timeAggregation + ")"
+ " for more than " + condition.windowSize,
text: "Azure Alert Notification",
title: request.content.data.context.name,
pretext: request.content.data.context.description,
title_link: request.content.data.context.portalLink,
text: request.content.data.context.resourceGroupName + ": " + request.content.data.context.resourceName,
value: request.content.data.status + " @ " + request.content.data.context.timestamp
value: request.content.data.context.severity,