Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

GoogleAppsScriptでURL外形監視する

More than 1 year has passed since last update.

概要

入門監視や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でステータスコードを見るというアプローチで、外形監視をやってみました。
単純な方法に見えますが、あると便利だなという感覚でした。

以上、最後まで見ていただきありがとうございました。

juve_534
駆け出しから5年ほど保守ばかりやっていたPHPer٩( 'ω' )و 今は新規開発でLaravelやAWSと戯れている。 マイノリティになってドヤりたいので、GoよりScalaとかElixirとかHackをやりたい
dmmcom
総合エンタテイメントサイト「DMM.com」を運営。会員数は2,900万人を突破。動画配信、FX、英会話、ゲーム、太陽光発電、3Dプリンタなど40以上のサービスを展開。沖縄での水族館事業参入、ベルギーでのサッカークラブ経営など、様々な事業を手掛ける。また2018年より若手起業家の支援を強化、「DMM VENTURES」による出資や、M&Aなどを積極的に展開している。
https://dmm-corp.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away