スキップしてメイン コンテンツに移動

GASでエラー監視通知自動化

GASでエラー監視通知自動化

GAS応用でエラー監視を実装する

Google Apps Script(GAS)は、スプレッドシートやGmail、Google Driveと連携した自動化に最適です。しかし、スクリプトが失敗したときにすぐに把握できないと、業務に支障をきたします。そこで、GASで発生した例外を自動で検知し、通知する仕組みを構築します。

まず、try...catch構文でエラーを捕捉し、MailApp.sendEmailLogger.logで情報を送信します。さらに、Stackdriver(現在はGoogle Cloud Logging)にログを送ることで、後から検索・分析が可能になります。

function main() {
  try {
    // 何らかの処理
  } catch (e) {
    Logger.log('エラー発生: ' + e.message);
    MailApp.sendEmail('admin@example.com', 'GASエラー通知', e.stack);
    // Stackdriverへ送信
    var logEntry = {
      textPayload: 'GASエラー: ' + e.message,
      severity: 'ERROR'
    };
    CloudLogging.log(logEntry);
  }
}

StackdriverとError Reportingの連携

Stackdriver(Google Cloud Logging)とError Reportingを組み合わせると、GASのエラーをリアルタイムで可視化できます。GASからCloudLogging.logで送信したログは、Error Reportingが自動で解析し、重複エラーをまとめて表示します。

設定手順は以下の通りです。

  1. Google Cloud Consoleでプロジェクトを作成し、Stackdriver Logging APIを有効化。
  2. GAS側でサービスアカウントを作成し、JSONキーを取得。
  3. スクリプトエディタの「サービス」から「Google Cloud Logging」を追加し、認証情報を設定。
  4. エラー発生時にCloudLogging.logで送信。

これにより、エラーが発生した瞬間にError Reportingのダッシュボードに表示され、メール通知やSlack連携も設定できます。

ログ監視と通知設定

Stackdriver Loggingでは、ログを検索・フィルタリングし、特定の条件でアラートを発火させることが可能です。例えば、severity=ERRORのログが一定時間内に10件以上発生したら通知する設定を作ります。

設定例:

resource.type="global"
logName="projects/your-project-id/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
severity="ERROR"

このクエリをベースに、アラートポリシーを作成し、通知チャネル(メール、SMS、Webhook)を追加します。WebhookをSlackやTeamsに設定すれば、リアルタイムでチームに情報が届きます。

アラート設計と障害対応

アラートは単なる通知ではなく、障害対応フローを支える重要な要素です。以下のポイントを押さえて設計しましょう。

  • 閾値は過度に厳しくしない。誤検知を減らすために、エラーの種類や頻度を分析。
  • 通知先は担当者と自動化ツール(PagerDuty、Opsgenie)を組み合わせる。
  • アラートに対するレスポンス手順をドキュメント化し、定期的にテスト。
  • 障害発生時のログを自動で集約し、後続の原因分析に活用。

実際にGASで発生したエラーをStackdriverに送信し、アラートが発火した際にSlackにメッセージが届くように設定すると、即座にチームが対応できます。

モニタリングと運用のベストプラクティス

GASプロジェクトを本番環境で運用する際は、以下のベストプラクティスを守ると安定性が向上します。

  1. コードはモジュール化し、テストケースを自動化。CI/CDパイプラインでデプロイ。
  2. ログレベルを適切に設定。DEBUGは開発時のみ、INFOは運用時に必要な情報。
  3. 定期的にStackdriverのログを確認し、未処理のエラーを洗い出す。
  4. アラートポリシーをレビューし、閾値や通知先を最適化。
  5. 運用マニュアルを作成し、担当者がすぐに対応できるようにする。

これらを実践することで、GAS応用におけるエラー監視・ログ監視・通知設定・アラート設計・障害対応・モニタリング・運用が一体化し、システム全体の信頼性が大幅に向上します。

この記事はAIによって作成されました。

コメント