🔔
GASの実行時間が長かった場合にアラート通知を仕込んでみた
やったこと
- GASとGCPを連携してCloud Loggingにログ出力されるように https://developers.google.com/apps-script/guides/logging?hl=ja#cloud_logging
- 実行時間をログ出力するようにGASのコードを編集 https://developers.google.com/apps-script/reference/base/console?hl=ja#timelabel
function doAction() { console.time('doAction') // // ... mainの処理 // console.timeEnd('doAction') }
- GCPで通知ポリシーを作成
// Log query resource.type = "app_script_function" AND ( jsonPayload.message =~ "^doAction: \d\d\d\d\d\d+ms" OR jsonPayload.message = "起動時間の最大値を超えました" )
ちょっとした解説
-
jsonPayload.message =~ "^doAction: \d\d\d\d\d\d+ms"
- 「doAction」は好きなラベルで
- 「実行時間が長かった」を10秒以上と定義して、
\d\d\d\d\d\d+
で表現- 1000ms以上の場合でもmsで出力される模様
-
jsonPayload.message = "起動時間の最大値を超えました"
- タイムアウトした場合は
"起動時間の最大値を超えました"
となる。- タイムアウトがNGな場合は別の処理が必要。
- タイムアウトした場合は
Discussion