トップ 最新

ただのにっき

2015-12-09(水) [長年日記]

Mackerelの通知をPushbulletにも送るようにした(2)

昨日はMackerelが検知したalertを、たんにその存在をPushbulletに通知するにとどまっていたが、手元の開発マシンで強制的にCPU利用率が高すぎるalertを発生させた場合のJSONを見ながら、いい感じのPipelineを書いた:

var src = JSON.parse(request.body);
var dst = {
   value1: "[" + src.event + "]",
   value2: null,
   value3: null
};

switch(src.event) {
   case "sample":
      dst.value2 = src.message;
      break;
   case "alert":
      dst.value1 = "[" + src.event + "] " + src.host.name + " is " + src.alert.status;
      dst.value2 = src.alert.monitorName + ": " + src.alert.metricValue;
      dst.value3 = src.alert.url;
      break;
   default:
      dst.value2 = "unknown event";
      break;
}
request.body = JSON.stringify(dst);
return request;

これで、CPU使用率が徐々にあがってwarning → critical になり、その後下がったようすがこんな感じに通知されるようになった。悪くないんじゃね?

今後は未知のeventが出たらそれに合わせて書き換えていこう。