2 イベント・メタデータ
SetMetadataSample.java
の例では、com.oracle.Hello
というイベントが定義され、注釈@Name、@Description、@Labelおよび@Categoryが設定されます。(このサンプルは、パッケージfrexamples
にあります。)
package frexamples;
import jdk.jfr.Category;
import jdk.jfr.Description;
import jdk.jfr.Event;
import jdk.jfr.Label;
import jdk.jfr.Name;
public class SetMetadataSample {
@Name("com.oracle.Hello")
@Label("Set Metadata Example")
@Description("Demonstrates how to set the annotations "
+ "@Name, @Description, @Label, and @Category")
@Category({ "Demonstration", "Tutorial" })
static class Hello extends Event {
@Label("Message")
String message;
}
public static void main(String... args) {
Hello event = new Hello();
event.begin();
event.message = "Hello Event!";
event.commit();
}
}
この例がfrexamples
というディレクトリにあることを確認し、次のコマンドを使用して、このディレクトリからSetMetadataSample
を実行します:
java -XX:StartFlightRecording:filename=sm.jfr SetMetadataSample.java
jfr print --events Hello sm.jfr
最後のコマンドでは、次のような出力が表示されます:
com.oracle.Hello {
startTime = 23:43:48.444
duration = 0.0177 ms
message = "Hello Event!"
...
}
jfr print
コマンドを使用して、1つ以上のカテゴリに属すイベントをフィルタすることもできます:
jfr print --categories Demonstration sm.jfr
@Name注釈は、イベント・タイプのデフォルトの名前をオーバーライドします。たとえば、@Name注釈が設定されていない場合、この例で作成されるイベントのデフォルトの名前はfrexamples.SetMetadataSample$Hello
になります。「イベントのネーミングのガイドライン」を参照してください。
@Descriptionおよび@Label注釈を使用すると、イベント・タイプに関する情報を追加できます。@Labelは識別子として使用しないでください。かわりに、@Name注釈を使用します。「イベントのラベル付けのガイドライン」を参照してください
@Category注釈を使用すると、イベント・タイプに1つ以上のカテゴリを関連付けられます。カテゴリを1つ指定する場合は、文字列を使用します。カテゴリを複数指定する場合は、文字列をカンマで区切ってリストにし、中カッコ({}
)で囲みます。「カテゴリ」を参照してください。