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

com.wavefront.agent.data.GlobalProperties Maven / Gradle / Ivy

package com.wavefront.agent.data;

import com.wavefront.api.agent.SpanSamplingPolicy;
import java.util.List;
import javax.annotation.Nullable;

/**
 * Unified interface for non-entity specific dynamic properties, that may change at runtime.
 *
 * @author [email protected]
 */
public interface GlobalProperties {
  /**
   * Get base in seconds for retry thread exponential backoff.
   *
   * @return exponential backoff base value
   */
  double getRetryBackoffBaseSeconds();

  /**
   * Sets base in seconds for retry thread exponential backoff.
   *
   * @param retryBackoffBaseSeconds new value for exponential backoff base value. if null is
   *     provided, reverts to originally configured value.
   */
  void setRetryBackoffBaseSeconds(@Nullable Double retryBackoffBaseSeconds);

  /**
   * Get histogram storage accuracy, as specified by the back-end.
   *
   * @return histogram storage accuracy
   */
  short getHistogramStorageAccuracy();

  /**
   * Sets histogram storage accuracy.
   *
   * @param histogramStorageAccuracy storage accuracy
   */
  void setHistogramStorageAccuracy(short histogramStorageAccuracy);

  /**
   * Get the sampling rate for tracing spans.
   *
   * @return sampling rate for tracing spans.
   */
  double getTraceSamplingRate();

  /**
   * Sets the sampling rate for tracing spans.
   *
   * @param traceSamplingRate sampling rate for tracing spans
   */
  void setTraceSamplingRate(@Nullable Double traceSamplingRate);

  /**
   * Get the maximum acceptable duration between now and the end of a span to be accepted for
   * reporting to Wavefront, beyond which they are dropped.
   *
   * @return delay threshold for dropping spans in minutes.
   */
  @Nullable
  Integer getDropSpansDelayedMinutes();

  /**
   * Set the maximum acceptable duration between now and the end of a span to be accepted for
   * reporting to Wavefront, beyond which they are dropped.
   *
   * @param dropSpansDelayedMinutes delay threshold for dropping spans in minutes.
   */
  void setDropSpansDelayedMinutes(@Nullable Integer dropSpansDelayedMinutes);

  /**
   * Get active span sampling policies for policy based sampling.
   *
   * @return list of span sampling policies.
   */
  @Nullable
  List getActiveSpanSamplingPolicies();

  /**
   * Set active span sampling policies for policy based sampling.
   *
   * @param activeSpanSamplingPolicies list of span sampling policies.
   */
  void setActiveSpanSamplingPolicies(@Nullable List activeSpanSamplingPolicies);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy