先日、社内勉強会を開催し、Jakarta EE 10の変更点について発表しました。
ところで、スライドはMarp + VSCodeで作成したのですが、Markdownで書いた構成案に肉付けしてそのままスライドを作れたので、すげー便利ですね。
maruTA(Bis5)'s Weblog – Side T:echnology
技術は世界を救う。たぶん。
先日、社内勉強会を開催し、Jakarta EE 10の変更点について発表しました。
ところで、スライドはMarp + VSCodeで作成したのですが、Markdownで書いた構成案に肉付けしてそのままスライドを作れたので、すげー便利ですね。
普段の業務ではモノリシックなアプリを扱っているので"分散"という点はあまり気にしていないのですが、やはり1リクエストでどの辺の処理に時間がかかっているのかを知りたい気持ちがあります。Jakarta EEとの統合を考えるとMicroProfile OpenTracingが第一候補になるかと思います。MP OpenTracingは主にJAX-RSとの統合を意識して作られていると思っていますが、Jakarta Server Facesとの統合を考えるといくつか検討すべき事項があります。
jsf ライフサイクル
で検索してください@Traced
アノテーションを付与したクラス・メソッドの処理時間等を記録する(CDIのInterceptorで実現している)が、@ViewScoped
なバッキングビーン(Serializable
とする必要がある)で使用すると例外が発生する(メモるの忘れた・・・non-serializableなinterceptorは適用できないとかなんとか)この2点を解決できれば有用かと思ったので、休暇を利用してさっと作りました。ライセンスはApache License, Version 2.0
で、Maven Centralにも公開済みです。
https://github.com/maruTA-bis5/opentracing-faces
使い方はREADMEにも書いてあるとおりですが、基本的にMP OpenTracingと同じように使います。
Serializable
でないバッキングビーンや、それ以外のCDI管理Beanなどについては、MP OpenTracingの@Traced
を使用します。@ViewScoped
なバッキングビーンに@Traced
を使うと怒られるので、@TracedSerializable
を代わりに使用します。TracingPhaseListener
を使用します。ちなみに動作確認はWildFly 20.0.1.Finalで行いました。他のアプリケーションサーバーでうまく動かなければ教えてもらえると助かります。