Datadog+DockerComposeでElixir/Phoenixのログをみる


前回、 DockerCompose使ってElixirの開発環境を作った。基本的に、この環境を使って入れば、どんなOS上で開発を行っていても、エラーは、同じものが出ます。これをAWSなどのインスタンスにアップしてユーザーテストなどをしてもらうんですが、その時のElixir/Phoenixのログを見たい場合、テストする人に、ブラウザのデベロッパツールに出ているものなどを貼ってもらう必要がある。

ただ、送ってもらえない場合は、開発者が自分で、そのエラー状況を再現しないければならない。これは、たまに、難しい・。。環境(動作環境・開発環境=Docker Compose)は同じものでも、テストした人の状況によっては、再現がめんどくさいなど。そんな時は、テストしたテスト環境(AWS)のエラーログをみたくなる。

こんなケースに、ログ収集サービスがある。Datadogは、その機能を有している。ログ収集の方法は、Datadogの方に書いてある通りで、docker-compose.ymlへの記述方法も書かれているが、、なんどか聞かれたので、需要があるのかな?と思い、投稿。

docker-compose.yml
labels:
  com.datadoghq.ad.logs: '[{"source": "phoenix-test", "service": "phoenix-test"}]'

ログを出したいサービスのところにlabelsとして、こんな感じに1つ書いておけばいい。

datadogの方では、上の場合を例にとれば、phoenix-test という文字でフィルタすれば、見やすくなると思います。