我々はまだ知らなかった。NewRelicの真の姿を
TL;DR
- NewRelic は、ただの「監視ツール」じゃなく「オールインワンオブザーバビリティプラットフォーム」である
- 「APM」「ブラウザー監視」「インフラストラクチャ監視」「ログ管理」は既に弊チームに導入している
- 「Synthetic Monitoring」「Errors Inbox」「分散トレーシング」「CodeStream」は今後弊チームに導入していきたい
はじめに
こんにちは、NewRelic のゆるキャラ「ニャリック」のステッカーを会社の PC に貼っている内藤です。
先日、弊社の tomo_nxn さんと一緒に、「New Relic 実践入門 第2版」(翔泳社、3410円)を無料でもらう目的で 担当プロジェクトで New Relic を活用していく目的で、New Relic 日本法人初のハンズオンイベントに参加してきました w
イベント内容については、tomo_nxn さんがまとめてくださっているので、是非こちらを覗いてみてください!(ただの宣伝)
この記事ではイベント内容には特に触れず、まず NewRelic の基本概念とその重要性に焦点を当て、最近なぜこれほど注目されているのかを掘り下げます。次に、基本的な機能やイベントで知った魅力的な機能、そして後から自分で調べて見つけた興味深い機能について紹介します。最後に、実際弊チームが今後取り組んでいくことについて整理できたらと思います〜
そもそもNewRelicって?
NewRelic は、アプリケーションとインフラのパフォーマンスをリアルタイムで監視するための「オールインワンオブザーバビリティプラットフォーム」です。
オブザーバビリティとは、「アウトプットからシステムをどれだけよく理解できるか?」という能力を指します。この能力によって、システムのパフォーマンスや問題点をリアルタイムで可視化し、問題を早期に解決することが可能になります。
はいはい、つまり監視ツールね
「はいはい、つまり監視ツールね」と思ったそこのあなた、少しお待ちを🖐️
なぜなら、NewRelic はただシステムを監視するためのものではなく、そのデータを基にして、もっと深くシステムを理解し、改善していくための洞察を提供してくれるものだからです。
従来の監視ツールが「何が起きたか?」を提供するのに対し、オブザーバビリティツールは「なぜそれが起きたのか?を解明する機能」を提供しています。
つまり、NewRelic は、ただ見守ってくれるだけの監視ツールではなく、システムをよりよく理解し、改善していくための強力なパートナー、私はそんな存在だと思っています!
なぜ急にこん何も注目を集めてるの?
弊社でも最近 NewRelic を導入する運びとなり、私はその時初めて「オブザーバビリティ」という概念を知ったのですが、同時に「なんで急にこん何も注目を集めているんだろう?」って疑問も湧きました。
調べてみると、オブザーバビリティが注目を集めている理由は、主に以下の 2 点であるとされているようです。
-
システムの複雑性の増大
技術の進化により、アーキテクチャが複雑化し、障害の原因特定が難しくなっています。これにより、復旧作業に多くの時間を要するため、迅速な問題解決が求められるようになりました。 -
開発者の業務範囲の拡大
DevOps の普及に伴い、開発者はコードの開発だけでなく、運用にも関与するようになりました。これにより、システムの継続的な監視と迅速な問題解決が一層重要になっています。
上記 2 点の理由からも、「オブザーバビリティ」がビジネスとテクノロジーが成長する中で、今後も重要な役割を果たすことが伺えますね〜!
よく知られている機能たち
これまで、「オブザーバビリティ」についてお話ししてきましたが、このセクションでは、一般的によく知られている(であろう)機能をいくつか紹介したいと思います!
APM
個人的には、NewRelic の代名詞で、「オブザーバビリティ」の真髄だと思っています。
APM 機能を用いてメトリクス、イベント、ログ、トランザクション(MELT)を監視することで、アプリの健全性のリアルタイムな追跡と、エラー発生時の迅速な原因究明が可能になります。
ブラウザ監視
従来の監視ツールでもお馴染みのやつですね。
ブラウザー監視機能によって、フロントエンドのパフォーマンスを測定し、ユーザー体験を向上させるためのデータを取得できます。ページロード時間の分析から JavaScript エラーの特定まで、フロントエンドの問題を詳細に把握できます。
インフラストラクチャ監視
これも従来の監視ツールでもお馴染みのやつですね。
インフラストラクチャ監視によって、サーバー、仮想マシン、コンテナなどのリソースの健康状態を一元的に視覚化できます。リソースの使用状況やパフォーマンスの変動を追跡し、システム全体の最適化を行うことができます。
ログ管理
これも従来の監視ツールでもお馴染みのやつですね。
ログ管理機能によって、ログデータを一元的に集約し、検索や分析を容易に行うことができます。
実はこんな機能もあるんやで
NewRelic には前章で紹介したような基本的な機能に加えて、以下のような魅力的な機能が存在します!
これらの機能は従来の監視ツールではあまり見かけないもので、NewRelic の「オブザーバビリティ」のコンセプトをより強く感じる機能のように思います!
Synthetic Monitoring
Synthetic Monitoring によって、実際のユーザーの行動をシミュレートしてウェブサイトやアプリケーションのパフォーマンスをテストできます。これにより、ユーザーに影響を与える前に問題を特定し、修正できます。
Errors Inbox
Errors Inbox によって、アプリケーションのエラーを一箇所に集約し、効率的にエラーを解析し、対応できます。これにより、エラーの優先順位付け、割り当て、追跡が簡単になり、エラー対応のプロセスがスムーズになります。
分散トレーシング
分散トレーシングによって、マイクロサービスや大規模分散システムのパフォーマンスを追跡・分析できます。これにより、複数のサービスやコンポーネントを跨ぐリクエストのフローを視覚化し、それぞれのコンポーネントでの処理時間や通信の遅延をリアルタイムで監視できます。
CodeStream
New Relic CodeStream によって、パフォーマンスやエラーに関する問題を IDE 内で特定できます。CodeStream を利用することで、開発者はエラー、パフォーマンスの低下、サービスレベル目標(SLO)の違反などの問題を IDE 内で直接確認できます。
偉そうに言ってるけど、お前は何をやるんだ?
これまで NewRelic について説明してきましたが、弊チームで今後何に取り組んでいくかを少しお話しできればと思います!
これまで、弊チームでは NewRelic の「よく知られている機能たち」の導入を進めてきており、あとは運用に乗せるだけです。
今後は、システムの問題を定期的に振り返りながら、発見した問題の改善に取り組む運用プロセスの構築に力を入れていきます〜!(これでやるしかなくなったw)
一方で、「実はこんな機能もあるんやで」で紹介した機能については、残念ながらまだ導入が進んでいません。
「Synthetic Monitoring」は、主にユーザーの体験を向上させるための機能で、より良いサービスを作るために欠かせないものだと思っているので、なるべく早く導入したいです。
しかし弊チームでは、現時点で特にエラーやアラート対応でしんどい思いをしてるので、今後は「Errors Inbox」「分散トレーシング」「CodeStream」といった機能の導入に積極的に動いていきます〜!(こっちもやるしかなくなった w)
おわりに
NewRelic について長らく偉そうに話してきましたが、弊社も導入したてで、僕もまだまだ知らないことばかりです。
ただ、NewRelic は、きっと弊社のシステムの運用コストを下げ、よりよいものにしていくためのパートナー、きっとそんな存在になってくれるはずです!
今後導入を進めていく中で、多くの成功と失敗があるかと思います。その辺りもいずれ記事に書こう(というより誰かが書いてくれるはず w)と思うので、その辺りが気になる方は是非弊社テックブログをウォッチしててくださいね〜〜
参考文献
レバテック開発部の公式テックブログです! レバテック開発部 Advent Calendar 2024 実施中: qiita.com/advent-calendar/2024/levtech
Discussion