Datadogを使用することで劇的にパフォーマンス改善がしやすくなった話

f:id:branu_techblog:20211229113811p:plain

はじめに

はじめまして、BRANU開発部の小川です。CAREECON for WORK 施工管理のバックエンドを担当しています。

ディレクターとして入社し、2021/8~バックエンドエンジニアとして開発に携わっています。

Datadogとは

Datadogとは、2010年にニューヨークで創業したDatadog社が提供するSaaS型運用監視サービスで、インフラからアプリケーションまで、あらゆるレイヤーをモニタリング出来ます。

多様なサービスとの連携が充実しているので、一元的に監視していくことが可能です。

またメトリクス、APM、ログを統合的にモニタリングでき、APIのレスポンス速度やエラーログ発生日時からサーバの負荷状況などを簡単に分析できます。

APM : Application Performance Management

どのように活用しているか

BRANUでは、現状APMAPIレスポンスの速度をチェックすることをメインに活用しています。

APM → Services → EndpointsでAVG LATENCYが大きい順番にならべ、上位のものから確認をしていきます。ただし、LATENCYが大きくともREQUEST数が少なければ頻繁にリクエストされるものではないため、バランスを見て対応する優先度を決めていくのがよいかと思います。

※LATENCY : 転送要求を出してから実際にデータが送られてくるまでに生じる「通信の遅延時間」のこと。可能な限り低い方が良い。

f:id:branu_techblog:20211229114400p:plain

一覧から対象のエンドポイントを選択すると、リクエストされた日時やステータスを確認することができます。

DURATIONが大きいリクエストを選択し、どの処理に時間がかかっているかさらに詳細に調査していきます。

f:id:branu_techblog:20211229114350p:plain

リクエスト内のSpanListからEXEC TIMEが大きいものを確認し、以下のようなことを考慮しつつ改善できるポイントを1つずつ探っていきます。

  • N+1の対応
  • 正しくindexを張っているか
  • クエリを書き直せるか
  • クエリを利用しているロジックは正しいか、よりシンプルにできないか
  • キャッシュを使うのはどうか
  • 非同期処理を行うのはどうか

など

f:id:branu_techblog:20211229114354p:plain

まとめ

サービス開発を長い間続けていくと、様々な影響からパフォーマンスが落ちていくことは多々あるかと思います。

今回Datadogを導入してみて、どのリクエストがボトルネックになっているのか、各リクエストのどの処理に時間がかかっているのかなどの現状を正しく把握することができるようになり、APMツールのありがたみ、データドリブンの重要性を身を持って痛感しました。

今後も定期的に計測を行い、パフォーマンスを向上させる施策をすすめていく体制を整えていきたいと考えています。

引き続き改善していきたいことは沢山ありますので、一緒に働ける方を募集しています!

www.green-japan.com