Throttle (Java SE 26 & JDK 26)
Description: declaration: module: jdk.jfr, package: jdk.jfr, annotation type: Throttle
Keywords: jdk.jfr.Throttle class

# Annotation Interface Throttle

@Target(TYPE) @Inherited @Retention(RUNTIME) public @interface Throttle
Event annotation, specifies the maximum rate of events per time unit, (for example, `"100/s"`).

If the event class annotated with `Throttle` is filtered by other settings, such as a `Threshold` or a user-defined setting, the throttling will happen after those settings have been applied.

Since:
  25

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NAME`
  Setting name `"throttle"` for configuring throttled events.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `value`
  The throttle rate, for example `"100/s"`.

- ## Field Details

  - ### NAME

    static final String NAME
    Setting name `"throttle"` for configuring throttled events.
    See Also:
      - Constant Field Values

- ## Element Details

  - ### value

    String value
    The throttle rate, for example `"100/s"`.

    String representation of a non-negative `long` value followed by a forward slash ("/") and one of the following units:

    - `"ns"` (nanoseconds)
    - `"us"` (microseconds)
    - `"ms"` (milliseconds)
    - `"s"` (seconds)
    - `"m"` (minutes)
    - `"h"` (hours)
    - `"d"` (days)

    Example values, `"6000/m"`, `"10/ms"` and `"200/s"`.

    Specifying zero, for example `"0/s"`, results in no events being emitted.

    Specifying `"off"` (case-sensitive) results in all events being emitted.

    Returns:
      the throttle value, default `"off"`
    Default:
      `"off"`