All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentelemetry.sdk.common.export.MemoryMode Maven / Gradle / Ivy

There is a newer version: 1.44.1
Show newest version
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package io.opentelemetry.sdk.common.export;

/**
 * The memory semantics of the SDK.
 *
 * @since 1.31.0
 */
public enum MemoryMode {

  /**
   * 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. */ REUSABLE_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. */ IMMUTABLE_DATA }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy