Class Configuration

java.lang.Object
jdk.jfr.Configuration

public final class Configuration extends Object
A collection of settings and metadata describing the configuration.

The following example shows how the Configuration class can be used to list available configurations and how to pass a configuration object to a Recording.

public static void main(String... args) throws Exception {
    if (args.length == 0) {
        System.out.println("Configurations:");
        for (Configuration c : Configuration.getConfigurations()) {
            System.out.println("Name: " + c.getName());
            System.out.println("Label: " + c.getLabel());
            System.out.println("Description: " + c.getDescription());
            System.out.println("Provider: " + c.getProvider());
            System.out.println();
        }
    } else {
        String name = args[0];
        Configuration c = Configuration.getConfiguration(name);
        try (Recording r = new Recording(c)) {
            System.out.println("Starting recording with settings:");
            for (Map.Entry<String, String> setting : c.getSettings().entrySet()) {
                System.out.println(setting.getKey() + " = " + setting.getValue());
            }
            r.start();
        }
    }
}
Since:
9
  • Method Details

    • getSettings

      public Map<String,String> getSettings()
      Returns the settings that specifies how a recording is configured.

      Modifying the returned Map object doesn't change the configuration.

      Returns:
      settings, not null
    • getName

      public String getName()
      Returns an identifying name (for example, "default" or "profile").
      Returns:
      the name, or null if it doesn't exist
    • getLabel

      public String getLabel()
      Returns a human-readable name (for example, "Continuous" or "Profiling"}.
      Returns:
      the label, or null if it doesn't exist
    • getDescription

      public String getDescription()
      Returns a short sentence that describes the configuration (for example "Low overhead configuration safe for continuous use in production environments")
      Returns:
      the description, or null if it doesn't exist
    • getProvider

      public String getProvider()
      Returns who created the configuration (for example "OpenJDK").
      Returns:
      the provider, or null if it doesn't exist
    • getContents

      public String getContents()
      Returns a textual representation of the configuration (for example, the contents of a JFC file).
      Returns:
      contents, or null if it doesn't exist
      See Also:
    • create

      public static Configuration create(Path path) throws IOException, ParseException
      Reads a configuration from a file.
      Parameters:
      path - the file that contains the configuration, not null
      Returns:
      the read Configuration, not null
      Throws:
      ParseException - if the file can't be parsed
      IOException - if the file can't be read
      See Also:
    • create

      public static Configuration create(Reader reader) throws IOException, ParseException
      Reads a configuration from a character stream.
      Parameters:
      reader - a Reader that provides the configuration contents, not null
      Returns:
      a configuration, not null
      Throws:
      IOException - if an I/O error occurs while trying to read contents from the Reader
      ParseException - if the file can't be parsed
    • getConfiguration

      public static Configuration getConfiguration(String name) throws IOException, ParseException
      Returns a predefined configuration.

      See getConfigurations() for available configuration names.

      Parameters:
      name - the name of the configuration (for example, "default" or "profile")
      Returns:
      a configuration, not null
      Throws:
      IOException - if a configuration with the given name does not exist, or if an I/O error occurs while reading the configuration file
      ParseException - if the configuration file can't be parsed
    • getConfigurations

      public static List<Configuration> getConfigurations()
      Returns an immutable list of predefined configurations for this Java Virtual Machine (JVM).
      Returns:
      the list of predefined configurations, not null