• /
  • ログイン
  • 無料アカウント

Syntheticモニタリングのベストプラクティスガイド

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

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

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

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

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

設定方法

  1. モニターを追加するには、one.newrelic.com > Synthetics(または、EUベースのアカウントの場合は、one.eu.newrelic.com)に移動し、Create monitorをクリックします。モニタータイプ、名前、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サービスの実施と正常な動作のほか、エラーの発生防止を確保するために不可欠です。Syntheticモニタリングは、選択された各場所ごとにウェブアプリケーションの自動テストを実行し、ダウンタイムインスタンス (「違反」) を記録し、各ページリソースの集計値、結果、そして詳細な統計データを収集することで、このような保証を提供します。

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

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

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

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

操作方法:

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

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

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

操作方法:

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

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

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

操作方法:

  1. one.newrelic.com > Syntheticsの順に移動します。
  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"));
})
})
})
});

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:

問題を作成するこのページを編集する
Copyright © 2020 New Relic Inc.