小規模から中規模開発へ、構造化ログからはじめる信頼性の担保

私の所属するプロジェクトでは、社内外に向けて複数のプロダクトを開発・運用しています。サービスの成長に伴い、不具合による損失が大きくなってきたことや連携する外部サービスや扱うシステムの増加により、監視や調査用途でのログ収集の重要性が高まりました。
当時5~6名のアプリケーションエンジニアで構成されるチームということもあり、インフラに関しても専任者をアサインする余裕もなく、私を含むアプリケーションエンジニアがインフラに関する業務を兼任するような体制でした。また、これまでも監視ツール(Datadog)にログが送信されていましたが、非構造化ログが出力されていたことや、ログの出力にあたっての方針はなく、収集したログを十分に活用することができていない状態でした。

そこで、サービスが中規模化するタイミングでまずログの構造化に着手し、各サーバープロセス(Rackサーバー、非同期ジョブ、Rakeタスク)単位でのロギングや監視ツールとの連携を整備しました。
結果、ログからエラーを検出してアラートを送信したり、障害発生から復旧までの時間の短縮、ログとトレースの紐づけによる可観測性の向上を達成することができました。
この発表では、小規模→中規模に差し掛かったサービスで、アプリケーションエンジニア起点でできるRailsのロギングと監視の仕組みづくりについて事例を交えて紹介します。

Speaker

kakudooo

kakudooo

株式会社プレックスで、Plex Job(エッセンシャルワーカー向けHRプラットフォーム)の開発をしています。プラットフォームを構成する求人サイト/ATS/社内の業務効率化ツールを、Ruby on Railsを使って開発しています。