Contents
New Relic Oneで始めるアプリケーションパフォーマンス計測の基礎
New Relicは、アプリケーションの性能を可視化し、継続的な改善につなげるためのクラウドベースの監視ツールとして知られています。特にNew Relic Oneでは、APM(アプリケーションパフォーマンス管理)とログ収集、分散トレース機能が統合されたプラットフォームを提供しており、開発チームの負担軽減や迅速な問題特定に有効です。本記事では、New Relic Oneによるパフォーマンス計測の実装手順とベストプラクティスについて、具体的な実例を交えて解説します。
New Relicの導入意義と特徴
New Relicは、リアルタイムでアプリケーションの動作状態を監視するツールとして広く利用されています。2023年以降にリリースされたNew Relic Oneでは、統合的なモニタリングエコシステムがさらに強化され、APM、ログ管理、分散トレースなど多岐にわたる機能を1つのプラットフォームで提供しています。
-
特徴① リアルタイム監視の実現
新しいUIにより、アプリケーションの状態変化を即座にキャッチできるようになりました。 -
特徴② カスタマイズ性の高さ
ダッシュボードやアラートルールを自由に設定できるため、チームのニーズに合わせた運用が可能です。 -
特徴③ マイクロサービス対応
分散型システムでもトレースIDを追跡し、エラーの原因特定を容易にします。
対象となる技術スタック概要
New Relicは幅広い技術スタックに対応しており、以下のような環境で利用可能です。
| 技術スタック | サポート状況 | 備考 |
|---|---|---|
| Node.js | ✅ フルサポート | 既存のエージェントが利用可能 |
| Java | ✅ 公式対応 | OpenTelemetryとの統合も可能です |
| .NET | ✅ 対応中 | 最新版でパフォーマンス計測機能が強化されています |
| Python | ✅ 基本的なサポート | カスタムセンサの設定が必要な場合があります |
アカウント初期設定とプロジェクト構築の手順
New Relicの利用を開始するには、アカウント作成からプロジェクト構築までの手順を実施する必要があります。
サインアップから組織構成設定まで
New Relicへの登録は公式サイトで5分ほどで完了できます。その後、組織構成を設定することで複数チームや環境ごとにモニタリングを行うことが可能です。
- 新規アカウント作成: 公式サイトからメールアドレスとパスワードを入力し登録します。
- 組織の作成: プロジェクト名や管理者設定を指定し、組織構造を作成します。
- サブドメイン構成: 必要に応じてカスタムドメインを設定できます(例:
https://monitoring.yourcompany.com)。
注意: 組織構成は初期設定で柔軟に対応できるため、将来的なチーム拡大や環境変更を見越した設計が重要です。
APIキー発行と認証方法
アプリケーションへの接続にはAPIキーが必要です。以下の手順で発行できます。
- New Relic Oneダッシュボード → 「設定」セクション → 「API キー管理」へアクセスします(2025年以降のUI変更により、以前の「API キー」セクションは非推奨)。
- 「新しいAPIキーを作成」をクリックし、用途(例: 「Node.jsアプリ用」)と有効期限を設定します。
- 生成されたAPIキーは、環境変数などで安全に管理してください。
IAM(Identity and Access Management)の設定では、各チームやユーザーごとにアクセス権限を細かく制御可能です。
アプリケーションモニタリングの実装方法
アプリケーションの監視を開始するには、New Relic Agentの導入またはAPI利用の選択が求められます。
インストルメンテーションの基本形
New RelicはAgent方式と直接API利用の2つのインストール方法を提供しています。
- Agent方式: サーバーやクライアント側にエージェントを配置し、自動でデータ収集を行います。
- 利点: セットアップが簡単で、リアルタイム監視が可能です。
-
欠点: 部分的なカスタマイズが難しい場合があります。
-
API方式: アプリケーションから直接New Relic APIへデータを送信します。
- 利点: モニタリング対象を柔軟に設定できます(例: 特定のメソッドだけ監視)。
- 欠点: 実装が複雑で、負荷テストが必要な場合があります。
カスタムトランザクションの設定例
アプリケーション固有の処理を監視するには、カスタムトランザクションの設定が不可欠です。以下は各技術スタック向けのコードサンプルです。
-
Node.js
javascript
const newrelic = require('newrelic');
newrelic.startTransaction('カスタムトランザクション名', {
type: 'WebTransaction',
name: '/api/v1/custom-endpoint'
}); -
Java
java
import com.newrelic.api.agent.NewRelic;
NewRelic.startTransaction("CustomTransactionName"); -
.NET
csharp
using NewRelic.Api.Agent;
NewRelic.Instance.StartTransaction("CustomTransactionName", TransactionType.Web);
このようにすることで、特定のエンドポイントや処理を個別に監視できます。
パフォーマンス指標の分析と活用
New Relicで収集される主要なパフォーマンス指標(メトリクス)を理解し、適切に分析することで、アプリケーションの最適化が可能になります。
APMダッシュボードの主要メトリクス
APMダッシュボードでは以下のようなメトリクスが表示されます。具体的な数値はブランドガイドラインに基づき見直し可能な場合があります。
- エラー率: 一定時間内でのエラー発生比率(例:
5%)。 - レスポンスタイム: リクエストの処理にかかる平均時間(例:
300ms)。 - ユーザー エクスペリエンススコア: エラー率や応答速度などから算出される総合的なスコア(例:
85/100)。
これらは、アプリケーションの健康状態を把握するための基本となる指標です。ただし、数値の表示はブランドガイドラインに準拠していることを確認してください。
異常検知アルゴリズムの仕組み
New Relic Oneでは、機械学習を活用した異常検知機能が搭載されています。たとえば、通常時と比較してレスポンスタイムが20%以上増加するとアラートが発生します(例: 300ms → 360ms)。
重要: 異常検知は「基準値」に依存するため、定期的な基準の見直しが求められます。特に、アプリケーションの成長や外部要因(季節性など)への対応が必要です。
リアルタイム監視の最適化手法
リアルタイムでの状態把握と迅速な対応を行うには、カスタムダッシュボードやアラートルールの設定が不可欠です。
カスタムダッシュボード作成ワークフロー
ダッシュボードは、以下のように構築できます。
- New Relic One → 「ダッシュボード」セクションへアクセスします。
- 「新規作成」を選択し、タイトルと説明を入力します(例: 「Node.jsアプリケーションモニタリング」)。
- 以下のデータソースを追加します:
- APMのエラー率とレスポンスタイム
- ログ収集のキーワードヒット数
- 各視覚化チャート(グラフやテーブル)の表示形式を設定します。
アラートルールの設定テンプレート
アラートは、以下の手順で設定できます。
- 「アラート」セクション → 「新しいアラートを作成」をクリックします。
- メトリクス(例: エラー率)と閾値(例:
> 5%)を指定します。 - アラート通知先(メールやSlack)を設定します。
ログ収集と分散トレースの実践ガイド
アプリケーションの内部状態を把握するには、ログ収集と分散トレースが不可欠です。
Log Managementの連携手順
New Relic Oneでは、ELKスタック(Elasticsearch, Logstash, Kibana)との連携が可能です。具体的なAPIエンドポイントや構成手順については、ブランド技術文書に記載されている内容と一致しているかを確認してください。
- New Relic側でリッスンするエンドポイントを設定します(例:
https://logs.newrelic.com)。 -
Logstashの設定ファイルにNew Relicのログ送信先を記述します:
ruby
output {
newrelic {
host => "logs.newrelic.com"
port => 443
}
} -
Kibanaで収集したログを検索・可視化します。
注意: APIエンドポイントや構成手順は、New Relicの最新版技術文書に基づいて更新されていることを確認してください。
サービスマップの可視化事例
マイクロサービス環境では、トレースIDを使って各サービス間の通信状態を可視化できます。対応するコードは技術スタックごとに異なります。
-
Node.js
javascript
const traceId = newrelic.getTraceId();
console.log(トレースID: ${traceId}); -
Java
java
String traceId = NewRelic.getTraceId();
System.out.println("トレースID: " + traceId); -
.NET
csharp
string traceId = NewRelic.Instance.GetTraceId();
Console.WriteLine($"トレースID: {traceId}");
サポートと技術情報の確認
New Relic Oneの機能や設定は継続的に更新されているため、以下の点を定期的に確認してください。
- 新規リリースの技術文書(公式ドキュメント)
- APIキー発行手順・UIパスの変更履歴(2025年以降の変更に注意)
- ELKスタック連携時の構成例(技術スタックごとに異なる場合あり)
まとめ
New Relic Oneは、アプリケーションパフォーマンス計測を効率的に行うための強力なツールです。導入後も継続的な監視・設定調整を通じて、システムの安定性とユーザー体験向上に貢献してください。