この記事はNew Relic Advent Calendar 2021の7日目の記事です。
概要
最近、株式会社WARCに転職しました。
弊社ではNewRelicを導入しておりますが、これまで自分はほぼ触ったことなく今回あらためてNewRelicを端から触ってみたので、良いと思ったものをピックアップして浅く広く紹介していきます。
ちなみに、インフラよわよわバックエンドエンジニア目線での記事になります。
紹介
AWS上のリソースの確認がしやすい
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2Fc75e3632-e864-fc10-62a7-319108d35c3b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=516e181d6117845acaf20054d6b04c70)
AWS上のリソースを並べてビジュアライズしてくれます。一部のリソースだけでなく設定したアラートにひっかかった場合はリソースの色が黄色や赤色になるので、高負荷や障害時などに何が原因になってるのかひと目でわかるのがよさそうですね。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F847c46c4-3441-b178-8c83-e286842c8e69.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d2e9c73548e1f0b612a9fd757f1aae7c)
メトリクスをSQLライクなクエリで参照できます。雰囲気で雑に書いてもそれっぽくなります。
これらがどうやら簡単に接続できるらしいのがよいですね。
リクエスト分析
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F9a4145a4-d26a-7f37-ed4d-d1542bdd819f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d713b7f47b0685663033465c760bf064)
アプリケーションをトレーシングして、どのエンドポイントが遅いのか・またそのエンドポイントの中でもコードのどの箇所に時間かかってるのか調査できます。遅い箇所を具体的な関数やSQLで出してくれます。パフォーマンス改善にめっちゃ役立ちます。
`Slowest average response time`だと純粋にレスポンスタイムが長い順に、 `Most time consuming` にするとリクエスト数とレスポンスタイムを鑑みた順にソートしてくれます。
(画像上では具体名が出ている箇所は白塗りにしました、わかりづらくてすみません;)
クエリ分析
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F74a3017d-3e7d-d425-a335-8353553fecec.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5ab90bed6d81d8067ed9fb06ad1a0fcb)
こちらはDBにむけて投げてるクエリの分析。こちらも遅い順にならべてくれます。
RubyVM
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F2b486392-4f02-4116-c65d-5f10acfc767b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fd795eca158a7ef85ab7771cf8a5c020)
VMの情報もメトリクス化してくれる。素直にcloudwatchだけだとここまでできないのでこれはありがたい。
デプロイ別インフォーメーション
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F2a254b3a-f37e-ad7a-b59b-c4c0f54447c6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=220fbdefaa8cc48cf8cb48e8d263bd38)
設定しておけばデプロイ別のインフォメーションも出してくれます。いつのデプロイでレスポンスタイムがどう変化したのかエラー率がどうなったのかなど。
この機能がなくても色々辿ればだせるけど、こうやって一覧にしてくれるのは嬉しいですね。
ログ確認
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2Fa3346892-4942-59a1-a3dc-3dc06b35a39f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ad3009a3e59dbf9588f179eb941ce7c3)
ログがずらずらっと流れます。フィルタがかけやすやすく、GUIでポチポチもできるしクエリで入力もできます。
スケーリングレポート
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F5a20cfab-556b-133b-c82f-6c906ed50532.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=965941287f3c3baff1f4c06c8aec0c6b)
レスポンスタイムvsスループットのグラフ。スループットが増えてもレスポンスタイムが伸びない(=線が水平に近い)とスケールしていると言えると思います。(図は良くない例ですね)
セッショントレース
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F85138%2F7c14077f-90b4-fdcf-5c33-7a7767f9ea7e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5f40315c48b8827e3aba97e81de27334)
Webフロントでの1セッションの動きをトレースしてくれる。ユーザがどう動いたのかを見れる感じですね。
まとめ
以上紹介記事でした。
他にも、スレッドプロファイルとってくれたり、どこからアクセスされてるとか、Webフロントのどこが遅いなどなど良い機能がたくさんあります。
他社製品にも同じ機能あるよ!などあるかもですが、APMツールとして基本的な機能を抑えつつ使い勝手の良い機能を取り揃えてるのが良いと思いました。
色々導入するのも良いですが、情報が一箇所にまとまってるのは大きなメリットですね。
まだまだ触り始めたばかりで浅い記事になってしまったので、この機会にもっと使っていこうと思います。
(トンチンカンなことを記載していたらすみません)
最後に
株式会社WARCではともにサービスを作っていく仲間を募集しています。
https://www.wantedly.com/companies/company_3787524/projects