New Relic Syntheticsのベストプラクティスガイド

Webサイト、ビジネストランザクション、APIエンドポイントを監視するための5つのヒント

New Relic Synthetics (Selenium駆動型Chromeブラウザ) では、アプリケーションの監視とテストを通じて、エンドユーザーに影響する前に問題に対処することができます。Syntheticsのフルパワーをすぐに活用するための5つのヒントは、以下のとおりです。

1. モニタータイプを監視ニーズに合わせる

Syntheticモニターは、Webサイトのパフォーマンスを測定し、各チェックを詳細に記録する仮想ブラウザです。また、ロードタイム、アップタイム、平均ダウンロードサイズのほか、概要、各ページリソースの詳細な統計情報、さらにダウンタイムインシデントを含む集計値も取得します。

Syntheticsモニターには4つのタイプがあります。デプロイするタイプは監視の対象によって決まります。

  • Pingモニター—サイトがアクセス可能であることを確実にします。
  • シンプルブラウザモニター—エンドユーザーパフォーマンスを確保します。
  • スクリプト化ブラウザ—特定のリソースを確保します。
  • APIモニター—アプリケーションサーバーやWebサイトの正常な動作を確保します。

操作方法:

  1. モニターを追加するには、synthetics.newrelic.com(または、EUベースのアカウントの場合は、synthetics.eu.newrelic.com)に移動し、モニタータイプ、名前およびURLを指定します。
  2. オプション:検証文字列 (Pingとシンプルブラウザで利用可能)、または次のタイプの応答検証用のサブ文字列監視を有効にする高度なオプションを追加します。
    • SSL検証 (pingとシンプルブラウザ用)。 このオプションは、SSL証明書チェーンの有効性を検証します。次の構文を実行することによって複製することができます。

      openssl s_client -servername {YOUR_HOSTNAME} -connect {YOUR_HOSTNAME}:443 -CApath /etc/ssl/certs > /dev/null
    • HEADリクエストのバイパス (Ping用)。 このオプションは、デフォルトのHEADリクエストをスキップし、代わりにpingチェックを含むGET動詞を使用します。
    • Redirect is Failure (Ping用)。 Redirect is Failureが有効になっているときにリダイレクト結果が発生すると、Syntheticsは (リダイレクトにしたがって、結果のURLをチェックするのではなく) 結果をエラーとして分類します。
  3. モニターを実行するロケーションを選択します。
  4. 各場所でモニターを実行する頻度を選択します。
  5. オプション:アラート通知を設定します。
  6. Create my monitorを選択して確認します。
  7. 数分待機してから、モニター指数からモニターを確認します。

2. モニターインデックスページとともにすべてのモニターを表示します。

継続的なアプリケーションパフォーマンス監視は、Webサービスの実施と正常な動作のほか、エラーの発生防止を確保するために不可欠です。Syntheticsは、選択された各場所ごとにWebアプリケーションの自動テストを実行し、ダウンタイムインスタンス (「違反」) を記録し、各ページリソースの集計値、結果、そして詳細な統計データを収集することで、このような保証を提供します。

モニターインデックスページを使用してこの情報を高いレベルで表示するか、個別のモニターを選択してpingモニターについてはサマリ、または単純でスクリプト化されたモニターについては概要ページを表示し、時間の経過に伴うパフォーマンスについてのより深い洞察を得ます。

New Relic UIでモニターを表示する方法:

New Relic One Syntheticsモニターページ

New Relic Oneモニターインデックスページを使用してモニターのリストを表示する:

one.newrelic.com > Entity explorer > Synthetic monitorsの順に移動します。

詳しくは、New Relic Oneの中核となるUIコンポーネントの操作に関するドキュメンテーションを参照してください。

Syntheticsモニターインデックスページ

New Relic Oneモニターインデックスページを使用してモニターのリストを表示する:

synthetics.newrelic.comにアクセスします。

3. 個々のモニター結果を表示する

西海岸の顧客のWebアプリケーションのパフォーマンス状況を把握するだけでは不十分です。全国、そして世界各地でのパフォーマンス状況を表示できる必要があります。Syntheticsモニターを活用し、Resultsページにアクセスすることで、開発から本番環境に至るまでのすべてがどのようにユーザーエクスペリエンスに影響するかを確認することができます。リストを並べ替えて、遅い結果、速い結果、その他の異常な結果を識別することで、意味深い結果を検出できます。または、場所別にフィルタリングし、モニターパフォーマンスが地域によってどのように異なるかを把握できます。(以下の「ネットワークタイミング」グラフは、一定期間にわたるWebページのパフォーマンスのスナップショットを示しています)

操作方法:

  1. synthetics.newrelic.comにアクセスし、Monitorsドロップダウンメニューからお使いのモニターを選択します。
  2. Monitor > Resultsと選択します。
  3. 監視対象の各場所に対して最も遅いページロードの最新のビューを取得します。

4. Webサイト上の各リソースのロードタイムへの影響を把握する

Synthetics Resourcesページにアクセスし、Webサイト上の各リソース (CSS、JavaScript、画像、HTMLなど) がロード全体にどのように影響しているかを確認します。ランタイムに収集される詳細なメトリックスを掘り下げて調べ、サードパーティリソースによって費やされる時間に関するパフォーマンス情報を検出し、各リソースのHTTP応答コードを特定することができます。

操作方法:

  1. synthetics.newrelic.comにアクセスし、Monitorsドロップダウンメニューからお使いのモニターを選択します。
  2. Monitor > Resourcesと選択します。

5. スクリプト化ブラウザテストを設定して開発する

スクリプト化ブラウザを使用して、Selenium JavaScript Webdriverバインディングで複雑な監視ワークフローを構築できます。たとえば、アプリケーションにログインして特定のリンクにナビゲートし、ページ要素がロードされてアサーションを追加するのを待機できます。

操作方法:

  1. synthetics.newrelic.comにアクセスします。
  2. モニタータイプ (スクリプト化ブラウザなど) を選択します。
  3. モニターの名前と詳細 (Sitename.comのスクリプト化ブラウザなど) を入力します
  4. モニターを実行する場所 (ムンバイ、ソウル、コロンバス、モントリオールなど) を選択します。
  5. 各場所でモニターを実行する頻度 (5分など) を選択します。
  6. パフォーマンス違反が発生した際にチームに送信するアラート通知を設定します。
  7. これでスクリプトを記述する準備ができました。(以下は、メインナビゲーションページのパフォーマンステストに使用するスクリプトの例です)。
var assert = require('chai').assert;
// script-wide timeout for all wait and waitandfind functions (in ms)
var default_element_timeout = 190000;   //3 mins
var default_pageload_timeout = 240000; //4 mins
var navlinks = ["css-locator-1","css-locator-2"];

//sets element load timeout to 3 mins
$browser.manage().timeouts().implicitlyWait(default_element_timeout);
//sets page load timoeout to 4 mins
$browser.manage().timeouts().pageloadTimeout(default_pageload_timeout);

//test all the main nav page performances
$browser.get("http://www.sitename.com").then(function(){
return $browser.findelement($driver.by.classname("site-theme-example"));
}).then(function(){
  //verifies the nav list has loaded
  return $browser.findelement($driver.by.classname("site-nav-list-example"));
}).then(function(){
  //loops through the navlinks array
  navlinks.foreach(function(val, i, arr){
  //finds and navigates to each navlink page
  return
$browser.findelement($driver.by.classname(navlinks[i])).click().then(function(){
  //verifies that the nav list loaded before moving on
  return $browser.findelement($driver.by.classname("site-nav-list-example")).then(function(){
    //verifies that the page logo footer at bottom of page has loaded
    return $browser.findelement($driver.by.classname("site-footer-logo"));
    })
   })
 })
});

ユーザー用の詳細なヒントが必要ですか?

このドキュメントをPDF形式(373KB)でダウンロードすることもできます。

推奨する詳細情報: