Edited at

Glueがメトリクスを表示しない時の対策

新しいAWS環境にGlueジョブを作成しようとしたら

何度実行してもCloudWatch Metricsに表示されず、ハマった。


原因はけっこうしょぼかったのだけど、


  • 思えば2か月くらい前にも同じミスをした気がする


  • 困って調べたけどWebにドンピシャの情報がないっぽい

    (結局2回とも先輩に聞いた)


なので、備忘録として書く。


1. ジョブメトリクスを有効化する

初歩の初歩だけど、見えづらいところに設定があるので意外と忘れる。

これはドキュメントをよく読むと書いてある。

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-profile-glue-job-cloudwatch-metrics.html


ジョブを作成する時にジョブ自体にパラメータとして付与するパターンと、

ジョブを実行する際に一回限りのパラメータとして付与するパターンがある。

CLIから付与する場合は"Arguments:[]"内で"--enable-metrics":""と書く。


2. IAMでcloudwatch:PutMetricDataを付与する

権限を細かく管理しようとしてIAMポリシー自作とかするとハマる。

一応このドキュメント↓に存在は書いてあるけど、細かいことが書かれていない。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html

いろいろ調べたところ、ターゲットとなるresource"*"でいいらしい。


ちなみに、チュートリアル通りにやっていれば

AWSGlueServiceRoleポリシーを使ってIAMロールを作っているはずで、

このポリシーには当然cloudwatch:PutMetricDataも入っているので問題ない。  

Glueを動かすためには、他にもCloudWatchLogsやEC2の権限なども要るらしく、

はっきり言って厄介すぎるので、素直に既存ポリシーを使った方がいいと思う。

おわり。