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

知っておくべきアプリケーション監視のヒント10

New Relic APMの使い方を知ることも大事ですが、New Relicのアプリケーションパフォーマンス監視ソフトウェアの正確な使い方を知ることも大事です。ここではNew Relic APMをマスターし、チームにとって重要なメンバーとなるための、役に立つ10のベストプラクティスをご紹介します。

1. アプリケーションの命名規則を標準化する

New Relicの設定ファイルでアプリケーション名を指定しなかった場合、ほとんどのNew Relicエージェントは「My Application」や「PHP Application」などの、デフォルトのアプリケーション名を使用します。20個のアプリケーションが同じ名前になるような状態を避けるために、アプリケーションをディプロイしたらすぐに、必ず分かりやすいアプリケーション名を選択してください。一貫性と操作性を保つため、New Relicではアプリケーション命名の標準化を推奨しています(例:ステージングのすべてのアプリケーションの名前の末尾に、「Staging」または同様の名前を追加します)。新しいJavaアプリケーションを命名する際には、打ち間違いや命名の誤りの可能性を減らすため、自動的に命名できることが理想的です。

自動的に命名する方法

1. Javaアプリケーションの場合、自動的にアプリケーションを命名するには、次のソースが利用できます。

  • リクエスト属性
  • サーブレットの初期化パラメーター
  • フィルターの初期化パラメーター
  • ウェブアプリケーションのコンテキストパラメーター
  • ウェブアプリケーションのコンテキスト名(表示名)
  • ウェブアプリケーションのコンテキストパス

ニーズに最も適した方法を選択して、これらの手順に従ってください。

2. Java以外のアプリケーションの場合は自動的に命名する方法がないため、エージェントのドキュメントを参照してください。

2. アプリケーションにラベルを追加する

複数の異なるアプリケーションが同じアカウントを使用し、各アプリケーションが複数の環境にまたがっている場合(例:開発、テスト、試作、生産)、概要ダッシュボードで特定のアプリケーションを見つけることが難しい場合があります。そのため、アプリケーションにラベルを追加して、論理グループに分けることが推奨されます。APMを使い慣れた顧客が使用する最も一般的な2つのラベルは、アプリケーション名と環境です。例えば「テスト」の請求アプリケーションを表示する場合は、「請求アプリケーション」(名前ラベル)と「テスト」(環境ラベル)ですぐに絞り込むことができます。

New Relic APMは、アカウントの所有者と管理者がアプリケーションにラベルを付けて、数に制限なく重要なカテゴリに「ロールアップ」できるよう設計されています。またアカウントのアプリケーションリストにあるすべてのアプリケーションを簡単に並べ替え、フィルタリング、閲覧できます。

自動的に命名する方法

  1. New Relic APMのメニューバーから Aplicationsを選択します。
  2. アプリケーションインデックスからShow Labels > Onを選択します。
  3. アプリケーションをカテゴリに割り当てるには、名前の横にある丸の付いたプラスアイコンを選択します。
  4. ガイドラインに従い、「カテゴリ:値」の形式でラベルを入力します。
  5. 新しいラベルを保存するには EnterまたはReturnを押します。
New Relic APM:ラベル
New Relic APM:ラベル

3. アラートポリシーを作成・評価する

主なパフォーマンス指標の急上昇または急降下が発生した場合、組織内の個人やチームに通知を行う必要があります。New Relicのアラートは、エンドユーザーに影響がでる前に問題を検出するダイナミックベースラインなどのツールを提供します。

アラートポリシーは、主に次の2通りの方法で設定できます。

  • スタティック閾値アラートは、アプリケーションの性質が既によく理解されていて、通常の動作がすぐに変更される可能性が低い場合に適しています。Apdex (Application Performance Index)スコア、レスポンスタイム、エラー率、スループットなどは静的な閾値で、これらに対してアラートポリシーを作成できます。
  • ダイナミックベースラインアラートを使用すると、変化する周期的パターンや成長傾向(通常の動作を定義する閾値を設定することを困難にする)に対して、アプリケーションアラートの動的な閾値を判断・設定することが容易になります。これらのアラートは、アプリケーションの過去のメトリックデータからモデル化されたベースラインを使用します。

各アラートポリシーには必要なだけ条件を含めることができます。それぞれのアラート条件には次の3つのコンポーネントが含まれます。

  • 条件のタイプ(メトリック、外部サービスなど)
  • New Relic APMまたはNew Relic Browserが監視するアプリケーションや、New Relic Infrastructureが監視するホストなど、ポリシーのターゲットとなるエンティティ
  • 深刻さが増した際にアラート状態に進行する閾値

アラートを設定したら、実行可能なすべての通知チャネルを利用していることを確認します。結局のところ、誰にも知られていないアラートには意味がありません。アラートの管理は、特定のユーザーグループを作成し、HipChat、JIRA、PagerDuty、Campfire、Webhook、電子メールなど、New Relicの統合アラートチャネルを利用して行うことができます。アラートポリシーを定期的に評価して、常に有効であることを確認してください。

New Relic Alerts:ベースラインアラート
New Relic Alertsのベースラインアラート。

自動的に命名する方法

ダイナミックベースラインアラートを設定するには:

  1. ダイナミックベースラインアラート機能を選択してアプリケーションを選ぶには、こちらに移動します。メトリックのプレビューが予測ベースラインとともに表示されます。
  2. ドロップダウンメニューからアプリケーションのメトリックを選択して、対応するベースラインを表示できます。
  3. 閾値スライダーを使用して、閾値をベースライン予測にどれだけ近づけるかを設定できます。

スタティック閾値アラートを設定するには:

  1. Apdex (Application Performance Index) の設定を変更するには、こちらに移動します
  2. アラート通知チャネルを設定するには、こちらに移動します

4. キートランザクションを特定・設定する

お使いのアプリケーションの性質によっては、他のトランザクションよりも重要なトランザクションがあります。New Relicのキートランザクション機能は、エンドユーザーやアプリケーションのレスポンスタイム、コール数、エラー率など、アプリケーションで最も重要と考えられるトランザクションを厳密に監視するよう設計されています。キートランザクションのパフォーマンスが悪い場合は、通知のアラート閾値レベルを設定することもできます。

自動的に命名する方法

  1. New Relic APMまたはNew Relic BrowserのメニューバーからKey transactionsを選択して、Add moreを選択します。次にアプリケーションとウェブトランザクションを選択するか、選択したトランザクションからTrack as key transactionを選択します。
  2. キートランザクションの名前を入力し、Track key transactionを選択します。
  3. オプション:選択したアプリケーションのエージェントがカスタムアラートに対応している場合は、New Relicが自動的に入力するデフォルト値を使用するか、 キーアラートトランザクションポリシーを編集して Apdex (Application Performance Index)とアラート閾値を設定します。
  4. キートランザクションダッシュボードの詳細を表示するには、View new key transactionを選択します。
apm-key-transaction.png
APMキートランザクションUI

5. デプロイメント履歴を追跡する

開発チームが頻繁に新しいコードを投入する中、それぞれのデプロイメントがパフォーマンスに及ぼす影響を測定することは容易ではありません。これらの変更がアプリケーションに及ぼす影響を正確に把握する方法の1つに、デプロイメントレポートがあります。これらのレポートには、直近のデプロイメントとエンドユーザーやアプリケーションサーバーのApdex (Application Performance Index)スコアへの影響、さらにレスポンスタイム、スループット、エラーが一覧表示されます。また直近のデプロイメントに関するエラーを見つけるために、詳細をドリルダウンして表示することも可能で、チケットを発行したり、チームと詳細を共有したりもできます。

自動的に命名する方法

  1. デプロイメントダッシュボードを表示するには、New RelicメニューバーからAPM >(選択したアプリケーション)> Events > Deploymentsを選択します。
  2. デプロイメント後のパフォーマンスを表示するには、選択したアプリケーションのRecent eventsセクションにあるOverviewダッシュボードに移動します。チャート内の青色の縦線は、デプロイメントを示していることに留意してください。デプロイメントに関する要約情報を表示するには、青色の縦線を指し示します。

6. エラー解析を使用してエラーのトラブルシューティングを開始する

New Relic APMのエラー解析機能は、アプリケーションでレポートされたエラーを分析・解決する便利なツールです。この機能を使うことで、注意を払うべき箇所がすぐに分かります。DevOpsチームは次のことを実施できます。

  • 過去8日間のエラーイベントに関するきめ細かいデータで、アプリケーションの稼働状態を評価します。
  • パラメーターを選択し、表示されたエラーをグループ化またはフィルタリングします(例:エラークラス、エラーメッセージ、ホスト、トランザクション名など)。
  • スタックトレースの詳細をドリルダウンし、特定のエラーを診断・解決します。
  • 8日を超える期間で、エラー率の継続傾向を特定します。
  • リンクを使用して、New Relic Insightsダッシュボードまたは組織のチケット発行システムを通じてエラーデータを共有し、より迅速にエラーを調整・解決します。
New Relic APM:エラー解析
New Relic APMのエラー解析。

自動的に命名する方法

  1. エラー率グラフから始めて、想定外のスパイク、くぼみ、パターンがある場所を大まかに確認します。
  2. 上位5つのエラーチャートの一般的なパターンと、同一期間に発生したアラートを関連付けます。グループやフィルターを使用して、エラーイベントや属性を詳細に調べ、エラーメッセージやトランザクション名のパターンを探します。
  3. エラートレーステーブルの情報に含まれる、関連ホスト、ユーザー、フレームワークコード、顧客属性などの特定のスタックトレースの詳細などを調べて共有します。
  4. 時間範囲内で選択されたグループ(ホスト、エラーメッセージ、カスタムアトリビュートなど)のエラー発生頻度ヒートマップのエラーパターンを特定します。

7. New Relicのレポート機能を活用する

New Relic APMはSLA、デプロイメント、容量からスケーラビリティ、ホスト使用状況レポートなどに至るまで、過去の傾向を浮き彫りにするさまざまなダウンロード可能なレポートツールを提供します。これらは役員や顧客への報告に最適な方法です。レポートの完全なリストを参照し、役立ててください。

自動的に命名する方法

  1. レポートを表示するには、New Relic APMのメニューバーからApplications >(選択したアプリケーション)> Reportsを選択します。
  2. 表示するレポートを選択します。
  3. 共有するレポートを保存またはエクスポートする場合は、Download this report as .csvを選択すると、コンマで区切られた値でレポートが作成されます。

8. 環境を全体的に見る

サービスマップを使用する

アーキテクチャ内のアプリケーションとサービスがどのように接続・通信するかを理解するには、New Relic APMに含まれるサービスマップ機能を使用します。サービスマップは、アプリケーションアーキテクチャを可視化したカスタマイズ可能な描写です。マップには、データベースや外部サービスなど、お使いのアプリケーションの接続先や依存関係が自動的に表示されます。稼働状態インジケータやパフォーマンスメトリックスには、アーキテクチャのあらゆる構成要素についての現在の稼働状態ステータスが表示されます。

自動的に命名する方法

  1. サービスマップにアクセスするには、rpm.newrelic.com/apm > Service mapsに移動します。
  2. マップに名前を付けます。
  3. 必要に応じて、マップ上で並べ替え、グループ化、またはメモ追加を行います。

New Relic Insights

New Relic Insightsはエンドツーエンドの統合ビューを提供し、APMの全データ、エージェントがレポートするメトリックとイベント両方のデータ、そして他のNew Relicエージェントがレポートするデータを、すべてグラフ化してクエリできるようにします。このデータは、APMを含むエージェントのいずれかがNew Relicにデータのレポートを開始した時点で、すぐに利用できます。レポートされたイベントデータは、さらに多くの次元でセグメント化するために、カスタムアトリビュートとカスタムイベントを使用して拡張できます。またサードパーティのデータをInsightsに送信することもできます。

データエクスプローラーを使用することで、すばやくデータ分類やAdd-to-Insightsを閲覧し、数回クリックするだけでNew Relic APMからカスタムダッシュボードにチャートを追加できます。

インシデントの発生中にInsightsを開き、New Relic Query Language(NRQL)を使用して、システムに関する問い合わせをすばやく行います。たとえば、次のことが可能です。

  • ウェブ・モバイルアプリケーション情報、サーバー情報、カスタムメトリックデータ、プラグインメトリックデータを、すべて1つのダッシュボードインターフェイスに表示します。
  • グリッド上でチャートと表を均一なサイズ・配置で表示するダッシュボードを作成します。
  • ダッシュボードに表示する既存のNew Relicチャートを選択するか、独自のチャートや表を作成します。
New Relic Insights:NRQL
New Relic Insights。

自動的に命名する方法

  1. New Relicメニューバーから Dashboards > Create Insightsダッシュボードを選択します。
  2. ダッシュボードのタイトルを入力するか、デフォルト名をそのまま使用します。
  3. オプション:選択したアプリケーションデータのみのダッシュボードを作成するには、Legacy modeチェックボックスをオンにします。
  4. レイアウトにOverviewまたはGridを選択し、Createを選択します。
  5. このユーザーフローを再利用して、チャート、表、データをダッシュ​​ボードに追加します。

9. エージェントを最新の状態に保つ

New RelicのSaaSプラットフォームでは、新機能の追加はエージェントの更新と同じくらい簡単です。大抵の組織では、アプリケーションのアップグレードを環境にディプロイするために、一連のスクリプトが用意されています。同じように、New Relicエージェントのデプロイメントを自動化して、システムを最新の状態に保つこともできます。PuppetとChefスクリプトは、共にデプロイメントフレームワークのよい例で、デプロイメントプロセスや管理プロセス全体の自動化を可能にすることで作業を軽減します。

自動的に命名する方法

アップデートが必要なときに備えて、使用しているエージェントのバージョンを定期的に確認します。最新のエージェントリリースに、必要な修正または機能が追加されている場合は、ダウンロードします。

エージェントを自動的にディプロイするには、次の手順を実行します(エラー防止の方法として推奨)

  1. デプロイメントを処理するための変更が可能な場合、既存のデプロイメントスクリプトを使用します。

    または

    New Relicエージェントのディプロイ・設定に特化したスクリプトを作成・管理します。理想的に、スクリプトは(ロールバックができるよう)ファイルがバージョン管理されているリポジトリからエージェントファイルを取得します。

  2. スクリプトが作成されたら、アプリケーションをシャットダウンします(スクリプトがシャットダウンを処理しない場合)。
  3. デプロイメントスクリプトを実行します。
  4. アプリケーションを起動します(スクリプトが起動を処理しない場合)。
  5. 問題が発生した場合は、スクリプトを実行して以前のバージョンに戻します。

手動によるエージェントのディプロイ:

  1. 現在のエージェントディレクトリをバックアップします。
  2. 更新されたエージェントを、既存のエージェントディレクトリにディプロイします。
  3. 新しい設定ファイルと既存の設定ファイルを比較して、ファイルを変更します。具体的には、ライセンスキーやカスタム拡張機能などが、新しい設定にコピーされるようにします。
  4. アプリケーションを再起動します。
  5. 問題が発生した場合は、バックアップを使用して古いエージェントを復元し、再起動します。

10. ロールベースアクセス制御 (RBAC) とシングルサインオン (SSO) の有効化

New Relicは、割り当てられたロールに関わらず、許可された個人が可能な限り広範囲のデータにアクセスできるようにします。New Relicアカウントの所有者または管理者として、個々のユーザーのアクセス権を制御する、またはRBACを使ってロール全体を制御することができます。実行可能な操作、および変更を行う方法については、ユーザーとロールを参照してください。

セキュリティは組織にとって最大の懸念事項です。従業員のパスワード管理を簡素化し、セキュリティを強化するために、すでに他のシステムでSSOをお使いかもしれません。New Relicでも同じようにする必要があります。アカウントのアドミニストレーターは、New RelicのSSOインテグレーション機能を使用して強力なパスワードの義務づけや、企業の認証メカニズムを通じてのログイン制限を施行できます。このようにして、企業のSSOシステムですでに認証されているNew Relicユーザーは、New Relicのログインプロンプトをバイパスすることができます。

自動的に命名する方法

  1. New Relicに管理者としてログインし、SSO設定ページに移動します。New Relicのタイトルバーから(アカウント名)> Account Settings > Integrations > Single Sign Onを選択します。
  2. SAMLのシングルサインオンページで、New Relic SAMLサービスプロバイダーの詳細を確認します。
  3. SAML IDプロバイダー証明書をアップロードするには、Fileを選択し、標準の手順に従ってファイルを選択・保存します。
  4. ユーザーがシングルサインオンに使用する削除ログインURLをコピーして貼り付けるか、入力します。
  5. 組織のSAMLインテグレーションによってログアウト用のリダイレクトURLが提供される場合は、ログアウト用のランディングURLをコピーして貼り付けるか、入力します。その他の場合は空白のままにします。
  6. 保存してテストし、有効にします。

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

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

推奨する詳細情報: