AWS S3の特定のディレクトリの最終更新日を確認するmackerel pluginを書いた

github.com

目的

AWS S3はクラウドファイルストレージです。 そのユースケースとして、ログの保存場所としての用途があります。 重要度の低いログは、ほとんど閲覧の可能性がないため更新されていなくても気づかない可能性が存在します。 そのため、なんらかの方法でログの出力、アップロードの更新を監視することが求められます。 その手段の一つとして、AWS S3のlast modifiedを取得するmackerelでcheckするプラグインを実装しました。

出力例

s3://keizo042-s-bucket/path/to/directory" ディレクトリに更新があるかを確認したい

$check-s3-last-modified -id "AWS ACCESS ID" -secret "AWS SECRET TOKEN" -bucket "keizo042-s-bucket"  -key "path/to/directory" 
OK: last modified at 2019-02-20 10:34:24 +0000 UTC in s3://keizo042-s-bucket/path/to/directory

mackerelにはAWS Integrationがあるのでは

AWS S3 Integrationはget/put/list/headごとのメトリクスが取れるなどたいへん高機能です。
しかしmackerelのAWS S3 IntegrationはS3 bucketを1ホストとして扱います。 つまり、1バケットごとに料金がかかってしまいます。 今回の目的は"更新があること"のみを取得したかったため採用しませんでした。