Synthetic は、ネットワーク外部から実際のユーザーと同様の方法でサーバーにアクセスし、Webサイトのダウンや応答時間の遅延をリアルタイムに計測できる外形監視ソリューションです。単純なURLのリンク切れをチェックするPing監視だけでなく、APIエンドポイントの監視やWebサイトのユーザー操作をスクリプト化したブラウザ監視など、複数のモニタータイプを用意しています。

Syntheticsでは、これらのモニターで無償利用できるチェック数の制限があり、超過した場合は課金の対象になります。これまでは、使用状況を把握するために、NRQLを記述してダッシュボードを作成し、可視化する必要がありました。そこで、Syntheticsの利用状況を容易に把握するために、Synthetic Auditor Nerdpack が公開されました。

本記事では、Synthetic Auditor Nerdpack についてご紹介します。

目的

  • Synthetics のモニタチェック数の最適化
  • Syntheticsのベストプラクティスの活用
  • コストの削減

主な機能

Synthetic Auditorでは、以下のような情報を可視化することができます。

  • アカウント全体のSynthetics使用状況の概要
  • 課金対象のチェック数が最も多いモニター(非Pingタイプのモニター)を含む、高頻度でロケーション数の多いモニター
  • アラート受信されていないモニター
  • 失敗率の高いモニター
  • 重要なシステムで利用が十分でない可能性のあるモニター
    (例:ロケーションが十分でない、頻度が低すぎる等)
  • Syntheticsへの主要な変更を示す監査ログ
SyntheticsAuditor1

 

SyntheticsAuditor2

 

SyntheticsAuditor3

動作させるために何が必要?

  • Node version 16
  • Git
  • NR1 CLIがインストールされていること
  • Nerdpackを更新する権限を持つユーザ
  • Synthetics モニターが設定され実行されていること

始めるには?

  1. GitとNPMがインストールされていることを確認してください。インストールされているか分からない場合は、次のコマンドを実行してください。(インストールされている場合、これらのコマンドはバージョン番号を返します。インストールされていない場合、コマンドは認識されません。)
git --version
npm -v

2. developer centerにアクセスして、NR1 CLIをインストールし、New Relicの開発環境を設定してください。このプロセスには約5分かかります。このプロセスで利用規約に同意していない場合、Nerdpackはビルドされません。

3. 次のコマンドを実行して、このリポジトリをクローンし、New Relicのデータに対して、ローカルで以下のコードを実行します。

git clone https://github.com/newrelic-experimental/synthetics-auditor.git
cd synthetics-auditor
npm install
nr1 nerdpack:uuid -gf --profile=PROFILE_NAME
nr1 nerdpack:serve --profile=PROFILE_NAME

注意:プロファイル名は、nr1 profiles:listを実行することで確認できます。

ターミナルで、Launchar linkを選択してSynthetics Auditorアプリにアクセスします。
あるいは、https://one.newrelic.com/?nerdpacks=local にアクセスして、Apps -> Synthetics Auditorに移動します。

Nerdpackをデプロイする

アプリをデプロイするために必要な手順を含みます。
通常、これらの手順を変更する必要はありません。

アプリのディレクトリでコマンドプロンプトを開き、次のコマンドを実行します。

# If you need to create a new uuid for the account to which you're deploying this app, use the following
# nr1 nerdpack:uuid -g [--profile=your_profile_name]
# to see a list of APIkeys / profiles available in your development environment, run nr1 credentials:list
nr1 nerdpack:publish [--profile=your_profile_name]
nr1 nerdpack:deploy [-c [DEV|BETA|STABLE]] [--profile=your_profile_name]
nr1 nerdpack:subscribe [-c [DEV|BETA|STABLE]] [--profile=your_profile_name]

https://one.newrelic.com にアクセスし、New Relicでアプリを起動してください。

重要:Nerdpackをインストールするアカウントを選択する際には、親アカウントとすべてのサブアカウントを選択することをお勧めします。これにより、Synthetics Auditorアプリがすべてのアカウントを横断してSyntheticsモニターを表示し、アカウントのドロップダウンで特定のアカウントを確認できるようになります。

サポート

 

New Relicは、このプロジェクトをオープンソース化しています。このプロジェクトは、未保証で専用のサポートも提供されません。IssueやContributionは、GitHub上のプロジェクトに報告してください。

皆さんの経験や質問は、Explorers Hubを活用いただくことをお勧めします。Explorers Hubではコミュニティメンバーがソリューションや新しいアイデアを共同で検討しています。

コミュニティ

New Relicは、お客様がNew Relicの従業員や他のお客様と交流し、ヘルプを得たり、ベストプラクティスを共有したりできるオンラインフォーラムを主催・運営しています。Explorers Hubには、公式のNew Relicオープンソースプロジェクトと同様に、関連するコミュニティトピックがあります。

問題点/改善要求

問題点や改善要求は、こちらのリポジトリIssuesタブから提出できます。
新しいIssueを提出する前に、既存でオープンのIssueがないか検索してください。

まとめ

Syntheticsを利用する上で、対象のエンティティに対するモニタが長期間失敗しているにも関わらず、使用制限を超えてチェックし続け、知らない間に超過分が課金対象になっているケースがあります。そのようなケースにおいては、本来長期間失敗しているチェックを無視するために、修正したり無効化する必要があると考えます。このような自体を回避するためにも、Synthetics Auditor Nerdpackを利用して使用状況を可視化し、コストの最適化を図っていきましょう。