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

com.simplaex.metrics.AbstractMetricSender Maven / Gradle / Ivy

The newest version!
package com.simplaex.metrics;

import javax.annotation.Nonnull;

public abstract class AbstractMetricSender> implements MetricsSender {

  private final MetricBuilder metricBuilder;

  protected AbstractMetricSender(final MetricBuilder metricBuilder) {
    this.metricBuilder = metricBuilder;
  }

  abstract protected void send(final String metric);

  @Override
  public void emit(@Nonnull final Metric metric, final double value) {
    final double sampleRate = metric.getSampleRate();
    if (sampleRate >= 1.0 || sampleRate < 1.0 && Math.random() < sampleRate) {
      final String line = metricBuilder.build(metric.getName(), metric.getKind(), metric.getSampleRate(), value, metric.getTags());
      send(line);
    }
  }

  @Override
  public void emit(@Nonnull final Event event) {
    send(metricBuilder.build(event));
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy