Asakusa Framework0.9.2のinfo.shについて。→Asakusa CLI
AsakusaFW 0.9.2のインキュベーター機能で、info.shというものがある。
これを使うと、Asakusa on SparkやAsakusa on M3BPの実行環境上のバッチ一覧やオペレーター一覧が取得できる。
また、Graphvizによるオペレーターグラフの作成(可視化)も出来る。
※この機能はAsakusaFW 0.10.0でAsakusa CLI(asakusaコマンド)に変わった。[2017-12-02]
まず、build.gradleでincubatingをtrueにしておく。
asakusafw { sdk.incubating true //追加 〜 }
そしてAsakusaアプリをビルド(デプロイメントアーカイブを作成)し、実行環境にデプロイ(ASAKUSA_HOME配下に展開)する。
$ ./gradlew assemble 出来上がったデプロイメントアーカイブを実行環境で展開 $ tar xf asakusafw-XXX.tar.gz -C $ASAKUSA_HOME
そうしたら、実行環境にて、$ASAKUSA_HOME/tools/bin/info.shが実行できる。
$ $ASAKUSA_HOME/tools/bin/info.sh usage: info.sh[<args>] The most commonly used info.sh commands are: draw Generates Graphviz DOT scripts help Display help information list Displays information list See 'info.sh help ' for more information on a specific command.
info.shはWindows開発環境のCygwin上でも使う事が出来る。
この場合、ビルドに使われた作業ディレクトリーを直接ASAKUSA_HOMEに指定するということも出来る。
$ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe" assemble
$ export ASAKUSA_HOME=$(cygpath -ma build/asakusafw-assembly-prod)
$ vi $ASAKUSA_HOME/tools/bin/info.sh _ROOT="$(cd "$(dirname "$0")/.." ; pwd)" _ROOT=$(cygpath -ma $_ROOT) ←追加
これで、ビルド時の作業ディレクトリー(build/asakusafw-assembly-prod)にあるバッチに対してCygwin上から$ASAKUSA_HOME/tools/bin/info.shが実行できる。
バッチ一覧を表示するには、オプションでlist batchを指定する。
$ $ASAKUSA_HOME/tools/bin/info.sh list batch m3bp.example.summarizeSales spark.example.summarizeSales
ここに表示されるバッチは、ASAKUSA_HOME/batchappsの下にあるバッチで、かつ、etc/batch-info.jsonが存在するものらしい。
batch-info.jsonはAsakusaFW 0.9.2でincubatingをtrueにしておかないと生成されない。
Batch DSLの@Batchにコメントやパラメーターの情報が書いてあれば、それも表示できる。
import com.asakusafw.vocabulary.batch.Batch;
import com.asakusafw.vocabulary.batch.Batch.Parameter;
import com.asakusafw.vocabulary.batch.BatchDescription;
/**
* 売上の集計を計算する。
*/
@Batch(name = "example.summarizeSales", comment = "売上集計バッチ", parameters = {
@Parameter(key = "date", comment = "日付", required = true, pattern = "\\d+\\-\\d+\\-\\d+")
})
public class SummarizeBatch extends BatchDescription {
〜
}
↓
$ $ASAKUSA_HOME/tools/bin/info.sh list batch -v m3bp.example.summarizeSales: class: com.example.batch.SummarizeBatch comment: 売上集計バッチ spark.example.summarizeSales: class: com.example.batch.SummarizeBatch comment: 売上集計バッチ
$ $ASAKUSA_HOME/tools/bin/info.sh list parameter spark.example.summarizeSales parameter(name=date) $ $ASAKUSA_HOME/tools/bin/info.sh list parameter spark.example.summarizeSales -v date: comment: 日付 pattern: \d+\-\d+\-\d+ mandatory: true
AsakusaFW 0.9.2のAsakusa on Spark・Asakusa
on M3BPのフローのグラフを生成することが出来る。
なお、Graphvizのdotコマンド(Windowsならdot.exe)にパスが通っている必要がある。
$ $ASAKUSA_HOME/tools/bin/info.sh draw operator spark.example.summarizeSales --encoding UTF-8 | dot.exe -Tpdf -Nfontname=MEIRYO > operator-graph.pdf
-aオプションを付けると、ポート情報等も表示される。
$ $ASAKUSA_HOME/tools/bin/info.sh draw operator spark.example.summarizeSales --encoding UTF-8 -a | dot.exe -Tpdf -Nfontname=MEIRYO > operator-graph.pdf