Package org.springside.examples.showcase.demos.metrics

Source Code of org.springside.examples.showcase.demos.metrics.MetricsManager

/*******************************************************************************
* Copyright (c) 2005, 2014 springside.github.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
*******************************************************************************/
package org.springside.examples.showcase.demos.metrics;

import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.springside.modules.metrics.MetricRegistry;
import org.springside.modules.metrics.exporter.JmxExporter;
import org.springside.modules.metrics.reporter.GraphiteReporter;
import org.springside.modules.metrics.reporter.ReportScheduler;
import org.springside.modules.metrics.reporter.Slf4jReporter;

/**
* 注册多个Reporter
*
* @author Administrator
*/
public class MetricsManager {

  private ReportScheduler scheduler;

  private JmxExporter exporter;

  private boolean graphiteEnabled = false;

  @PostConstruct
  public void start() {
    Slf4jReporter slf4jReporter = new Slf4jReporter();
    scheduler = new ReportScheduler(MetricRegistry.INSTANCE, slf4jReporter);

    if (graphiteEnabled) {
      GraphiteReporter graphiteReporter = new GraphiteReporter(new InetSocketAddress("localhost", 2003));
      scheduler.addReporter(graphiteReporter);
    }

    scheduler.start(10, TimeUnit.SECONDS);

    exporter = new JmxExporter("metrics", MetricRegistry.INSTANCE);
  }

  @PreDestroy
  public void stop() {
    scheduler.stop();
  }

  public void setGraphiteEnabled(boolean graphiteEnabled) {
    this.graphiteEnabled = graphiteEnabled;
  }
}
TOP

Related Classes of org.springside.examples.showcase.demos.metrics.MetricsManager

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.