🐕

New Relic ハンズオン for beginnersに参加してみた

2024/04/19に公開

これはなに

「New Relic 実践入門 第2版」( 翔泳社、3410円)を無料でもらう目的で
担当プロジェクトでNew Relicを活用していく目的で、先月3/1(金)に開催されたNew Relic日本法人初のハンズオンイベントに参加してきました。
そこで学んだ内容やNew Relicについてまとめてみました!

対象読者

  • New Relicって聞いたことあるけどよく分からない人
  • 監視とオブザーバビリティの違いがよく分からない人
  • New Relicの導入を検討している人

私含めて初学者向けの内容となっています!
※規約上、資料を共有することはできません。
ご理解いただけますと幸いです🙇

New Relicとは?

一言で言えば監視ツール
ではなく、オブザーバビリティプラットフォームとイベントでは話しており、
New Relicの公式ページでも監視との違いが解説されていました!

監視ツールとの違いを表にまとめてみました!

特徴 監視 オブザーバビリティ
目的 システムのパフォーマンス監視 システムの深い理解と問題解決
焦点 メトリクスとログの収集 内部状態の把握と関連データの分析
アプローチ 既知の問題の検出 予期せぬ問題の発見と解決
適用環境 シンプルなシステム 複雑なシステムやクラウドネイティブ環境

単純なメトリクスだけを監視するのではなく、アプリケーション・ユーザーの動向をリアルタイムモニタリングし、ビジネスKPIやユーザーの満足度の定量化・可視化までできるとオブザーバビリティの成熟度が高いといえるそうです。
ちなみに担当プロダクトのオブザーバビリティ成熟度は低と中の間くらい。。。もうちょっと頑張りたい。。

実際のイベント内容

タイムテーブル自体はこんな感じでした〜!

タイムテーブル

  • New Relic Agentインストール・監視設定(40分)
  • 基本機能の説明とデモ(35分)
  • 実習タイム(20分)
  • まとめと質疑応答(10分)

ハンズオン内容

Instruqtという外部ツールを用いて環境構築

  • 環境構築&New Relic Agentインストール
    • 詳細については省略

Synthetic Monitoring設定

グローバル拠点、または社内の環境からシステムの稼働状況を定期的にチェックできる機能で、スクラッチのアプリだけでなく、パッケージから構成されるシステムや外部サービスなど幅広いシステムに利用可能

今回は2種類の外形監視の設定しました!どちらも管理画面からサクッと作成できました👏

  • Ping:エンドポイントの死活監視。サイトのエンドポイントを指定して定期的に死活監視を行う
  • Simple Browser: ページ読み込み。サイトのページ読み込み時間や各アセット(画像、CSSなど)の読み込み成否・時間を把握できる

https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/using-monitors/intro-synthetic-monitoring/

New Relic Infrastructureの確認

パブリッククラウド, コンテナ, OS,ミドルウェア, Network, OSS等の情報を収集することができるNew Relicのサービスです。

ハンズオンでは深く触れることはありませんでしたが、個人的にCPU使用率やメモリ使用率のアラート設定、ダッシュボードを利用したメトリクスの確認をNew Relic上で完結できるのはいいなと思いました!
またアプリケーションのデータとサーバーリソースのデータを同時に観察できるので、その相関関係に気づきやすい点は大きなメリットだと感じました。
https://newrelic.com/jp/blog/best-practices/new-relic-infrastructure-analysis

New Relic APMの確認

Application Performance Monitoringの略

  • リアルタイムでのアプリケーションパフォーマンスモニタリング
  • エンドツーエンドのトランザクショントレース
  • エラーレート・レスポンスタイムの可視化
  • アプリケーションのマイクロサービス相互作用のマッピング

この機能を使って、パフォーマンスの改善に大いに役立てています!実行に時間がかかっているgraphqlを特定し、さらにどのSQLで時間がかかっているかを一目で確認することができます。

実際、以下に紹介する記事で取り上げられたスロークエリの問題も、このAPMツールを用いて原因を特定し、改善を実施しました〜👏
(同じチームのkmasuさんが爆改善してくれました)
https://zenn.dev/levtech/articles/36531641f019c8

New Relicでは、APMイベントやブラウザ監視イベントなどのデータにNew Relic独自のクエリ言語であるNRQLを使用します。

また管理画面の右上にある「Ask AI」機能を利用すると、自動でクエリを生成してくれる便利な仕組みがあります。英語でリクエストを入力した方が、より高精度の結果が得られるとのことです。(やはり英語は大事)

New Relic演習

この演習は、運営側から提供されたもので、実際にNew Relicを使用して調査を進める内容でした。
例えば

  • 直近1時間で最もメモリを使ってるプロセスはなんでしょう?
  • APMを見て、最も頻度が多いエラーを特定してみましょう
  • 平均実行時間が最も遅いトランザクションの内訳を確認してみましょう

などの実際の業務にも応用できそうな演習がたくさんあって、非常に良かったです!ただ、ハンズオンでは自分1人の操作だけだったため、理解しにくいデータも少なからずありました。この点は、運営側の工夫次第でさらに良いハンズオン体験になるだろうと思います。

その他

Session Replay

Datadogのようなセッションリプレイ機能について尋ねたところ、多くのお客様からの要望に応えて現在機能開発中とのことです。実際の管理画面では、プレビュー機能として2024年4月9日時点で公開されているため、メジャーリリースも間近である可能性が高いですね。

フロントエンド開発を主に行っている私としては、セッションリプレイを利用してユーザーの動きを確認したり、デバッグに役立てた経験もあるので、メジャーリリースを心待ちにしています🙌

New Relic CodeStream

New Relic CodeStream は、New Relic のメトリクスやエラーなどの機能をコードレベルで確認できる IDE の拡張機能です。
現在、 JetBrains, VSCode などのほとんどの IDE で使用することができます。

エディター内で直接、コードの各メソッドのパフォーマンスデータを確認できる機能や、New RelicのErrors inboxから「Open in IDE」を実行するとIDEが自動で開き、エラーが発生したコードの場所を示すファイルが開かれるという機能があるそうです。。。
まだ関連する記事も少なく、実務での使用例についてもあまり聞かない状況ですが、これからの展開が非常に楽しみな機能です👀
https://docs.newrelic.com/jp/docs/codestream/start-here/what-is-codestream/

まとめ

記事や書籍から学ぶのも良いですが、やはりオフラインのハンズオンイベントで実際に体験するのは格別だなと感じました!
特典が充実していたり、他社の事例や知識をその場で共有できる点も、メインのイベント以外にも多くのメリットがあると思います。
New Relicについては、「これって何?」というレベルから始めても、基本機能の理解や導入のイメージができたのが、最大の収穫でした。

私が担当しているプロダクトにおいて、バックエンドの導入はすでに完了しており、次のステップとして、フロントエンドとインフラの開発に着手し、高いオブザーバビリティを備えたチームを構築することを目指しています!
まだ解決すべき課題は多いですが、NewRelicを活用したデータドリブンなアプローチを通じて、新卒領域で最も信頼されるスカウトサービスを提供することをチームの目標にしています。

2024年4-6月もハンズオンセミナーが盛りだくさんなので、ぜひ参加していきたいです🙌
https://newrelic.com/jp/events

参加特典の本もGET!!🎉

レバテック開発部

Discussion