我正在为带有注释的grails应用程序配置dropwizard度量标准。使用指标,AspectJ的插件(https://github.com/astefanutti/metrics-aspectj)Dropwizard度量标准不起作用的grails注释
在`BuildConfig.groovy”
compile 'io.astefanutti.metrics.aspectj:metrics-aspectj:1.1.0'
compile 'io.dropwizard.metrics:metrics-core:3.1.0'
compile 'io.dropwizard.metrics:metrics-graphite:3.1.2'
compile 'io.dropwizard.metrics:metrics-annotation:3.1.2'
在这里,我尝试将数据上传到服务器Graphite
,本地运行,我有以下。 我已经配置了一个控制器如下与石墨记者。当我运行的应用程序也不会报告任何东西,我试图找出在我去错了,还是请让我知道,如果有一个是另一种方法(例如,使用Spring AOP)
import com.codahale.metrics.ConsoleReporter
import com.codahale.metrics.MetricFilter
import com.codahale.metrics.MetricRegistry
import com.codahale.metrics.SharedMetricRegistries
import com.codahale.metrics.annotation.Metered
import com.codahale.metrics.annotation.Timed
import com.codahale.metrics.graphite.Graphite
import com.codahale.metrics.graphite.GraphiteReporter
import io.astefanutti.metrics.aspectj.Metrics
import java.util.concurrent.TimeUnit
@Metrics(registry = "graphiteregistry2")
class GlassdoorController {
final MetricRegistry registry = new MetricRegistry();
GlassdoorController() {
final Graphite graphite = new Graphite(new InetSocketAddress("127.0.0.1", 2003));
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
.prefixedWith("grails.example.com")
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.filter(MetricFilter.ALL)
.build(graphite);
reporter.start(1, TimeUnit.SECONDS);
ConsoleReporter reporter1 = ConsoleReporter.forRegistry(registry)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
reporter1.start(5, TimeUnit.SECONDS)
SharedMetricRegistries.add("graphiteregistry2",registry);
log.info(SharedMetricRegistries.getOrCreate("graphiteregistry2"));
}
@Metered(name = "reviewspage")
@Timed(name = "reviewspagetimed")
def reviews() {
//business logic
}
你能看到任何数据与tcpflow传入2003年从应用程序? – kwarunek
AFAIF,'ConsoleReporter'和'GraphiteReporter'应该输出相同的数据,当'ConsoleReporter'输出一些东西时,我会得到空行 – simplyblue