追記(2019-02-27):
⚠️ 今後 LogDNA を使うことはないと思う。S3 にアーカイブされるログフォーマットが急に変わったり、S3 のアーカイブが遅れたりされなかったりで、問い合わせをすることが多々あり疲れたため。Papertrail に戻った。私の Tweet
も参考になるかも?
Papertrail
Free プランでも S3 にアーカイブ可能。しかもアーカイブパスは Athena のパーティション形式 で、アップロードは 1 時間に 1 回という高頻度(※)。
※ 例えばアーカイブ先を s3://example-logs/ にした場合、以下の形式でアップロードされる。
s3://example-logs/dt=2019-08-01/2019-08-01-00.tsv.gz
s3://example-logs/dt=2019-08-01/2019-08-01-01.tsv.gz
s3://example-logs/dt=2019-08-01/…
s3://example-logs/dt=2019-08-01/2019-08-01-23.tsv.gz
s3://example-logs/dt=2019-08-02/2019-08-02-00.tsv.gz
s3://example-logs/dt=2019-08-02/2019-08-02-01.tsv.gz
s3://example-logs/dt=2019-08-02/…
s3://example-logs/dt=2019-08-02/2019-08-02-23.tsv.gz
Athena で Table を作るときに PARTITIONED BY ( dt string ) を付与してパーティションを有効にすれば、where dt = ‘2019-08-02’ などで絞り込みができる。当該パーティション以外はロードされないので、高速かつ料金も抑えられる。
LogDNA
Free プランだと、Add-on を表示しているときしかログを溜めない。Search Retention の Unlimited Live Tail がそれ。正直使い物にならないと思う。一番安い有料プラン $5/mo にすれば、Search Retention が 7 Days になり、使い物になる。
Free プランだと S3 へのアーカイブは出来ない。有料プランにしても S3 のアーカイブは Athena のパーティション形式ではないし、頻度も 1 日 1 回。
Athena の料金を抑えたり検索速度を上げるためには、Lambda などを使って Athena のパーティション形式に変更する必要がある。業務ではそうしている。
所感
業務では Papertrail を使っていたんだけど、2018 年 9 月に数日間にもおよぶインシデントが起きたことがきっかけで、LogDNA に乗り換えた。
LogDNA は Papertrail より結構安かったり、UI がシュッとしていたり、目立ったインシデントが今のところないことが優位。
Papertrail は $33/mo の次が $65/mo などと少々お得ではなかったり、UI が古めかしかったりするけど、Rails の request ID をクリックすると絞り込めたり、S3 へのアーカイブパスが Athena のパーティション形式だったり、かゆいところに手が届いていると感じる。
もう Papertrail 許しちゃおうかな…。
CloudFront ログでも Lambda 使って Athena のパーティション形式に変更しているので、そこまで積極的に移行する理由がないのがモヤモヤポイント。