デジカの宮澤です。New Relic の Advent Calendar 1日目です。
New Relic についてあまり日本語で情報をみかけないのと、APM (Application Performance Monitoring) 以外についての情報もあまりみないので、この Advent Calendar では僕の知る範囲で、New Relic について説明していきたいと思います。僕のパートは、知見というより、マニュアル的な解説になると思います。実例は他の方、是非お願いします。
2015年11月12-13日に行われた Future Stack 15 で新機能など発表されたこともあり、そのタイミングでサイトやマニュアルが結構、変わりました。そのため、多少書いている内容に齟齬があるかもしれません。気づいた方は指摘していただけると助かります。
では、初日ということで、1日目は、軽めにざーっと New Relic について説明してみたいと思います。
また、New Relic 自体、かなり頻繁に UI や機能やプランが変わるので、2015年12月初旬時点と情報ということもご了承ください。
New Relic とは
New Relic という名前は、New Relic 社の名前でありかつ、New Relic 社が運用するソフトウェアのパフォーマンス分析サービスの名前です。分析サービスと一言で言っても、単一のサービスではなく、複数のサービスの総称です。
2016年4月21日2015年12月の時点で、New Relic には、7 つのサービス + α があります。New Relic の Lite (無料)アカウントで、だいたい無料で使えます。(データ保持期間や機能制限はあるけど)
- New Relic APM (エーピーエム)
- アプリケーションのパフォーマンス監視サービス
- New Relic Browser
- ブラウザのパフォーマンス監視サービス
- New Relic Servers
- サーバーのパフォーマンス監視サービス
- New Relic Mobile
- モバイルアプリ(iOS, Android)のパフォーマンス監視サービス
- New Relic Synthetics (シンセティクス)
- Webアプリ、サイトの疎通、障害監視サービス
- New Relic Plugins
- サードパーティによる各種プラグイン
- New Relic Insights (インサイト)
- リアルタイム分析ツール(ダッシュボード)
あと、製品ではないが Alert(警告、エラー管理)サービスは製品間を跨いだサービスになっています。Insights もどちらかというと、横断的なサービスですね。
それでは、各サービスをひとつづつ説明していきます。
New Relic APM (Application Performance Monitoring)
その名のとおり、アプリケーションのパフォーマンスを監視するサービス。
New Relic と言ってみんなが言うのが、これ。とりあえず、エージェントと呼ばれるライブラリを利用したいアプリのサーバーにデプロイするだけで、後は自動的にデータを収集し、New Relic のサーバーに送り始める。そして、New Relic のAPMの画面で見れる。Rails 使っているなら、gem を追加して、設定ファイルにライセンスキーを設定するだけで終わり。すごい簡単。
インストールするだけで、トランザクションやスループット、エラー率なんかが簡単にわかる。New Relic をぼーっと眺めているだけで、時系列で大体の傾向はわかると思う。
エージェント
エージェントとは、アプリケーションのデータを収集し、New Relic のサーバーへ送るプラグラムのこと。Java, .NET, Ruby, PHP, Python, Node.js 言語のエージェントが用意されています。その他の言語も Agent SDK という物が用意されているので、それを使えばデータ収集できるっぽいです。上記の言語で最近の環境なら、問題ないと思うけど、結構古い環境の方は、試す前に、エージェントのマニュアルにある各言語のサポート環境を見ることをお勧めします。
ちなみに、最近よく Golang は?って言われるけど、まだ公式には対応していない。コミュニティで開発しているものはあるらしいので、気になる人は使ってみてはどうでしょう。Github:sky-uk/newrelic-go-agent
プランは、Lite (無料) と Essential(有料) Pro (有料)
プランとして、Lite (無料) と Essential(有料:1ホストあたり 年契約: 75 USドル/月、月契約: 119 USドル/月) と Pro (有料:1ホストあたり 年契約: 149 USドル/月、月契約: 199USドル/月。時間契約: 0.29USドル/時間(最小149USドル/月))。AWS, Heroku, Azure とかを使っている人には、Standard (無料)が使えるらしい。
※ 2015年2月くらいまで公式サイトに、月額プランの料金も乗っていたが、2016年4月時点では、年契約(annual subscription)のみの金額しか載っていない。
ホストの定義は、物理サーバーもしくは仮想マシンのインスタンス。Docker コンテナのインスタンスはカウントされないらしい。
Lite(無料) と Essential(有料) と Pro(有料)の違いは、データ保持期間と機能制限とサポート。
Lite は、New Relic サイト上で見れるのは、直近24時間のデータだけ。Essentailは、3日。Standardは、1週間。Pro は制限ありません。
公式サイトには、 Essential は、期間限定で利用可能なプロモーション価格とあります。なので、たぶん、一定期間このプランで使っていると、New Relic から問い合わせがくると思う。
英語だけど、Products, pricing, and billing というページに多少、Standard について載ってます。
Lite と Essential と Pro の詳しい機能や制限の違いは、公式サイトの pricing ページの Capabilitiesを見てください。
APM は、14日間無料で、Pro と同様の機能が使えるので、気になる方は試してみるといいと思います。
New Relic Browser
その名の通り、ブラウザのパフォーマンスを計測するサービス。
分かりやすくいうと、Google Analytics 的なもの。HTMLに JS を埋め込み、それがデータを収集して、New Relic に送信している。
APM をデプロイすると、デフォルトで、HTML に JS が埋め込まれるようになる。また、収集されたデータは、Insights でも使える。
プランは、Lite (無料) と Pro (有料)
プランとして、Lite (無料) と Pro (有料:50万ページビューまで:年額契約: 149 USドル/月、月額契約: 199 USドル/月)。
Lite(無料) と Pro(有料)の違いは、データ保持期間と機能制限とサポート。
Lite のデータ保持期間は、1日。Pro は、90日。Pro では、主に、セッショントレース、JS のエラー、Ajax リクエストのモニタリングができるようになる。
詳しくは、公式サイトの価格表の Capabilitiesをみてください。
New Relic Servers
注: 2017年11月4日にサービス停止。(既存有料ユーザーは、2018年5月5日まで)。サーバー監視の後継は、New Relic Infrastructure があるので、そちらを使う。
サーバーの監視ツール。CPU使用率や DISK IO、ネットワークIO、メモリ、ディスク使用率なんか見れる。使うには、APMのエージェントとは別途専用のパッケージをインストールする必要がある。また、最近、Docker タブも追加された。AWS などのサーバーリソースの監視もここでできるようになりそう。
プラン
New Relic Server は、New Relic APM のプランに依存するっぽい。無料でも使えるけど、たぶん、データはそんなに貯められない気がする。
New Relic Mobile
モバイルアプリのパフォーマンス監視ツール。アプリやネットワークのパフォーマンス、メモリ使用状況、クラッシュレポート など、OS、デバイス ごとにみることができる。また、今後、バージョントレンド機能といって、アプリのバージョンを並べて、リリース後の特定の期間における各バージョンごとの、新規インストール率、更新率、エラー率などを簡単に比較できる機能も追加される。
無料でも使えるけど、かなり機能制限があるみたい。
プラン
有料 (Enterprise)は、10万アクティブユーザーの1アプリ辺り: 年額契約 999 USドル/月。月額契約: 1,499 USドル/月。
Lite(無料) と Enterprise(有料)の違いは、データ保持期間と機能制限とサポート。
Lite のデータ保持期間は、1日。Enterprise は、90日。Enterprise では、主に、クラッシュレレポート、ユーザーインタラクションのトレース、ネットワークエラーや地域、デバイス別のパフォーマンスのモニタリングなどができるようになります。詳しくは、公式サイトの価格表の Capabilitiesをみてください。
New Relic Synthetics
外部から、Web アプリやサービスの状態管理を行うためのツール。すごい簡単にいうと、Pingdom + α みたいなサービス。
これは、上とは毛色がすこし違って、何かをどこかにインストールする必要はない。New Relic Synthetics の画面で、設定を行うだけ。Ping 機能は無料で使えます。その他に、実際のブラウザ(Chrome)を通して、ページの読み込みが正常にできるか、確認する機能 (Simple Browser) や、Selenium 用のスクリプトを書いてそれを、実行してくれる機能 (Scripted Browser) もあります。それらは有料。
Pingdom を使っている人は、一回試してみてもいいかもしれません。無料だし。
また、有料機能は、2週間は好きに使えるらしいので、試してみたい方は使ってみるといいと思います。
プラン
有料 (Pro)は、1万アドバンスドチェックまで: 年額契約 69 USドル/月。月額契約: 99 USドル/月。
Lite(無料) と Pro(有料)の違いは、データ保持期間と機能制限とサポート。
Lite のデータ保持期間は、2週間。Pro は、13ヶ月。Pro では、実ブラウザからの 疎通確認や Selenium ベースの遷移チェックができます。詳しくは、公式サイトの価格表の Capabilitiesをみてください。
New Relic Insights
Insights は、上で紹介した各製品のデータをクエリ(※NRQL)を書いて、いい感じに表示してくれるダッシュボードサービス。謳い文句は、リアルタイム分析プラットフォーム。
※ NRQL は、New Relic Query Language の略で、SQL の文法 (Select, From, Where とか)をベースに、独自の要素を取り入れているクエリ言語。
Insights は、他のサービスのページの表示では物足りなかったり、もっとこういうデータの見方をしたいという時に役立つツール。また、他のツールはエンジニアよりのツールに対して、Insights は、よりビジネスよりのダッシュボードツールとして役立つと思う。BI ツール的な立ち位置を目指していると思う。
このダッシュボードの強みは、各 New Relic 製品のデータを横断的に1枚のダッシュボード上に表示できることだと思う。それにより、各ツールではバラバラに表示されるデータを総合的な視点で判断ができるようになります。
クエリ元のデータソースとしては、以下のデータを利用できます。
- APM: トランザクション、エラー
- Browser: ページビュー
- Mobile: クラシュデータ、インタラクションデータ、セッションデータ
- Synthetics: チェックデータ、リクエストデータ
また、上記以外のデータの独自データも送信するための API は用意されています。
Data Explorer っていう収集したデータのサンプルを見れるページがあるんだけど、これが、Future Stack 15 (New Relic のユーザーカンファレンス)に併せて、大幅に変更になりました。大分変わったので、前見たことがある人は、一回見てみると便利になっているので、驚くと思います。
プラン
Insights は、APM Pro を使っている人なら無料で使えたと思う。
Insights のプランは非常に分かりにくく、一応、7500万イベントまで、月額 250 USドルと公式サイトに書いてある けど、今後変わる可能性はありそう。(11月まで違ったから)
よって、現状、無料と有料で、機能的な違いはありません。イベント数の上限(がいくらかわからないけど)超えると、有料になるっぽい。
おわりに
ということで、非常にざっくりと少しづつ、各製品を説明してみました。物足りないとは思いますが、少しでも、各製品がどういったものかイメージができたなら、よかったです。
後日の Advent Calendar で、知っている範囲で各製品を説明していきたいと思います。そちらもよろしくお願いします。