2021/10/26、10/27の2日に渡って開催したDatadogのイベントDash 2021で発表された新機能や新サービスについて、2回に分けてご紹介したいと思います。まずはじめに前半は6つほどサービスをピックアップしてご紹介したいと思います。
Infrastructure and Network Monitoring
Network Device Monitoring
Network Device Monitoringは、2020年2月に発表された、SNMP Integrationを使って収集されたメトリクス情報を使って、ルーター、スイッチ、ファイアウォールなどのオンプレおよびバーチャルのネットワークデバイスを可視化するサービスになります。
監視対象のデバイス一覧が表示され、そのメトリクスには、TCP、UDP、IP の他、帯域幅使用率や送受信量などのすべてのインターフェイスのパフォーマンス全体の表示ができ、SNMP メトリクスの積極的な監視で問題が発生する前に把握します。
List Viewで個々のデバイスの問題に気付いた場合は、そのDeviceをクリックして、そのパフォーマンスに関するより詳細な詳細を表示できます。これには、インバウンドおよびアウトバウンドエラー、ドロップ、送信または受信したデータの総量など、デバイス上のすべてのインターフェイスからの主要なメトリクスが含まれます。
詳細や設定についてはblogまたはドキュメントをご確認ください。
Universal Service Monitoring
Datadogのサービスマップは、アプリケーションをすべてのコンポーネントサービスに分解し、サービス間の依存関係をリアルタイムにグラフで表示したもので、ボトルネックを特定したり、アーキテクチャ内のデータの流れを把握するのに便利なツールです。サービスマップを表示させるには、Datadog APM および RUM により収集されたデータを元に視覚的に表示されます。よって、もしDatadog APMやRUMに対応していない開発言語を利用していた場合、サービスマップでの可視化は一つのエンドポイントとしての表示まででした。
今回、発表されたユニバーサルサービスモニタリングを有効にすると、Datadogエージェントは、eBPF(Extended Berkeley Packet Filter)を介してカーネルネットワークスタックからのHTTP(S)メッセージを自動的に解析します。これにより、既存のすべてのサービスや新規に導入するサービスのHTTPリクエストレート、エラーレート、レイテンシを、分散型トレースのためのインスツルメンテーションの有無やプログラミング言語に関係なく、簡単かつ安全に監視することができます。
ユニバーサルサービスモニタリングは、アラートの作成、デプロイメントの追跡、サービスレベル目標の設定に役立つサービスヘルスメトリクスを収集し、インフラストラクチャ上で実行されているすべてのサービスを幅広く可視化することができます。
詳細や設定についてはblogまたはドキュメントをご確認ください。
APM & Continuous Profiler
Database Monitoring
Datadog Database Monitoring(DBM)は今年の9月に正式リリースされました。 DBMは、すべてのデータベースのクエリメトリクスと実行計画を1箇所で見ることができるサービスとなります。PostgresおよびMySQLデータベースのクエリメトリクスとシステムパフォーマンスメトリクスと一緒に表示にでき、コストのかかるクエリや遅いクエリを素早くピンポイントで特定し、正確な実行内容を掘り下げてボトルネックに対処可能とします。また、クエリとホストメトリクスの相関関係により、リソースの制約がデータベースのパフォーマンスに与える影響を容易に特定することが可能となります。
DBMでは、すべてのホストにおける正規化されたクエリのパフォーマンスをサマリーグラフとソート可能なリストで追跡することができます。これにより、どのタイプのクエリが最も多く実行されているか、その所要時間、返された行数などが一目でわかります。これにより、例えば、長時間実行されているにもかかわらず少数の行しか返さないクエリがあれば、データが適切にインデックスされていない可能性があります。また、サービス、ホスト、クラスター名などのタグを使用してクエリの小さなサブセットにドリルダウンし、より焦点を絞った調査を行うことができます。
過去のパフォーマンスデータは、データベースの動作の変化や最適化の有効性について重要な洞察を与えてくれますが、データベース自体は現在の状態についての統計情報しか出力しません。
データベースモニタリングは、総実行時間、リクエスト数、共有ブロックのアクティビティなど、正規化されたクエリの主要なパフォーマンス指標の時系列グラフを提供することで、この問題に対処します。これらの指標は、「クエリ詳細」パネルの「メトリックス」タブに表示され、完全な粒度で3ヶ月間保存されるため、長期的なパフォーマンスの傾向を把握することができます。これらのグラフは、MySQL や PostgreSQL のダッシュボードなどに簡単に追加することができ、スループット、レプリケーション、コネクションなどの上位のメトリクスと関連付けることで、データベースのパフォーマンスをより包括的に把握することができます。
正規化されたクエリは、データベースのパフォーマンスのハイレベルな情報を提供しますが、サンプルクエリは、より詳細な洞察を提供します。Datadogは、すべてのデータベースからクエリのランダムなサンプルを定期的に収集し、各サンプルクエリがどこで実行されたか(すなわち、どのホストまたはアプリケーション上で)、またその期間、コスト、説明プランなどの詳細を確認することができます。Datadogは、サンプルクエリのメタデータをタグに変換します。タグは、問題のトラブルシューティングやオープンエンドの調査を行う際に、個々のクエリの検索、フィルタリング、および可視化に使用できます。例えば、テーブルを使用して、最もコストのかかるクエリをアプリケーション別にグループ化し、どのクエリを最初に最適化すべきかを判断することができます。
また、Dash 2021ではSQLServerのベータ対応が発表されました。
詳細や設定についてはblogまたはドキュメントをご確認ください。
#RUM
Session Replay
「Real User Monitoring(RUM)」のサービスにSession Replayの機能が追加されました。RUMは、個々のユーザーのアクティビティと体験をリアルタイムでくまなく可視化したいというニーズに応えて開発され、サービスの健全性とパフォーマンスをさらに深いレベルで可視化し、業務目的に沿った結果がどれだけ出せているかを測ることができます。
セッションリプレイは、個々のユーザーセッションをビデオ録画のように再生され、フロントエンドのエラーのトラブルシューティングの解決までの時間を短縮するとともに、ユーザーの行動に関する重要な洞察を提供します。
リプレイを表示すると、ユーザーの体験全体をビデオのように再現することができ、イベント・タイムラインを表示します。このタイムラインでは、ユーザーのアクションに起因するすべてのページ・ロードとDOM変更にセッションを分解し、個々のイベントにジャンプすることができます。タイムラインでは、エラーが発生したユーザーインタラクションにフラグが立てられ、いつ、どこで問題が発生したかを特定することができます。
例えば、特定のページロードでタイムアウトエラーが増加していることに気づいたとします。セッションリプレイを使えば、ユーザーがどのようにしてエラーを引き起こしているかを推測する必要はなく、タイムアウトの原因となっている正確なユーザーアクションを簡単に特定することができます。
セッションリプレイは動画として記録するのではなくユーザの操作情報を記録しDatadog側で再構築され再生されます。よって、ユーザの負荷やデータ転送量が極端に増えることなく実装できます。
また、ユーザのプライバシーに配慮したモード設定もでき必要最小限のデータ収集に留めることもできます。
詳細や設定についてはblogまたはドキュメントをご確認ください。
##Funnel Analysis
Datadog ファネル分析では、RUMのデータを活用して、ユーザーがビジネスに不可欠なフローを、正常に完了しているかどうかを視覚化し、簡単に把握することができます。
例えばEコマースサイトであれば、商品のページを開いて、カートに商品を追加して、カートを確認して生産するまでのフローが、どの程度の割合で実行されているかを、見ることができます。
ワークフローを構成するページビューとアクションを選択すると、ファネル分析は、各ステップから次のステップへの移行に成功した、ユーザーセッションの割合をグラフ化し、トラフィックの落ち込みがある場所を示します。
これにより、ユーザーがフローを完了する前に離脱してしまっている要因を、迅速に特定することができます。この潜在的な要因を調査するために、ファネル分析では各ステップを掘り下げて、主要なコンバージョン率のメトリクスを表示し、関連するセッションリプレイを特定して、ユーザーがどのようにUIを操作しているかをより深く理解することができます
ファネル内のステップをクリックすると、コンバージョン(ユーザーが次のステップに進んだセッション)とドロップオフ(ユーザーが離脱したセッション)のメトリクスを含む詳細情報が表示され、ステップ間の全体的な離脱率を把握するのに利用できます。選択したステップのコンバージョン率とセッション数を時系列で見ることで、フローのパフォーマンスの傾向を素早く把握し、問題がいつ発生したのかを理解することができます。トラフィック量やコンバージョン数の傾向をバックエンドサービスからの遠隔測定と関連付けることで、例えば、関連するバックエンドサービスのネットワーク障害が根本的な原因であるかどうかを判断することができます。これらの指標は、コードバージョンやブラウザごとにグラフ化され、新しいコードバージョンやブラウザのリリースによってユーザーエクスペリエンスが低下したかどうかを理解するのに役立ちます。
詳細や設定についてはblogまたはドキュメントをご確認ください。
#Synthetic Monitoring
##UDPとWebSocketテスト
Datadog Synthetic Monitoringは、アプリケーションをプロアクティブに監視し、エンドユーザに影響を与える前に、可用性やパフォーマンスの問題を検出、トラブルシューティング、解決することができます。APIテストを使用すると、APIエンドポイントに模擬HTTPリクエストを送信したり、SSL証明書の有効性をチェックしたり、DNS解決のパフォーマンスと正確性を検証したり、TCP接続をテストしたり、エンドポイントにpingを打ってサーバーの接続問題を検出したりすることができます。
今回、UDPとWebSocketのAPIテストが可能になったことで、カスタマーサポート・チャット・プラットフォームやビデオ・ストリーミング・サービスなどのリアルタイム・アプリケーションが常に低レイテンシーの要件を満たすことができるようになりました
UDPはパケットが正常に配信されるかどうかの保証はありませんが、UDPはより高速なデータ伝送を可能にします。この高速配信により、UDPは、VoIP(Voice over Internet Protocol)サービスやビデオ会議プラットフォームなど、信頼性よりもスピードを優先するアプリケーションに適しています。
一方、WebSocketは、単一の持続的なTCPソケット接続を介して、クライアントとサーバー間の双方向通信を可能にするアプリケーション層のプロトコルです。クライアントからのリクエストごとに新しい接続を確立するのではなく、オープンな接続を維持することで、待ち時間を短縮し、いつでもデータを交換することができます。この持続的なチャネルにより、WebSocketは、カスタマーサポート・チャット・プラットフォーム、ソーシャルメディア・フィード、マルチプレイヤー・ゲームなどのリアルタイム・アプリケーションに最適です
また、Datadog Synthetic CI/CD Testingを使用すると、CI / CDパイプライン内から直接これらのテストを実行できるため、問題を早期に検出してトラブルシューティングできます。
テストの失敗が通知された場合、ネットワークのタイミングの内訳を調べたり、応答メッセージやヘッダーが期待したものと一致しているかどうかを確認することができます。また、アサーションが失敗したかどうかも確認でき、調査の起点とすることができます。たとえば、下のスクリーンショットに示されているように、WebSocket 接続を確立しているときにサーバーが応答するのに時間がかかりすぎる場合、サーバーの構成やネットワークの問題を確認する必要があります。
詳細や設定についてはblogまたはUDPのドキュメント、WebSocketのドキュメントをご確認ください。
まとめ
今回は、Dash2021で発表されたうち、Infrastructure、APM、RUM、SyntheticsについてPick upし紹介しました。その他、Log管理やエコシステム、セキュリティ、デベロッパーサービスなどについて次回ご紹介したいと思います。