あけましておめでとうございます!🎍
クラウドインテグレーション事業部の林です。
さて、2024年12月にDatadog ハンズオンセミナーに参加してきましたので体験レポートを通して内容を共有しようと思います!

 

Datadog ハンズオンセミナーとは?

弊社アイレット向けにDatadog Japan合同会社様よりで開催いただいたDatadog APM(アプリケーション監視)・Datadog RUM(顧客体験監視)に関してのハンズオン形式のセミナーです。

対象となるロール ・APM(アプリケーションパフォーマンス監視)、RUM(顧客体験監視)に業務上携わる可能性(意欲)のある方
・アプリケーション監視、顧客体験監視のエラートラッキング、ボトルネック特定に課題を抱えている開発(デザイン含む)・SREのロールの方
開催場所 Datadog Japan オフィス(東京都千代田区丸の内のJPタワー内)

 

 

  • アジェンダ
Datadogについての概要、APMハンズオン 約120分
RUM,DBM、AIOPs周りの機能紹介とQA 約30分

 

Datadogとは?

Datadogについて知らない人向けにまずDatadogについて説明します。
Datadog はクラウド アプリケーションのための モニタリングとセキュリティ プラットフォームとなりインフラストラクチャ監視、 アプリケーションパフォーマンス監視、ログ管理を統合および自動化して、お客様のテクノロジースタック全体を一元的にリアルタイムで監視することができる SaaS プラットフォームとなります。

◇Datadogについて
https://www.datadoghq.com/ja/

また、元々はインフラ監視からスタートしており、クラウドサービスのITインフラの監視運用においても運用監視に必要なサービスを統合していることや、可視性が高く安定性もあることから弊社においても多数のお客様に導入させていただいております。

◇モダンなインフラストラクチャーのモニタリング
https://www.datadoghq.com/ja/product/infrastructure-monitoring/

◇アイレット、Datadog社の「Gold Tier Partner」を取得
https://cloudpack.jp/info/20240829.html

 

なぜ今回のセミナーに参加したのか?

システムの複雑化やクラウド移行が多様化する中で、従来のインフラ監視だけではなくアプリケーションのパフォーマンスに影響を与える可能性のある多くの事象をより迅速な原因特定や解決を行うことにつながるAPM(アプリケーション・パフォーマンス・モニタリング)は今後高成長すると思っているためです。

APMの導入によるメリット

・アプリケーションの問題点やボトルネックの特定によるアプリケーションのパフォーマンスや安定性の向上
・パフォーマンス問題の発生件数の減少やより迅速な問題解決、サービスの最適化
・インフラ監視・アプリケーション監視との統合によりシームレスな分析が可能になる

上記以外にもさまざまな導入のメリットがあり、
今後DatadogのAPMの導入や推進をする機会があった際の事前学習として、
とても良いタイミングだと思っていたためです。

また、アプリケーションのフロントエンドパフォーマンスを詳細に分析することができるブラウザモニタリング(Datadog Real User Monitoring (RUM))も学べるいい機会となっておりました。

◆Datadog APM
https://docs.datadoghq.com/ja/tracing/

◆Datadog ブラウザモニタリング
https://docs.datadoghq.com/ja/real_user_monitoring/browser/

 

APMハンズオン

1.Datadogについてとワークショップの概要についての説明

今回はDatadogさんよりAPMの導入済みのdockerコンテナ環境を提供いただき
アプリケーションで問題が発生している被疑箇所を特定し、アプリケーションを修正するところまでをハンズオンとして提供していただきました。

JP Workshop: Delivering High Quality Software with APM and Distributed Tracing

このワークショップでは、Datadog APMを使ってアプリケーションにインストゥルメントを設定します。その後、ディストリビューション・トレーシングを使用してアプリケーションの問題を特定し、ユーザーエクスペリエンスを向上させます。アプリケーションが期待通りに機能するようになったら、遅延がしきい値を超えた際にアラートを受け取るための対策をおこないます。

 

  • 主な使用ツール等

Continuous Profiler

Datadog Continuous Profiler を使用すると、最小限のオーバーヘッドでスタック全体にわたって本番環境でのコードパフォーマンスを分析できます。コードプロファイリングを利用して、アプリケーションで最もリソースを消費するメソッドまたはクラスをすばやく検出および最適化できます。これにより、コードの効率が向上し、クラウドプロバイダーのコストが削減されます。

Code Hotspots

遅いトレースやエンドポイントを調査することができる。

本番環境においてアプリケーションのパフォーマンスに問題がある場合、分散型トレーシングとプロファイリングによるコードスタックトレースのベンチマークを統合することで、パフォーマンスのボトルネックを特定する強力な方法となります。

Datadog Service Catalog

Datadog サービスカタログは、所有権メタデータ、パフォーマンスインサイト、セキュリティ分析、コスト配分などを統合し、サービス全体を一つのビューで提供します。これにより、組織はスケールに応じたエンドツーエンドのサービス所有権を簡単に実現し、リアルタイムのパフォーマンスインサイトを取得し、信頼性やセキュリティリスクを検出・対応し、アプリケーションの依存関係を一元的に管理することができます。

ダイナミックインスツルメンテーション

ダイナミックインスツルメンテーションを使用すると、再起動することなく、サードパーティのライブラリを含むアプリケーションのコードの任意の場所で、実行中の本番システムにインスツルメンテーションを追加することができます。Datadog の UI から、ログ、メトリクス、スパン、および対応するタグ付けのテレメトリーを追加または変更することができます。ダイナミックインスツルメンテーションはオーバーヘッドが少なく、システムに副作用を与えません。

1-1.APMワークショップ

ハンズオンの概要

・APMデータを収集するためのDatadog Agent設定
・Ruby on Rails とPython アプリケーションへのAPM構成
・Datadogを使用してエラーを特定、アプリケーションのデバッグ、修正したコードのデプロイ
・データベースへのN+1問題への対応、SQLクエリの修正
・アラートの作成
プロファイラーによるパフォーマンス改善
ダイナミックインスツルメンテーションによるオブザーバビリティ向上

 

  • APMデータを収集するためのDatadog Agent設定
    セットアップされたDatadog Agentの内容の確認をしました。

 

  • Ruby on Rails とPython アプリケーションへのAPM構成
    トレースライブラリのインストールやインスツルメンテーションの設定内容の確認等を行いました。

 

  • Datadogを使用してエラーを特定、アプリケーションのデバッグ、修正したコードのデプロイ
    サービスカタログ、サービスマップ、トレース等を活用サービス全体のパフォーマンスの確認、ボトルネック調査、特定、コードの修正、アプリケーションのデバッグ。
    docker-compose.ymlの更新やサービスの再デプロイをしました。

 

  • データベースへのN+1問題への対応、SQLクエリの修正
    トレースからのN+1問題の特定、大量のデータベースへのアクセス改善のためのアプリケーション修正等を行いました。

 

  • アラートの作成
    アプリケーションの不具合への迅速な対応のためのモニターの作成を行いました。
モニターの種類について
作成するモニターについては2つのカテゴリに分類できます。
・動的しきい値モニター
・静的しきい値モニター

今回は動的しきい値モニターを作成しました。
今後は、異常検知や外れ値、予測等のモニターを活用し異常を検出したり予測したりすることが必要となっていくでしょう。

動的しきい値モニター
Datadog の動的しきい値モニターは、 アルゴリズムを使用して異常な動作を通知したり、予測値を使用したり、ブーリアン演算子で複数のモニターを評価したりすることができます。

 

  • プロファイラーによるパフォーマンス改善
    Continuous Profilerで2つのプロファイルを比較したりトレースと一緒にプロファイルを確認することでパフォーマンス問題に対処しました。

 

  • ダイナミックインスツルメンテーションによるオブザーバビリティ向上
    プローブを使用しログ等を収集したりすることでオブザーバビリティを向上させる。
    また、ダイナミックインスツルメンテーションを使用すると、再起動することなく本番システムにインスツルメンテーションを追加することができるため、実際の本番環境等、プログラムを停止できない場合でも非常に有効である。

ダイナミックインスツルメンテーションを使用すると、再起動することなく、サードパーティのライブラリを含むアプリケーションのコードの任意の場所で、実行中の本番システムにインスツルメンテーションを追加することができます。
https://docs.datadoghq.com/ja/dynamic_instrumentation/

 

2.RUM,DBM、AIOPs周りの機能紹介とQA

  • Watchdog アラート
    Watchdog はシステムおよびアプリケーション上の異常をプロアクティブに探し予期していなかった異常を通知することができます。

 

  • Pattern-based Correlation
    Datadog が環境に応じてパターンベースの相関関係を自動的に提案してくれます。
    パターンベースの相関関係により、イベントの相関関係を制御できます。また、Datadog は機械学習を使用して、Datadog 内で収集された基礎テレメトリやその他のヒューリスティックを使用して、関連する Datadog Monitor イベントでパターンを自動的に強化します。

 

  • Intelligent Correlation
    インテリジェント相関は、機械学習技術を利用した方法を使用します。これにより、Datadogに収集された基盤データやその他のヒューリスティック情報を元に、Datadog Monitorのイベントをユーザーの代わりに自動的に関連付ける仕組みです。

  • リアルユーザーモニタリング(RUM)
    DatadogのReal User Monitoring(RUM)は、実際のユーザーのアクションを追跡し、アプリケーションのフロントエンドパフォーマンスをリアルタイムで把握できるツールです。これにより、合成テストやバックエンドのメトリクス、トレース、ログ、ネットワークパフォーマンスなどのデータを一元的に連携させ、ユーザーエクスペリエンスの問題を迅速に検出できます。スタック全体のコンテキストを活用することで、問題の原因を特定し、効果的に解決することができます。
  • RUM ブラウザモニタリング
    Datadog Real User Monitoring (RUM) は、アプリケーションのフロントエンドパフォーマンスをリアルタイムで解析し、ユーザー体験を監視します。この機能により、Webエクスペリエンスを最適化し、優れたユーザーエクスペリエンスを実現できます。さらに、Syntheticテストやバックエンドメトリクス、トレース、ログを統合することで、システム全体のパフォーマンス問題を特定し、迅速なトラブルシューティングを可能にします。

 

  • RUMは、ユーザーの全体的なエクスペリエンスやアクションを追跡することに焦点を当てており、パフォーマンスの問題が実際にどのようにユーザーに影響を与えているかを理解します。
  • RUMブラウザモニタリングは、特にブラウザ内でのパフォーマンスやエラーを深掘り、ブラウザ固有の問題を特定することに特化しています。

 

 

まとめ

今回、Datadog ハンズオンセミナーに参加してみて、普段のインフラ監視だけでは知り得ないDatadogの機能や新サービスについて知ることができました。

また、APM(アプリケーション・パフォーマンス・モニタリング)のハンズオンにて実際の環境の調査、デバッグ等を経験することで今後Datadogを活用したサービスのパフォーマンス改善、アプリケーション側の問題の早期解決に向けて実際の現場でも活用できると思いました。

 

最後に

弊社ではお客様の課題に合わせて、「監視運用保守サービス」等、当社が提供するサービスをご提案することも可能となっております。
また、オプションサービスにて『Datadogダッシュボード』をご提供することも可能です。

ぜひお気軽にアイレットへご相談ください。