追記(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 のパーティション形式に変更しているので、そこまで積極的に移行する理由がないのがモヤモヤポイント。