Package com.bazoud.metrics.springbatch.meter

Source Code of com.bazoud.metrics.springbatch.meter.MeterHolder

package com.bazoud.metrics.springbatch.meter;

import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import static com.codahale.metrics.MetricRegistry.name;
import static com.bazoud.metrics.springbatch.MetricsHelper.JOB_KIND;
import static com.bazoud.metrics.springbatch.MetricsHelper.METERED_KIND;
import static com.bazoud.metrics.springbatch.MetricsHelper.METRICS_BATCH_GROUP;
import static com.bazoud.metrics.springbatch.MetricsHelper.STEP_KIND;

/**
* @author @obazoud (Olivier Bazoud)
*/
@Component
public class MeterHolder implements DisposableBean {
  @Autowired
  private MetricRegistry metricRegistry;
  private String group = METRICS_BATCH_GROUP;

  private Map<String, Meter> meters = new ConcurrentHashMap<>();

  public void mark(String jobName) {
    mark(jobName, null);
  }

  public void mark(String jobName, String stepName) {
    String metricName = stepName == null ?
        name(group, jobName, JOB_KIND, METERED_KIND) :
        name(group, jobName, STEP_KIND, stepName, STEP_KIND, METERED_KIND);

    Meter meter = metricRegistry.meter(metricName);
    meter.mark();
  }

  @Override
  public void destroy() throws Exception {
    meters.clear();
  }

  public void setMetricRegistry(MetricRegistry metricRegistry) {
    this.metricRegistry = metricRegistry;
  }

  public void setGroup(String group) {
    this.group = group;
  }

}
TOP

Related Classes of com.bazoud.metrics.springbatch.meter.MeterHolder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.