Header background

最新のDynatraceプラットフォームにおけるHTTPモニターは、APIエンドポイントの健全性に関する洞察を拡張し、テスト管理を簡素化します

合成HTTPモニターは、ビジネスに不可欠なWebアプリケーションとAPIエンドポイントの健全性を24時間365日、世界中で可視化します。最新のDynatrace SaaSの全機能を活用し、HTTPモニターは強化されたデータセットを提供。これにより、検出された問題の根本原因分析がより迅速かつ正確になり、MTTR(平均復旧時間)を短縮します。

新合成アプリの改良されたUIにより、合成テストの管理と結果分析がより容易かつ効果的に行えます。探索的分析がより多くのカスタムシナリオに対応し、Dynatrace Grail™データレイクハウスに保存されたテスト結果のあらゆる要素にアクセス可能になりました。これにより、 ダッシュボードでカスタマイズされた可視化を構築したり ノートブック で詳細な分析を実行したり できます

HTTPモニター実行詳細に関する従来のインサイト

約2,000社のDynatrace顧客において、Dynatrace Synthetic HTTPモニターは世界中の監視対象エンドポイントの健全性を24時間体制で可視化します。テスト失敗を引き起こす特定の問題に関するカスタマイズ可能な通知は、問題発見と同時に配信されます。これにより、ユーザーに影響が出る前に問題を分析し、即座に対応することが可能となります。

通知で提供されるHTTPモニター実行失敗の基本情報だけでは不十分な複雑なケースでは、Dynatraceは当該HTTPモニターの最終失敗実行に関する完全な詳細を提供します。配信されたペイロード(レスポンス本文)、レスポンスヘッダー、さらにはモニター実行中に送信されたリクエストの詳細を分析することは、失敗の根本原因を分析する際に非常に貴重です。

しかし、現代の複雑で動的に変化するITシステムにおいては、最終結果の詳細だけでは不十分な場合もあります。この課題は、製品アイデアコミュニティを通じてお客様から寄せられたフィードバックとして認識され、当社に伝えられました:

「現在、HTTPモニターでは、各ロケーションごとに直近の失敗した実行の詳細のみが表示されます。週末や夜間など、それ以前に発生した複数の失敗を追跡できなかった場合、何が失敗したのかについての詳細情報が非常に少ないことがあります。」

— DTコミュニティユーザー

新Syntheticアプリが根本原因分析(RCA)を強化する方法

Dynatraceは常に皆様のフィードバックに耳を傾けています!この度、HTTPモニターをサポートする新バージョンのSyntheticアプリをリリースし、HTTPモニターの結果詳細が「直近の成功/失敗実行」に限定されなくなったことをお知らせします。Grailの強力な機能により、合成結果が保持される全リテンション期間中に保存された全実行の詳細が利用可能になりました。

新Dynatrace Syntheticアプリでは、これらの結果を分析可能です。ネットワーク可用性モニターだけでなく、HTTP合成モニターも完全にサポート。刷新された「実行分析」ページには、設定済みHTTPモニター全実行を表示する散布図チャートが追加されました。

Figure 1. Scatter plot chart showing all executions of HTTP monitors
図1. HTTPモニターの全実行を示す散布図

各点はHTTPモニターの1回の実行を表します。関心のある実行を選択すると、その詳細(例:コンテンツレスポンス本文、ヘッダー、関連メトリクス)が表示されます。各モニター実行中に送信されたリクエストの詳細も確認可能です。ページ左側のフィルタリングパネルを使用すれば、分析に不可欠な要素のみに焦点を絞れます。

Figure 2. HTTP monitor execution details
図2. HTTPモニターの実行詳細

分析では、2つの実行結果の詳細比較が必要になる場合があります。例えば、現在失敗している実行と、テストが成功した過去の履歴を比較する場合です。あるいは、2つの失敗した実行を比較する必要があるかもしれません。最初の失敗の詳細(例えば、夜間に何が起きたか)が分析の追加情報となる可能性があるためです。新しいDynatrace Syntheticアプリケーションでは、任意の2つの実行を選択して比較できます。

Figure 3. Comparison of the details of two HTTP monitor executions
図3. 2つのHTTPモニター実行の詳細比較

Dynatraceプラットフォームが分析を支援

最新のDynatraceプラットフォームにおけるHTTPモニターの利点は、新しいSyntheticアプリ内だけでなく、ダッシュボード、ノートブック、Davis®CoPilotを利用したさらなる探索的分析のために、実行詳細情報を保存するすべてのメトリクスとイベントが利用可能です。これにより、ニーズに完全に合わせたカスタマイズされたレポート構築の可能性がほぼ無限に広がります。

「GrailでDQLを使って利用できるデータは非常に強力に見えます。レスポンスペイロードと(モニター実行の)所要時間を組み合わせる可能性は非常に有用です」

– ティム・ビューツ、テレネットグループ IT信頼性エンジニア

新しいSyntheticアプリ内では、さらなる分析に利用できるノートブックへのリンクを提供しています。このノートブックには3つの事前定義クエリが含まれており、HTTPモニター結果に保存されたイベントをクエリするために使用できます。

Figure 4. Notebook with example DQL queries for synthetic events
図4. 合成イベントのDQLクエリ例を示すノートブック

以下に3つのクエリを紹介します:

クエリ1:指定した時間範囲内の選択モニターの全実行に関する情報を取得

このクエリは3つのDQLクエリの中で最も基本的で、一意のID(dt.synthetic.monitor.id)で識別される指定モニターの全実行リストを返します。fields句はクエリ結果として表示すべきフィールドを指定します。デフォルトでコメントアウトされているロケーションIDフィルター(filter dt.entity.synthetic_location)を使用すると、選択したロケーションからの実行のみに結果を絞り込めます。

fetch dt.synthetic.events
| filter dt.synthetic.monitor.id  == "HTTP_CHECK-75952DA89EB1DB45"
| filter event.type == "http_monitor_execution"
| fields timestamp, result.status.message, result.statistics.duration, result.status.code, dt.entity.synthetic_location, execution.type, event.id 
| sort timestamp desc 
// | filter dt.entity.synthetic_location == "SYNTHETIC_LOCATION-0000000000000001" 

クエリ2: 選択したモニター実行内の各ステップの結果に関する基本情報を含むイベントを取得

このクエリの主な違いは、 filter event.type == "http_step_execution"句です。このクエリは、選択したHTTPモニターの単一実行における全ステップの基本情報を返します。実行は次のフィルターで選択されます:filter event.id == 100925201952 //event.id == 実行ID(注:最新の実行IDをデフォルトフィルターとして使用しています)

fetch dt.synthetic.events
| filter dt.synthetic.monitor.id  == "HTTP_CHECK-75952DA89EB1DB45"
| filter event.type == "http_step_execution"
// | filter dt.entity.synthetic_location == "SYNTHETIC_LOCATION-0000000000000001"
| filter event.id == 100925201952 //event.id == 実行ID
| sort dt.synthetic.execution.end_timestamp desc
| fields timestamp, result.status.message, result.statistics.duration, result.statistics.connection_time, result.statistics.tls_handshake_time, result.status.code, result.statistics.time_to_first_byte, dt.entity.http_check_step

クエリ3: 選択したHTTPモニターの全詳細を記述するイベントを取得

このクエリは、dt.synthetic.detailed_events から異なるイベントタイプのデータを取得します。選択したモニター実行に関する詳細情報を取得するために使用でき、トラブルシューティング時に役立ちます。

コメントアウトされた句を使用すると、実行されたモニターの特定のステップに範囲を絞り込むことができます。ステップID値(dt.synthetic.step.id)は、例えばクエリ2の結果から取得できます。

dt.synthetic.detailed_events を取得
| filter dt.synthetic.monitor.id == "HTTP_CHECK-DD85DA9C14659614"
| filter event.id == 4184255792508795805 //event.id == 実行ID
// | filter dt.synthetic.step.id == "HTTP_CHECK_STEP-0000000000000000"

Grailで利用可能な合成結果は、レポート作成と可視化の観点からも追加の可能性を提供し、単一のダッシュボード上で様々なメトリクスとイベントを統合します

図5のダッシュボード例をご覧ください。人気天気サービスの健全性をチェックする合成モニターの結果を基に構築されています。可用性とサービスパフォーマンスを示すメトリクスに加え、ポーランド・グダニスクの天気予報を示す円グラフを作成しました。グラフの入力データは、天気サービスが提供するレスポンスのペイロードから抽出されています。

Figure 5. Example dashboard combining endpoint health with the content delivered as a payload
図5. エンドポイントの健全性とペイロードとして配信されたコンテンツを組み合わせたダッシュボードの例

「過去の実行分についてもこれらのイベントを確認できるのは素晴らしい。ダッシュボードに活用したい」
— 大手人材ソリューション企業 エンジニア

上記のダッシュボードは、HTTPモニター実行でレスポンス本文から取得したデータ(ここでは気象情報)と、そのデータ取得に使用したサービスの健全性を表すメトリクス(この場合はHTTPモニターが報告する可用性と所要時間)を組み合わせた例です

以下は、イベント(レスポンス本文を含む)からデータを取得するDQLクエリの例です

fetch dt.synthetic.detailed_events | filter dt.synthetic.monitor.id == "HTTP_CHECK-75952DA89EB1DB45"
| fieldsAdd content = result.statistics.response_body
| parse content, "JSON:query"
| fields timestamp, dt.tenant.uuid, query
| fieldsFlatten query
| fieldsAdd days = query.days[0]
| fieldsFlatten days
| summarize count(), by:{days.conditions}

HTTP モニターの全実行から収集したレスポンス本体の内容を JSON として収集・解析します。その後、特定の気象タイプ(days.conditionフィールドで返される)の予報を返した実行回数をカウントします。

最新のDynatraceプラットフォームでHTTPモニターを活用する方法をご覧ください

  • 新しいSyntheticアプリケーションでHTTPモニターを作成しましょう。
  • 新規(および既存)HTTPモニターの結果を確認しましょう。
  • 新しいSyntheticアプリに標準搭載の合成ダッシュボードを活用しましょう!Dynatrace Playground環境で新ダッシュボードをぜひお試しください
  • DQLの力を活用して合成データをクエリし、ノートブックやダッシュボードでレポートを作成しましょう。
  • Dynatraceコミュニティのフィードバックチャネルからご意見をお寄せください。