【NewRelic】可観測性ってなんぞ?って話

この記事は何?
「New Relic はじめの一歩 概要編」ウェビナーを視聴したので勉強メモ的なものです。仕事でNew Relicを触る機会があり、可観測性?今まで使っていたDatadogとかの監視と何が違うの?と思いこの動画を見ました。プラスで可観測性の世界に足を踏み入れる時にNew Relic ONEの機能概要を何となく知っておこうと思いざっくり記載しています。


New Relicとは?

New Relic は、モバイルやブラウザのエンドユーザーモニタリングや、外形監視、バックエンドのアプリケーションとインフラモニタリングなど、オンプレやクラウド、コンテナからサーバレスまであらゆるシステム環境での性能管理を実現するプラットフォームです。できることが多種多様にわたるプラットフォームであるため、New Relic で何ができるのかその全体像をまずは理解したい方に最適です。


動画の内容へ

APM (アプリケーション パフォーマンス モニタリング)とは?

以下の3つの機能を持っているサービスのことをAPM領域の製品という。
NewRelicはAPM領域のサービスなんだ。

1. デジタルエクスペリエンスモニタリング (DEM)
エンドユーザーが利用したアプリケーションとITサービスについて、利用状況やパフォーマンスのデータを分析してユーザー体験を可視化すること
2. アプリケーションディスカバリ、トレースおよび診断 (ADTD)
アプリケーションの検出、アプリケーション同士の繋がりを見つけるためのトレース機能、正常性などの診断を行う機能を持っていること
3. アプリケーション、IT資産運用のための人工知能 (AIOps)
アプリケーションを運用していくためのAI機能を持っていること


可観測性 (Observability)とは?

結論:システム全体を見渡せる仕組みのことを可観測性という
ほう。。

まず、可観測性が重視されている理由としてシステムの作り方、運用の仕方が変化してきており、当然作り方が変わればシステムを維持するためのモニタリング(監視の仕組み)も変わってくるという話

これまでのシステムと近年のシステムの違い

これまでのシステム = モノリシックなアプリケーション
大きな単一の機能によって一つの処理を実行するアーキテクチャ。Webやアプリを実現するシステムであれば三層構造(UI、ビジネスロジック、データ)のように役割毎に分かれた構造になっている。
・3サーバー
・1データベース
・オンプレミス
・機能追加などで四半期に1回のデプロイ

近年のシステム = 多数のマイクロサービス
いくつもの機能毎に切り出したマイクロサービスを組み合わせて一つのサービスを作る。
・2,500のコンテナ
・サービス毎のデータベース
・複数のクラウド
・1日に15回のデプロイ

これまでの監視と可観測性の違い

これまでの監視
リソース監視や死活監視といった状態を監視

可観測性が目指すもの
1台のサーバーが動いているかではなく、サービス同士の関係性(サービスが別のサービスを正常に呼び出せているのか、そこに遅延は発生していないかなど)を把握するための全体の見渡し

なるほど、、もっと詳しく

監視とは、
データを収集してそれが正常か異常かを判定し、異常であれば通知を行う。また、収集したデータを分析してシステムの状態が正しいのか、リソースが足りているかなどを判断すること。

ポイント:判定をするための正しい状態(こうあってほしいという状態)が定義できている

しかし、マイクロサービスで様々なサービスを組み合わせたシステムの場合、そもそも何が正しい状態なのか定義することが難しい。

可観測性とは、
「MELT」という情報を収集してシステム全体を可視化することで、何が起こっているのか根本原因を究明しようというように考え方が変わってきたもの。

「MELT」
・Metric:数値統計データ
・Event:いつどのような変更が行われたかといった、時系列データ
・Log: アプリケーションのエラーなどのログデータ
・Trace:サービスAがサービスBを呼び出したといった、複数のサービス間の繋がり

これまでは、「CPU使用率の上昇」や「ディスク容量の逼迫」などの症状を監視していたが、可観測性の世界ではその症状が見つかった時にどのようなことが起きていたのか、より詳細な情報(MELT)を持っておくことにより、「関連するサービス連携に問題があった、このコードに問題があった」などの根本原因までを追うことができる。

現象に対する対症療法(監視)から根本治療(可観測性)へと進化して行きましょうという話でした。


New Relic ONEとは?

可観測性の世界に足を踏み入れるために、NewRelicが提供するライセンス体系のこと。

3つの機能がある

TDP (テレメトリーデータプラットフォーム)

OSSツールとNew Relic エージェントで取得されるあらゆる計測データを保管するテレメトリデータレイク
ペタバイト規模の分析結果をミリ秒以内に応答

NewRelicが持つNRDBというデータベースに全てのデータを入れて、NewRelicのダッシュボード画面からをデータを可視化することができるというもの。

FSO (フルスタックオブザーバビリティ)

New Relicの全機能を利用可能

ブラウザからMOBILE、APM、INFRASTRUCTUREといったNewRelicの機能を全部見ることができる。
顧客体験、アプリケーション、インフラストラクチャなど様々なデータを使って、先ほど理解した可観測性を実現するための機能が使えるというもの。

AI (アプライドインテリジェンス)

AIOpsの技術を活用し、システムの問題やその予兆を迅速に検出し、効率良く理解し、迅速に解決を支援

・Proactive Detection
NewRelicが全てのデータを見ていて、普段とは違う異常な数値があった場合に自動的に異常を検出し通知を行う。ユーザーが閾値を設定する必要はない。

・Incident Intelligence
NewRelicだけでなく他の監視ツールからのアラートも集め、自動的にアラート同士を関連付けし、整理をする。インシデントを適切な対応者に通知する。

各機能の関係性はセミナー資料(p.19)の図を見るとわかりやすい。


最後に、 銀の弾丸ではないよという話

NewRelicは導入すれば色々ある問題が全て解消されるようなものではなく、AppleWatchやFitbitのようなアクティビティトラッカーのようなものだと言っている。例えば、「血圧が高いです」「運動不足です」といったようなことを指摘してくれる。アプリケーションでいうと「この部分でエラーが発生しています」「この処理が遅いです」ということを可視化する。その指摘を元に改善をしていくのはNewRelicを使っているユーザー自身であると。
ただ、突き放しているわけではなく、NewRelicでは導入のお手伝いをしているとのことでした。


以上、私が知りたかった可観測性とNewRelicの機能概要について書きました。ウェビナーではもっと具体的にどのようなことができるのか、スライドとともに説明されていますので、動画視聴をおすすめします。


この記事が気に入ったらサポートをしてみませんか?