OpenResty XRay がどのようにしてアプリケーションの問題特定と効率化を支援するかをご覧ください。

詳細はこちら LIVE DEMO

このチュートリアルでは、OpenResty の restydoc コマンドラインツールを使用して、Nginx モジュール、Nginx 設定ディレクティブ、Lua API 関数、Lua C 関数、Lua モジュールなどの OpenResty ドキュメントを素早く検索する方法をご紹介します。restydoc ツールは、当初 Perl の perldoc ツールにインスピレーションを得て開発されました。

which restydoc
rpm -qf `which restydoc`

截图 1

restydoc ユーティリティは OpenResty 本体と共にリリースされています。Yum ベースのシステムでは、パッケージ名は openresty-doc となっています。

Debian ベースのシステム(Ubuntu 20.04 など)では、パッケージ名は openresty-restydoc です。

ssh ubuntu20-pkg

which restydoc
dpkg -S `which restydoc`

截图 3

Nginx の標準ディレクティブである rewrite のドキュメントは、以下のように検索できます。

restydoc -s rewrite

-s オプションは「セクション」を意味することにご注意ください。

截图 6

これは Nginx の公式ドキュメントから抽出されたものです。内部的には less ツールを呼び出しています。

スペースキーを使用して次のページに移動できます。

截图 8

q キーで終了します。

截图 9

または、Nginx の標準ディレクティブである listen も検索できます。

restydoc -s listen

截图 10

また、OpenResty の nginx モジュールディレクティブ(例:init_worker_by_lua)も検索可能です。

restydoc -s init_worker_by_lua

標準の Lua 関数も検索できます。

restydoc -s string.find

截图 12

これは公式の Lua 5.1 リファレンスマニュアルから抽出されたものです。

標準の Lua の C API 関数も検索できます。

restydoc -s lua_gc

截图 14

または、LuaJIT の Lua API 拡張機能も検索可能です。

restydoc -s ffi.cdef

截图 15

さらに、OpenResty 独自の Lua API 拡張機能も検索できます。

restydoc -s ngx.re.match

上記のすべての restydoc コマンドで -s オプションを指定しています。これは、表示されるドキュメントがより大きなドキュメントの一部だからです。

Nginx モジュール全体のような大規模なドキュメントも閲覧できます。

restydoc ngx_http_rewrite_module

ここでは -s オプションを指定しません。

予想通り、テキストはかなり長くなります。

スクリーンショット 21

または、Lua モジュール全体も閲覧できます。

restydoc resty.redis

截图 22

これは OpenResty に付属の resty.redis ライブラリです。

スクリーンショット 23

または、Lua ライブラリ名を指定することもできます。

restydoc lua-resty-lrucache

restydoc のすべてのオプションを確認するには、-h オプションを使用してください。

restydoc -h

截图 25

以上が、本日ご紹介したい内容です。このツールが皆様のお役に立てば幸いです。

著者について

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

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

翻訳

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