- はじめに
- オブザーバビリティとは
- New Relicが実現するオブザーバビリティとは
- New Relicのダッシュボード作成方法
- ダッシュボードの例
- まとめ
- 宣伝
はじめに
こんにちは。マネージドサービス部の福田です。
今回は、New Relicのダッシュボードについてお話しします。
オブザーバビリティは近年注目を集めているトピックですが、実際にどう導入すればいいのか悩む方も多いのではないでしょうか。
この記事では、New Relicのテンプレートダッシュボードからカスタムダッシュボードまで、具体例を交えて紹介しています。
長めの記事になってしまいましたのでお時間のあるときにゆっくりとお読みいただき、少しでもお役に立てる情報があれば嬉しいです。
オブザーバビリティとは
オブザーバビリティとは、システムの内部状態を外部から観測可能にする能力のことです。
システムの健全性、パフォーマンス、そして問題の根本原因を理解することを可能にします
New Relicが実現するオブザーバビリティとは
New Relicは、オブザーバビリティプラットフォームとして、以下の要素を収集します
- メトリクス:システムのパフォーマンスを数値で表現
- イベント:システム内で発生する重要な出来事を記録
- ログ:詳細なシステムの動作記録
- トレース:リクエストの流れを可視化
これらの要素を組み合わせることで、システムの全体像を把握し、問題の迅速な特定と解決が可能になります。
New Relicのダッシュボード作成方法
テンプレートダッシュボードを利用する
New Relicは、ユーザーのニーズに応じた幅広いテンプレートダッシュボードを提供しています
テンプレートを選択するだけで、すぐにシステム情報を可視化できます。
推奨されるダッシュボード | New Relic Documentation
カスタムダッシュボードの作成
テンプレートダッシュボードだけでなくニーズに合わせたカスタムダッシュボードも作成できます。
テンプレートダッシュボードの設定を基に作成することもできるので初めのうちはテンプレートダッシュボードの設定を参考にカスタムダッシュボードを作成する流れがいいかと思います
ダッシュボードの作成
- New Relicにログインし、左側のナビゲーションからDashboardsを選択します。
- 右上のCreate a dashboardボタンをクリックします。
- Create a new dashboardを選択します。
- ダッシュボードに分かりやすい名前を付け、適切なアカウントを選択し、Createをクリックします。
ウィジェットの追加
- 新しいダッシュボードで、+ Add widgetボタンをクリックします。
- Add a chartを選択してクエリビルダーを使用するか、Add text, images, or linksを選択してマークダウンエディタを使用します。
データの可視化
NRQLクエリを使用して、必要なデータを可視化します。
以下はNRQLの活用例です
#メソッド別のクエリ数 SELECT count(*) FROM Transaction FACET name # 平均応答時間 SELECT average(duration) FROM Transaction TIMESERIES #エラー数: SELECT count(*) FROM TransactionError TIMESERIES
各チャートに適切な名前を付け、チャートタイプ(折れ線グラフ、棒グラフ、円グラフなど)を選択します。
レイアウトの最適化
ウィジェットをドラッグ&ドロップで配置し、サイズを調整していきます。
ダッシュボードの共有と管理
- 権限設定: ダッシュボードの編集権限、閲覧権限などを割り振ります。
- お気に入り: 頻繁に使用するダッシュボードをお気に入りに追加して、素早くアクセスできるようにします。
定期的な見直しと更新
- ビジネスニーズの変化に合わせて、定期的にダッシュボードを見直し、更新することが重要です。
- ダッシュボードの設定は簡単にJSONファイルにすることができるのでTerraformと組み合わせ自動作成の仕組み化も可能になります。
補足情報
テンプレートダッシュボード設定情報の確認方法
Editクリック後のページ
NRQLのハンズオン資料
New Relicが提供しているNRQLのハンズオン情報が記載されておりますのでご参照いただければと思います。
ダッシュボードの例
いくつかダッシュボードの例を紹介します。
各項目について、なぜ重要か、実装メリット、何が分かるのかもあわせて紹介します。
1. フロントエンドパフォーマンスの可視化
観点 | 説明 |
---|---|
なぜ実装するのか | ・ユーザーの体験を向上させるため。 ・ウェブサイトやアプリケーションのフロントエンド(ユーザーが直接触れる部分)のパフォーマンスを把握し、改善するため。 |
実装のメリット | ・Apdexスコアの追跡:ユーザーの満足度を数値化 ・ Core Web Vitalsの監視:Googleの検索ランキングに影響する重要指標を追跡 ・環境別の分析:異なるブラウザやOSでのパフォーマンスの違いを把握 |
何が分かるのか | ・ ユーザー体験の良し悪しを数値で確認 ・パフォーマンスが遅い部分や問題が起きている環境の特定 |
Apdexスコア
Apdexスコアは、ユーザーの満足度を0から1の間の数値で表現します。
これにより、サービスの質を客観的に評価できます。
Core Web Vitals
Google検索のランキング要因としても重要なCore Web Vitalsを簡単に追跡できます。
マークダウンエディタを利用してCore Web Vitalsの概要も表示しています。
ブラウザ別・OS別の分析
ユーザーの環境別にパフォーマンスを分析することも可能です。 特定の環境でパフォーマンスが低下している場合の原因究明や最適化が可能になります。
関連情報
フロントエンドパフォーマンスの可視化については以下ブログでも紹介しております。
2. アプリケーションパフォーマンスの可視化
観点 | 説明 |
---|---|
なぜ実装するのか | アプリケーションの内部動作を理解し、パフォーマンスのボトルネックを特定するため。 |
実装のメリット | ・ トランザクションの詳細把握:実行時間、エラー率などを追跡 ・Apdexスコアの監視:サーバーサイドのパフォーマンスを数値化 ・ エラー率の追跡:アプリケーションの安定性を監視 |
何が分かるのか | ・ 遅いトランザクションや頻繁に失敗するトランザクションの特定 ・アプリケーション全体のパフォーマンスと安定性の傾向 ・データベースクエリのパフォーマンスと最適化 |
Apdexスコア
サーバーサイドのApdexスコアを監視することで、バックエンドのパフォーマンスを数値化できます。
Apdexスコアが低下傾向にある場合、詳細なトランザクション分析を行い
最も影響の大きいトランザクションを特定し、最適化を行うことができます。
エラー率
エラー率の監視することでアプリケーションの品質を継続的に向上させ
ユーザー体験を最適化を行うことが出来ます。
トランザクション
アプリケーションの全体的なパフォーマンスを一目で把握できるウィジェットも作成できます。
パフォーマンスの低下やエラーの増加をすぐに検知できます。
関連情報
APMのボトルネックの確認方法およびチューニングについては以下ブログにて紹介しております。
3. インフラストラクチャ情報の可視化
観点 | 説明 |
---|---|
なぜ実装するのか | インフラの状態を把握し、リソースの適切な管理と問題の早期発見を行うため。 |
実装のメリット | ・ リソース使用率の可視化:CPU、メモリ、ディスク使用率などを一目で確認 ・プロセス監視:重要なプロセスの状態を継続的に追跡 |
何が分かるのか | ・ サーバーやコンテナのリソース使用状況 ・異常なリソース消費やプロセスの停止の早期検知 |
EC2リソースサマリー情報
EC2のリソース情報を一覧で確認できます。
正常時は緑色、異常がある数値の場合は赤色で表示するようにしています。
各メトリクスの詳細情報
時系列および現状の最新値を表示しています。
起動プロセス情報
起動しているプロセスが使用しているCPUや起動状態の推移が確認できます。
関連情報
Amazon ECS Fargate環境へのNew Relicのエージェントを導入は New Relicの公式手順通りに行っても
ハマりがちなので参考情報として以下ブログを紹介します。
4. セキュリティ情報の可視化
観点 | 説明 |
---|---|
なぜ実装するのか | システムのセキュリティ状態を常時監視し、潜在的な脅威や脆弱性を早期に検出するため。 |
実装のメリット | ・ セキュリティイベントの集中管理:複数のAWSセキュリティサービスからの情報を一元管理 |
何が分かるのか | ・ セキュリティ脅威の種類と重大度 ・セキュリティイベントの発生傾向と対応方法 |
発生したセキュリティイベントの種類と重大度
AWS Security Hubなどの情報を収集し発生したイベント概要や重篤度を把握できます
脆弱性情報
Amazon Inspector情報を収集し、発生したイベント概要と対応方法を把握できます
CloudTrailの証跡およびAWSコンソールサインイン情報
AWSコンソールへのサインインや重要な操作を監視し、不正アクセスや誤操作を検知します。
関連情報
AWS Security Hub情報の連携方法は以下ブログで紹介しております。 blog.serverworks.co.jp
5. データ転送量の可視化
観点 | 説明 |
---|---|
なぜ実装するのか | システムのデータ使用状況を把握し、コスト最適化とパフォーマンス向上を図るため。 |
実装のメリット | ・ データ使用量の可視化:New Relicへのデータ取り込み量を監視 ・コスト最適化:不要なデータ転送を特定し、コスト削減 |
何が分かるのか | ・ データソース別の転送量 ・時間帯やイベントによるデータ転送量の変動 |
New Relicへのデータ取り込み量
特定のデータソースからの取り込み量が急増した場合、その原因を調査し必要に応じて調整することでコストを抑えつつ必要な情報を収集することができます。
CloudWatchのAPICall状況
CloudWatchのAPICall状況を監視することで、AWSリソースの利用状況とコスト管理に役立ちます。
このダッシュボードでは、CloudWatchへのAPIコール数を可視化しています
関連情報
CloudWatch GetMetricDataの連携方法は以下ブログで紹介しております。
6. アラート通知状況の可視化
観点 | 説明 |
---|---|
なぜ実装するのか | 問題発生時に適切なチームメンバーに迅速に通知し、対応を開始するため。 |
実装のメリット | ・ アラートの一元管理:すべての通知を一箇所で管理・追跡 ・インシデント対応の効率化:重要度に応じて適切なチームに通知を振り分け |
何が分かるのか | ・ 現在発生している問題の数と種類 ・アラートの発生傾向(時間帯、頻度など) |
アラート種別ごとに集計したダッシュボードイメージ
アラートの発生状況を把握することは、システムの健全性を監視する上で非常に重要です
アラートを種別ごとに集計することでアラート管理が可能になります。
まとめ
本記事では、New Relicを活用したオブザーバビリティの要である可視化の実現方法について紹介しました。
オブザーバビリティは「導入して終わり」ではなく継続的な改善が重要です。
そのためには、「なぜオブザーバビリティを導入するのか」という目的を常に意識し、組織全体で取り組むことが成功の鍵となります。
効果的なオブザーバビリティ導入のポイントは以下の通りです
- 明確な目標設定: 監視の目的を明確にし、重要なKPIを定義する
- 段階的な導入: 優先度の高い領域から順に実装し、徐々に拡大する
- チーム全体の参加: 一つのチームだけでなく複数のチーム全員でオブザーバビリティを活用していく
- 継続的な改善: 定期的にダッシュボードやアラートを見直し、最適化する
- 自動化の推進: 繰り返し発生する問題に対する自動化プロセスを検討する
宣伝
弊社では、お客様環境のオブザーバビリティを加速するための伴走型のNew Relic導入支援サービスなどもご提供しております。 もしご興味をお持ちの方は、こちらのサービスご紹介ページの一番下にあるお問合せフォームよりお問合せ頂けましたら幸いでございます。