投稿者:原

私どものAIOps担当では、システム運用を効率化・高度化するため、機械学習の技術を採用した「AIOps」・アプリケーションパフォーマンス管理の「APM」といった製品の、ご提案から構築・導入後の支援まで担当しています。
AIOps担当からは、APM製品である IBM Observability by Instana(以下、Instana) を数回にわたってご紹介していきます。
第4回目では、Instanaの収集対象メトリクスをいくつかピックアップしご紹介いたします。
第1回から3回までのブログにおいても収集対象のメトリクスについて多少触れている箇所がございましたが、本ブログでは改めてご紹介させていただきます。

過去の連載については、以下リンクからご覧いただけます。
第1回目ブログ:APMで監視を高度化。IBM Observability by Instana とは
⇒Instanaの特徴・機能についてご紹介
<第2弾>IBM Observability by Instanaの導入と自動構成
⇒エージェントの導入と、サーバ間・アプリケーション間の依存関係の検出のご紹介
<第3弾>IBM Observability by Instanaによる障害の検出と分析
⇒障害の検出から通知・分析のための機能のご紹介

収集メトリクス

Instanaは大きく3つに分類されたメトリクスを収集いたします。
・Webサイトモニタリング
 EUM(エンドユーザモニタリング)とも呼ばれ、利用者視点でのパフォーマンスを収集
・アプリケーションパフォーマンス
 アプリケーションの呼び出し数、レイテンシーなどのメトリクスを収集
・インフラストラクチャ
 OSおよびプロセスレベルでのCPU/MEM使用率、ミドルウェアごとのメトリクスを収集

Webサイトモニタリング

Webサイトモニタリングでは、利用者がWebサイトにアクセス時のメトリクスを収集することができます。
Webサイト内にInstana JavaScript Agentを組み込むことで、アクセス時に利用者からメトリクスの収集が実施されます。
利用者がアクセスした回数、アクセス時にかかった時間、エラー発生数および内容、読み込んだリソース、HTTPリクエスト、接続ユーザ情報など他様々な情報を得ることができます。
これらの情報から利用者視点でアクセス状況を判断し、誰からどこからのアクセスに問題があったのか、どこに対してのアクセスに問題があったのか識別することができます。
いくつかピックアップし、ご紹介いたします。

[PageViews]
Page LoadsではWebサイトへのアクセス数が時系列にてカウントされます。
Page Transitionsではページ遷移した値が時系列にてカウントされます。
w1.png

[JS Errors]
Webサイト内にて実行されたJavaScriptにてエラーが発生した際にカウントされます。
w2.png

Webサイト内にて発生したエラーメッセージの内容もリスト表示することができます。
w3.png

エラーメッセージを選択することで、エラーが発生している接続先、発生のタイミング、影響を受けたユーザ―数、接続元のOS,ブラウザ、などの情報を得ることができます。
w4.png

[onLoad Time]
Webサイトにアクセス時にロード完了までにかかった時間が表示されます。
w5.png

ホーム画面より遷移したページ毎に上記の指標(PageViews,JS Errors,onLoad Time)を得ることもできます。
w6.png

[HTTP Requests]
Webサイト接続時のHTTPリクエスト結果を得ることができます。
代表的なメトリクスをご紹介いたします。
・ステータスコード w7.png

・HTTPメソッド w8.png

・キャッシュ統計 w9.png

アプリケーションパフォーマンス

アプリケーションとは

上記にてご紹介しているWebサイトモニタリングでは利用者視点のメトリクスを収集しておりましたが、アプリケーションではバックエンド側(サーバ)にて稼働しているサービスのメトリクスを収集いたします。
アプリケーションでは、稼働しているサービスのゴールデンシグナル(トラフィック、エラー率、レイテンシー)などのメトリクスが収集対象となります。
Instanaでは稼働しているソフトウェア(アプリケーションサーバ、データベース、MQなど)をサービスと呼びます。
管理対象のサーバへInstana Agentを導入することで、自動的にサービスを検出しメトリクスの収集を開始します。
任意の複数サービスを1つにグループ化し、まとめてユーザに収集したメトリクスを提供いたします。それをアプリケーションと呼びます。(詳しくは第2回ブログに記載しております。)
個別ソフトウェアのメトリクスおよび複数のソフトウェアをグループ化したシステム全体のメトリクス情報をユーザに提供されます。
これらの情報から従来の監視(CPU,メモリーなど)ではカバーできなかった、アプリケーションレベルでの監視を実現することができます。

サービスメトリクス

サービスは1つの稼働しているソフトウェアを示します(WebSphere Liberty,JBoss,Weblogic,DB2,MySQLなどなど)。
Instanaでは管理対象上で稼働しているサービスを全て閲覧することができます。
本例では参考にcatalogue-demo(Spring Boot)サービスのメトリクスをご紹介いたします。
a0.png

[Calls]
呼び出された数が時系列にてカウントされます。
a1.png

[Erroneous Call Rate]
呼び出されたソフトウェアにエラーが発生した場合、時系列にてカウントされます。
a2.png

発生したエラーメッセージの内容もリスト表示することができます。
a3.png

エラーメッセージを選択することで、発生時の呼び出し、発生のタイミング、遅延などの情報を得ることができます。
a4.png

[Latency]
呼び出されたソフトウェアの処理時間が時系列にて表示されます。
パーセンタイル値で表示されており、50thが中央値となります。
a5.png

エンドポイントでは、サービスが呼び出されたAPIレベルでの状態を得ることができます。
どのAPIがどれほど呼び出されたのか、エラーが発生したのか、処理に時間がかかったのか、細かな情報が表示されます。
a6.png

インフラストラクチャ

インフラストラクチャではバックエンド側(サーバ)のCPU,メモリー、ディスクなど従来型の監視と同じようなメトリクスが対象となっております。
OSレベルではもちろんのこと、稼働しているソフトウェア(Java,DB,MQ)のCPU、メモリー、固有のメトリクスを得ることができます。
管理対象のサーバへInstana Agentを導入することで、自動的にソフトウェアを検出しメトリクスの収集を開始します。

[OS]
CPU,メモリー,オープンファイル数、ディスク容量、NW利用量などのメトリクスが表示されております。
i1.png

[ソフトウェア]
nodejsを参考にご紹介いたします。
CPU,メモリーなどの利用率を時系列にて表示されます。 i3.png

その他にもnodejs固有のメトリクス(プロセスの総使用メモリ,ヒープサイズ,イベントループ,ハンドル数など)を収集いたします。
i4.png

mysqlなどのデータベースサービスではクエリの発行数、接続ユーザ数、テーブルの参照時間、対象のスキーマなどDB固有のメトリクスが収集されております。
i2.png

メトリクスの保存期間

Agentによって収集されたメトリクスの保存期間について説明いたします。
Instanaはデータの種類に応じて保存期間が異なります。

Webサイトモニタリング:7日間保持。サブセットは1年間保持
アプリケーション:7日間保持。サブセットは1年間保持
インフラストラクチャ:粒度ごとに定義されております。
- 1秒と5秒の粒度: 24時間保持-クエリ期間の期間に応じて異なる粒度が使用
- 1分間の粒度: 1か月間保持
- 5分の粒度: 3か月間保持
- 1時間の粒度:少なくとも13か月間保持

参考:データ保持ポリシー

※上記はSaaS版のInstanaの場合です。オンプレミス環境のInstanaは手動で定義することができます。 参考:データ保持ポリシー(オンプレミス環境)

まとめ

利用者視点からのメトリクスからバックエンド(サーバ)側のメトリクスまでをいくつかご紹介いたしました。
Instanaの特徴としてサーバ上で稼働しているソフトウェアを自動的に検出しメトリクスの収集を実施し、既に200種類以上ものソフトウェアが対象となっております。
Instanaは従来の監視だけでは収集できなかったメトリクスを収集できるといった特徴があるといえます。

次回も引き続き、Instanaの機能をご案内していきます。