OpenResty XRay Web コンソールは、実行中のアプリケーションを非侵入型で——コードを一行も変更せずに——監視・トラブルシューティングするためのブラウザ UI です。四つの領域で構成されます:Insights は日次・週次の分析レポートを自動生成し(本ツアーでは 1 つの OpenResty アプリで CPU 関連の問題が 12 件検出されました)、Dashboard は CPU・メモリ指標をリアルタイムに表示、Guided Analysis はオンデマンドの根本原因診断とフレームグラフ生成を行い、Settings は各 Agent を管理します。本記事では OpenResty XRay の Web コンソールを使ったリアルタイムモニタリングと管理の各領域を順に紹介します。

OpenResty XRay の Insights ページで何が見られる?

OpenResty XRay Web コンソールの Insights ページは、XRay がすべてのサーバー上のすべてのアプリケーションに対して自動生成した分析レポートを表示します。

OpenResty XRay Web コンソールの Insights ページ(分析レポート一覧)

ここでは、日次および週次の自動分析レポートを見つけることができます。システムはデフォルトで当日の日次レポートを表示します。週次レポートも表示できます。

当日の日次レポートを表示し週次にも切替可能な Insights ページ(OpenResty XRay)

これらのアプリケーションの詳細情報を折りたたむにはクリックします。

アプリのレポート詳細を折りたたむ OpenResty XRay Insights ページ

ご覧のように、OpenResty XRay はさまざまな種類のアプリケーションを分析できます。

さまざまなアプリ種別を分析できる OpenResty XRay の Insights レポート一覧

「OpenResty」アプリケーションを展開します。

展開された OpenResty アプリの項目(OpenResty XRay Insights レポート)

カテゴリーのタイトルをクリックすると、問題リストの表示/非表示を切り替えることができます。

カテゴリー別に問題リストを展開(OpenResty XRay)

問題はタイプ別に分類されており、関心のある問題カテゴリーを素早く見つけることができます。各カテゴリーの後ろの数字は、そのカテゴリー内の問題数を示しています。

タイプ別に分類し問題数を表示する OpenResty XRay Insights レポート

この OpenResty アプリケーションの CPU 問題を見てみましょう。ここには「CPU」に関連する 12 の問題がリストアップされています。

ある OpenResty アプリで検出された CPU 関連の問題 12 件(OpenResty XRay)

OpenResty XRay の分析レポートの読み方は?

OpenResty XRay の分析レポートを読むには、任意の問題を開いて「More」をクリックします——レポートはホットコードパスを特定するフレームグラフを中心に、平易な説明と修正提案が続きます。問題リスト内の特定の問題の詳細情報を確認するには、

OpenResty XRay の問題リストから特定の問題を選択

「More」をクリックするだけです。

More をクリックして完全な問題レポートを開く(OpenResty XRay)

このホットコードパスは、C 言語レベルの CPU フレームグラフから自動的に導き出されたものです。

ホットコードパスを導き出した C 言語レベルの CPU フレームグラフ(OpenResty XRay)

拡大してご覧ください。

拡大してホットコードパスを特定する C 言語レベルのフレームグラフ(OpenResty XRay)

フレームグラフは、コードの問題の根本原因を特定するのに役立ちます。

フレームグラフで問題の根本原因を特定(OpenResty XRay)

以下は、問題に関するより詳細な説明と提案です。

CPU 問題に関する詳細な説明と修正提案(OpenResty XRay)

このボタンをクリックすると、さらなる分析結果をご覧いただけます。

さらなる分析結果を表示するボタン(OpenResty XRay レポート)

ここでは、使用されたアナライザーやアプリケーション関連の具体的な情報など、より完全なレポート情報が網羅されています。

使用アナライザーやアプリ情報を含む完全なレポート詳細(OpenResty XRay)

ここでは、フレームグラフと他のシステムメトリクスに関連するグラフをご覧いただけます。

OpenResty XRay 分析レポート内のフレームグラフとシステムメトリクスのグラフ

OpenResty XRay 分析レポート内のその他のグラフ

また、完全なターミナル出力もご確認いただけます。

OpenResty XRay レポート内の完全なターミナル出力

OpenResty XRay 分析レポートの完全なターミナル出力部分

OpenResty XRay Dashboard に表示される指標は?

Dashboard はリアルタイムの CPU・メモリ指標に加え、Go などランタイム別・アプリケーション別のグラフを表示します。OpenResty XRay は、アプリケーションのさまざまな問題を迅速に発見し分析するのに役立ちます。「Dashboard」ページにアクセスして、より詳細なパフォーマンス監視データをご覧いただくこともできます。

OpenResty XRay Web コンソールの Dashboard ページを開く

ここでは、システムのさまざまなパフォーマンスデータが表示されています。

OpenResty XRay Dashboard 上のシステムパフォーマンス指標

上部で他のタイプのパフォーマンスメトリクスを切り替えてご覧いただけます。

OpenResty XRay Dashboard で指標の種類を切り替える

これらは CPU のリアルタイム使用状況に関連するグラフです。

OpenResty XRay Dashboard 上のリアルタイム CPU 使用状況グラフ

このグラフを全画面で表示するにはクリックしてください。

CPU グラフを全画面表示(OpenResty XRay Dashboard)

現在、過去 1 時間のデータが表示されています。

OpenResty XRay Dashboard 上の過去 1 時間の CPU データ

これらはシステムの CPU 利用率に関連する詳細なメトリクスです。

システム CPU 利用率の詳細メトリクス(OpenResty XRay)

以下は、アプリケーションタイプ別の基本情報です。これは Go アプリケーションに関するものです。

OpenResty XRay Dashboard 上の Go アプリの基本情報

OpenResty XRay Dashboard 上の各種アプリのパフォーマンス分析グラフ

「Dashboard」ページには、他のアプリケーションのパフォーマンス分析グラフもあります。

OpenResty XRay Dashboard 上のさらに多くのアプリのパフォーマンス分析グラフ

メモリメトリクスの詳細ページに移動します。

OpenResty XRay Dashboard のメモリメトリクス詳細ページを開く

これらのシステムメトリクスはすべてメモリ使用状況に関するものです。

OpenResty XRay Dashboard 上のシステムメモリ使用状況メトリクス

メモリ使用量を眺めるだけでなく、実際のメモリリークをソース行まで追跡するには、本番環境でのメモリリーク検出をご覧ください。

Guided Analysis で高 CPU 使用率を診断するには?

高 CPU 使用率を診断するには、Guided Analysis を開いて「High CPU Usage」を選び、対象アプリとその worker プロセスを選択し、Lua と C/C++ を両方選択したまま開始します——XRay は複数ラウンド(デフォルト最大 300 秒)を実行し、ホットコードパスを指し示すフレームグラフ付きのレポートを生成します。「Guided Analysis」ページでは、システムのパフォーマンス問題をオンラインで分析することができます。「Guided Analysis」ページに移動しましょう。

OpenResty XRay Web コンソールの Guided Analysis ページを開く

ここでは、システムが分析可能な様々な種類の問題を確認できます。

OpenResty XRay Guided Analysis で診断可能な問題タイプ

「High CPU Usage」を選択してみましょう。

OpenResty XRay Guided Analysis で High CPU Usage を選択

「Next」をクリックします。

OpenResty XRay Guided Analysis の次のステップへ進む

ここでは OpenResty アプリケーションを選択します。

Guided Analysis で OpenResty アプリを選択

worker という名前のプロセスを選択します。

高 CPU 分析のため worker プロセスを選択(OpenResty XRay)

アプリケーションのタイプが正しいことを確認します。通常、デフォルト値が適切です。

アプリケーションタイプを確認(OpenResty XRay Guided Analysis)

OpenResty XRay は、複数の異なる言語レベルで分析を行うことができます。ここでは Lua と C/C++ の両方を選択したままにします。

多言語分析のため Lua と C/C++ を両方選択したままにする(OpenResty XRay)

最大分析時間を設定することもできます。ここではデフォルトの 300 秒のままにします。

最大分析時間をデフォルトの 300 秒に設定(OpenResty XRay)

分析を開始します。

ガイド付き高 CPU 分析を開始(OpenResty XRay)

システムは複数のラウンドの分析を継続的に実行します。現在、最初のラウンドの分析を実行中です。

最初のラウンドのガイド付き分析を実行中の OpenResty XRay

最初のラウンドが完了し、2 回目の分析に入りました。この例では、1 回のラウンドで十分です。

2 回目の分析に進む OpenResty XRay

分析を停止します。

ガイド付き分析を停止(OpenResty XRay)

自動生成された分析レポートを確認できます。

自動生成されたガイド付き分析レポート(OpenResty XRay)

ここをクリックすると、過去の分析レポートを閲覧できます。

OpenResty XRay の過去のガイド付き分析レポート一覧を開く

これまでに生成されたすべての分析レポートが表示されます。

OpenResty XRay の過去のガイド付き分析レポート一覧

これは先ほど生成したレポートです。

先ほど生成したガイド付き分析レポート(OpenResty XRay)

このボタンをクリックしてレポートの詳細ページに進みます。

ガイド付き分析レポートの詳細ページを開く(OpenResty XRay)

フレームグラフ付きのガイド付き分析レポート詳細(OpenResty XRay)

OpenResty XRay の Agent を設定するには?

Settings ページでは、Agent を選択してその設定を調整できます。Web コンソールに戻ります。「Settings」ページに移動します。

OpenResty XRay Web コンソールの Settings ページを開く

「Settings」機能を選択します。

OpenResty XRay Web コンソールの Settings 機能を選択

ここでは、選択した Agent の詳細情報を確認し、設定を行うことができます。

選択した Agent の情報を確認・設定(OpenResty XRay)

OpenResty XRay Web コンソール FAQ

OpenResty XRay はアプリケーションのコード変更が必要ですか?

いいえ。OpenResty XRay は非侵入型のツールで、実行中のアプリケーションをそのまま分析します。再コンパイルも計装(インストルメンテーション)もコード変更も不要で、すべて Web コンソールから操作できます。

Insights レポートと Guided Analysis の違いは?

Insights レポートは、すべてのサーバー上の各アプリに対し日次・週次のスケジュールで自動生成されます。Guided Analysis はオンデマンドで、問題タイプ・対象・分析時間を選んで自分でライブ分析を起動します。どちらもフレームグラフと提案付きのレポートを生成します。

OpenResty XRay は Insights レポートをどのくらいの頻度で生成しますか?

日次と週次の 2 つの周期で自動生成されます。Insights ページはデフォルトで当日の日次レポートを表示し、週次レポートにも切り替えられるため、手動トリガーなしで常に最新の分析が用意されています。

OpenResty XRay とは?

OpenResty XRay動的トレーシング製品であり、実行中のアプリケーションを自動的に分析して、パフォーマンスの問題、動作の問題、セキュリティの脆弱性を解決し、実行可能な提案を提供いたします。基盤となる実装において、OpenResty XRay は弊社の Y 言語によって駆動され、Stap+、eBPF+、GDB、ODB など、様々な環境下で複数の異なるランタイムをサポートしております。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵入型の障害分析・トラブルシューティングツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英語版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!