はじめに

JFR(JDK Flight Recorder)をご存知でしょうか?

JFRはJavaで利用できる診断およびプロファイルのツールです。 最大の特徴は「Java Virtual Machine (JVM)に統合されていて本番環境で 常時適用出来るほど低負荷 である」ということです。 そのため、なんらかの理由でバッチが落ちた時、Webアプリケーションで突然の大量遅延が発生した時に、あるいは事象の再発を待たずして分析ができるブラックボックス分析を可能とします。

そんなトラブルシュートにはかなり心強い味方なのですが、JDK11まではOracle JDKのみの商用機能でJava SE AdvancedやWeblogicの契約をしてる場合しか本番環境で利用できませんでした。 また、JDK9まではほとんどの拡張機能がJRockit時代から続く非公式APIを利用しており、まとまったドキュメントもあまり無い状態でした。

OpenJDK11では「商用ライセンス」「非公式API」の問題はすでに解決しており、Oracle JDKはもちろんOpenJDKをベースとしたたくさんのディストリビューションで利用可能です。

  • Oracle JDK
  • AdoptOpenJDK
  • Amazon Corretto 11
  • Zulu OpenJDK(なんとOpenJDK8にもバックポートされています!)
  • Liberica JDK

と、他にもいくらでもありますがOpenJDKベースであれば少なくとも11以降は利用できるはずです。そして、ご存知の通りOracle JDK以外は無料で商用利用も可能です。1

しかしながら「ドキュメントの問題」はまだ改善されていません。JFRのドキュメントは依然としてまとまったものがほぼ無くOracleのドキュメント更新も追いついていない状態です。

そのため、私も良く書くやってみた系のブログ記事等で利用方法を知り、詳細に関してはカンファレンスの発表資料とかコミッターの個人ブログとかJEP(JDK Enhancement Proposal)やそのJIRAを見るという混沌とした状況が続いています。 なので「断片的な情報はあるものの網羅的な情報にはアクセスしづらい」というのがJFRの改善すべき課題かと思います。

マイナーな状況が改善されれば、WeblogicのWLDFみたいな感じでJava系のプロダクトがJFRを積極的に採用が進むかもしれませんし、JFRと連携したAPMなんかも登場してくるかもしれません。

というわけで「私の欲しいJFRのまとまったドキュメント」を目指して一冊の電子書籍なりにまとめてみよう、というのがコンセプトになります。

1. もちろんこれらのディストリビューションに商用ライセンスを追加して利用する事も可能です。

results matching ""

    No results matching ""