Logging でバッチの監視をする試み
バッチの実行 & 完了の監視、あまりされていない
アプリケーションから特定の構造ログを書く + Logging メトリック + Absence 監視 でできないかというアイディア
Logging メトリック
作ってみる
カウンタ
分布
単にログ一発で済むならカウンタ、おまけで実行時間とか記録するなら分布にするかなあ
どういうログを書く?
ジョブ情報
完了情報
code:k -ojson get job
{
...
"status": {
"completionTime": "2021-06-30T12:17:01Z",
"conditions": [
{
"lastProbeTime": "2021-06-30T12:17:01Z",
"lastTransitionTime": "2021-06-30T12:17:01Z",
"status": "True",
"type": "Complete"
}
],
"startTime": "2021-06-30T12:09:21Z",
"succeeded": 1
}
}
ログメトリックを作る
手でポチポチ
共通するバッチはパラメータを label にしたり
Terraform への import
Notification Channel
Logging Metric
$ gcloud alpha logging metrics list
$ terraform import google_logging_metric.batch "PROJECT_ID batch"
batch が名前、実際はもっと説明的
Alert Policies
$ gcloud monitoring policies list
$ terraform import google_monitoring_alert_policy.absence_batch projects/PROJECT_ID/alertPolicies/POLICY_ID
$ terraform state show google_monitoring_alert_policy.absence_batch
素直にいれていく
alert_strategy とか alert_strategy.auto_close とかってデフォルトのままなのか
absence の期間は最大 25h
Error: Error creating AlertPolicy: googleapi: Error 400: Field alert_policy.conditions0.condition_absent.duration had an invalid value of "744h": Durations longer than 25h are not supported. うーん1moでチェックしたいこともある