クラウドインテグレーション事業部MSPセクションの伊藤です。
本記事では、2025年4月にDatadog ハンズオンセミナーに参加してきましたのでセミナーでの実施内容と学びについて記載させていただきます。
Datadogの紹介
Datadogとは、クラウドアプリケーションのためのモニタリングとセキュリティプラットフォームです。
このSaaSプラットフォームは、インフラストラクチャ監視、 アプリケーションパフォーマンス監視、ログ管理を統合および自動化して、お客様のテクノロジースタック全体を一元的にリアルタイムで監視できるようにします。
Datadogを使用することで、利用顧客は問題を迅速に特定して解決し、アプリケーションのパフォーマンスを向上させ、セキュリティリスクを把握することができます。
ハンズオンセミナーについて
今回共有させていただくセミナーは、アイレット向けにDatadog様より開催いただいたハンズオンセミナーの詳細となります。
実施内容、開催場所、アジェンダは以下の通りとなっております。
◾️実施内容
Datadog Real User Monitoring (RUM) を使用して、架空の電子商取引アプリの Core Web Vitals を監視する。
その過程で、Webアプリケーションの最適化のために問題が発生している被疑箇所を特定し修正していく。
◾️対象者
- APM(アプリケーションパフォーマンス監視)、RUM(顧客体験監視)に業務上携わる可能性(意欲)のある方もしくは以前ハンズオンを受けたことがある方
- アプリケーション監視、顧客体験監視のエラートラッキング、ボトルネック特定に課題を抱えている開発(デザイン含む)・SREのロールの方
◾️アジェンダ
- 座学、デモの説明 (45分)
- ハンズオン(105分)
- 演習補足、QA (30分)
用語説明
Real User Monitoring (RUM)とは?
リアルユーザーデータをモニタリングし、Web エクスペリエンスを最適化(パフォーマンスの改善やトラブルシューティングの分析)して優れたユーザーエクスペリエンスを提供するための機能です。
オンラインサービスを提供する会社では、気づかないうちにウェブサイトやスマホアプリの使い勝手が悪化し、企業イメージの低下やパフォーマンスが低下していることがございます。
このような危険を防ぐために役立つのがRUMです。
RUMを活用すれば、サービスのパフォーマンスを向上させ、ユーザーエクスペリエンスを全体的に改善することが可能になります。
Core Web Vitalsとは?
ページの読み込みパフォーマンス、インタラクティブ性、視覚的安定性に関する実際のユーザーエクスペリエンスを測定する一連の指標です。検索結果でのランキングを上げ、全般的に優れたユーザーエクスペリエンスを提供できるよう、サイト所有者は、Core Web Vitals を改善する必要がございます。また、自分のアプリケーションがどの程度快適に使用できているのかを把握するために役立ちます。
RUMハンズオン
前提条件として、ワークショップ用の環境として ラボ が用意されており、そこには Datadog エージェントがあらかじめインストール済みとなります。そのため、すでに用意された環境を用いてハンズオンセミナーを実施いたしました。
Step1.設定の確認
すでに用意されている環境に、Datadogが用意したeコマースアプリケーション(アプリ名;storedog)からログデータを取得できていることを確認します。設定を確認すると、簡易的な設定でRUMの接続ができることがわかりました。
Step2.CWV(Core Web Vitals)の追跡
Google Lighthouseを使用して、eコマースアプリケーションであるstoredogのスコアを確認します。
ここでは、アプリのパフォーマンスが現状どれくらいの値を示しているのかを確認することができます。
<補足>
First Contentful Paint
・ページの最初のコンテンツをブラウザが描画し始める時点
Largest Contentful Paint
・Webページのメインコンテンツとなる、視覚的に最も大きな画像や動画、テキスト要素がブラウザ上に表示されるまでの時間
Cumulative Layout Shift
・視覚的な安定性を示す指標
ただし、上記のスコアには可変要素(ネットワーク接続の良し悪し、デバイスの速さ対遅さ、デスクトップ対モバイルなど)による数値が考慮されていないため、実際のCWVの数値が算出されているかと言われると不十分となります。
そこで、DatadogのRUMを使うことで実際のCWVの数値を追跡し、アプリのパフォーマンスを改善していきたいと思います。
Step3.LCPパフォーマンスを追跡するRUMモニターの構築
LCPのパフォーマンスを監視するためのRUMモニターを設定し、パフォーマンスが低下した場合にアラートを受信するように設定いたしました。
以下設定したアラート画面となります。
このアラームを作成することにより、アプリを手動から自動で監視できるようになります。
パフォーマンスの低下に直ぐに対応することができるようになりました。
Step4.パフォーマンス問題の特定と解決
①キャッシュされていないリソースを特定し、キャッシュを有効にしてパフォーマンスを改善する。
ダッシュボードを確認するとLCPは2.5秒以内が推奨されているのに対して、8.04秒とパフォーマンスが低い状態であることがわかります。また、discount,adsのLCPの中央値が最も長いことがわかります。また、多くのバーにはhttps://から始まるURLパスが表示されています。
上記から読み込み速度を上昇させるためにもキャッシュを反映させる必要があります。
以下有効化を実施。
LCPの平均スコアが減少し、目標閾値に近づいたことがわかりました。このことから、キャッシュされていないリソースの検索の重複を防ぐことでパフォーマンスが少し改善したことがわかります。
②長時間実行されているリクエストを特定し、バックエンドのコードを最適化してパフォーマンスを改善する。
ダッシュボードから時間がかかっているリクエストを探します。ログを見ると以下のようにヒントとなる情報が出力されています。
以下では、discounts.pyスクリプトの実行がされており、37行目以降で時間がかかってることがわかったので確認するとテスト中に残されたsleepコマンドがあることが原因であるとわかりました。
同じ容量で確認していくとads.pyスクリプトにもsleepコマンドがあることがわかりましたので削除しました。
上記のように問題点を特定しトラブルシューティングを行うとLCPの値がさらに下げることに成功しました。
③クライアントサイドレンダリングとサーバーサイドレンダリングの違いを検証し、最適なレンダリング戦略を実施
最後にページ読み込み時間を最適化するため、FCPとLCPの差を埋める方法として以下のコマンドを実行します。
コマンド実施後、さらにLCPの値を下げることに成功しました。
ハンズオンを終えての学び
今回のハンズオンを通して、Datadog RUMダッシュボードを効果的に操作することで、RUMデータを分析しWebアプリケーションのパフォーマンスを向上させるための知識と経験を得ることができました。
RUMを使用することで、ユーザーが影響を受ける前に予期しないフロントエンドの問題を特定して解決することができることから、今後アプリケーション監視をしていく上で欠かせない機能の1つになるのではないかと思いました。
最後に
弊社ではお客様の課題に合わせて、「AWS運用・保守サービス」等のサービスをご提案することが可能となっております。
また、オプションサービスにて『Datadogダッシュボード』、『New Relic One 導入支援サービス』などのサービスのご提案も可能です。
クラウドに関するご相談がございましたら、ぜひアイレットへご連絡ください。