Enum MemoryMode

java.lang.Object
java.lang.Enum<MemoryMode>
io.opentelemetry.sdk.common.export.MemoryMode
All Implemented Interfaces:
Serializable, Comparable<MemoryMode>, java.lang.constant.Constable

public enum MemoryMode extends Enum<MemoryMode>
The memory semantics of the SDK.
Since:
1.31.0
  • Enum Constant Details

    • REUSABLE_DATA

      public static final MemoryMode REUSABLE_DATA
      Reuses objects to reduce allocations.

      In this mode, the SDK reuses objects to reduce allocations, at the expense of disallowing concurrent collections / exports.

      Metric Signal: For DELTA aggregation temporality, the memory used for recording and aggregating metric values is kept between MetricReader collect operation, to avoid memory allocations. When the configured maximum cardinality of Attributes is reached, unused Attributes are cleared from memory during collect operation, at the cost of requiring new memory allocations the next time those attributes are used. Allocations can be minimized by increasing the configured max cardinality. For example, suppose instrumentation has recorded values for 1000 unique Attributes while the max cardinality configured was 2000. If after a collection only 100 unique Attributes values are recorded, the MetricReader's collect operation would return 100 points, while in memory the Attributes data structure keeps 1000 unique Attributes. If a user recorded values for 3000 unique attributes, the values for the first 1999 Attributes would be recorded, and the rest of 1001 unique Attributes values would be recorded in the CARDINALITY_OVERFLOW Attributes. If after several collect operations, the user now records values to only 500 unique attributes, during collect operation, the unused 1500 Attributes memory would be cleared from memory.

    • IMMUTABLE_DATA

      public static final MemoryMode IMMUTABLE_DATA
      Uses immutable data structures.

      In this mode, the SDK passes immutable objects to exporters / readers, increasing allocations but ensuring safe concurrent exports.

      Metric Signal: In DELTA aggregation temporality, the memory used for recording and aggregating Attributes values is cleared during a MetricReader collect operation.

  • Method Details

    • values

      public static MemoryMode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static MemoryMode valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null