概要
入門監視やWebサービスを支えるモニタリングにて、URL外形監視からモニタリングするという話がありました。
URL外形監視をやるに辺り、モニタリングサービス(ex. StatusCake, Mackerel)で行えますが、今回はお手軽にGoogleAppsScript
(以下GAS)でやってみようと思います。
実装
実際に書いてみたコードは下記になります。
コードは単純にステータスコードが200以外なら、異常と捉えてSlackに通知する実装になります。
単純に問題を検知するなら、これくらいでも良いかなと思います。
あとはこれをスケジュール実行することで、定期的に状態をチェックすることができます。
また、このエンドポイントをページではなく、healthエンドポイントにすれば、定期的にシステム全体の監視もできると思います。
※入門監視7章で紹介されています
var END_POINT = "URL";
var SLACK_INCOMING_URL = 'ウェブフックURL';
function main() {
var message = '';
var result = UrlFetchApp.fetch(END_POINT, { muteHttpExceptions:true }).getResponseCode();
if (result !== 200) {
message = 'ページにアクセスできません。';
sendSlack(message);
}
}
function sendSlack(message) {
var jsonData = {
text: message,
}
payload = JSON.stringify(jsonData);
options = {
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
UrlFetchApp.fetch(SLACK_INCOMING_URL, options)
}
まとめ
GASでステータスコードを見るというアプローチで、外形監視をやってみました。
単純な方法に見えますが、あると便利だなという感覚でした。
以上、最後まで見ていただきありがとうございました。