Module jdk.jfr
Package jdk.jfr

Class EventType


public final class EventType extends Object
Describes an event, its fields, settings and annotations.

The following example shows how the EventType class can be used to print metadata about an event.

for (EventType eventType : FlightRecorder.getFlightRecorder().getEventTypes()) {
    System.out.println("Event Type: " + eventType.getName());
    if (eventType.getLabel() != null) {
        System.out.println("Label: " + eventType.getLabel());
    if (eventType.getDescription() != null) {
        System.out.println("Description: " + eventType.getDescription());
    StringJoiner s = new StringJoiner(" / ");
    for (String category : eventType.getCategoryNames()) {
    System.out.println("Category: " + s);
    System.out.println("Fields: " + eventType.getFields().size());
    System.out.println("Annotations: " + eventType.getAnnotationElements().size());
    System.out.println("Settings: " + eventType.getSettingDescriptors().size());
    System.out.println("Enabled: " + eventType.isEnabled());
  • Method Details

    • getFields

      public List<ValueDescriptor> getFields()
      Returns an immutable list of descriptors that describe the event fields of this event type.
      the list of field descriptors, not null
    • getField

      public ValueDescriptor getField(String name)
      Returns the field with the specified name, or null if it doesn't exist.

      It's possible to index into a nested field by using "." (for instance "").

      name - of the field to get, not null
      a value descriptor that describes the field, or null if the field with the specified name doesn't exist
    • getName

      public String getName()
      Returns an identifier for the event (for example, "jdk.CPULoad").

      The identifier is the fully qualified name of the event class, if not set using the Name annotation.

      the name, not null
      See Also:
    • getLabel

      public String getLabel()
      Returns a human-readable name (for example, "CPU Load").

      The label of an event class can be set with Label.

      the label, or null if a label is not set
      See Also:
    • getId

      public long getId()
      Returns a unique ID for this event type in the Java Virtual Machine (JVM).
      the ID that is used in the JVM
    • getAnnotationElements

      public List<AnnotationElement> getAnnotationElements()
      Returns an immutable list of annotation elements for this event type.
      an immutable list of annotations or an empty list if no annotations exists, not null
    • isEnabled

      public boolean isEnabled()
      Returns true if the event is enabled and at least one recording is running, false otherwise.

      By default, the event is enabled. The event can be enabled or disabled by setting the enabled setting to true or false, programmatically or by using a configuration file. The event can also be disabled by annotating event with the @Enabled(false) annotation.

      true if event is enabled, false otherwise
      See Also:
    • getDescription

      public String getDescription()
      Returns a short sentence that describes the event class.

      The description of an event class can be set with Description.

      the description, or null if no description exists
      See Also:
    • getAnnotation

      public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
      Returns the first annotation for the specified type if an annotation element with the same name is directly present, otherwise null.
      Type Parameters:
      A - the type of the annotation to query for and return if present
      annotationClass - the Class object that corresponds to the annotation type, not null
      this element's annotation for the specified annotation type if directly present, else null
    • getEventType

      public static EventType getEventType(Class<? extends Event> eventClass)
      Returns the event type for an event class, or null if it doesn't exist.
      eventClass - the event class, not null
      the event class, or null if class doesn't exist
      IllegalArgumentException - if eventClass is an abstract class
      IllegalStateException - if the class is annotated with Registered(false), but not manually registered
    • getSettingDescriptors

      public List<SettingDescriptor> getSettingDescriptors()
      Returns an immutable list of the setting descriptors that describe the available event settings for this event type.
      the list of setting descriptors for this event type, not null
    • getCategoryNames

      public List<String> getCategoryNames()
      Returns the list of human-readable names that makes up the categories for this event type (for example, "Java Application", "Statistics").
      an immutable list of category names, or a list with the name "Uncategorized" if no category is set
      See Also: