commit
cb7e8cdbef
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -25,6 +25,7 @@ import org.apache.catalina.Container;
|
|||
import org.apache.catalina.Context;
|
||||
import org.apache.catalina.Manager;
|
||||
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.boot.context.event.ApplicationStartedEvent;
|
||||
import org.springframework.boot.web.context.WebServerApplicationContext;
|
||||
import org.springframework.boot.web.embedded.tomcat.TomcatWebServer;
|
||||
|
@ -38,12 +39,14 @@ import org.springframework.context.ApplicationListener;
|
|||
* @author Andy Wilkinson
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public class TomcatMetricsBinder implements ApplicationListener<ApplicationStartedEvent> {
|
||||
public class TomcatMetricsBinder implements ApplicationListener<ApplicationStartedEvent>, DisposableBean {
|
||||
|
||||
private final MeterRegistry meterRegistry;
|
||||
|
||||
private final Iterable<Tag> tags;
|
||||
|
||||
private volatile TomcatMetrics tomcatMetrics;
|
||||
|
||||
public TomcatMetricsBinder(MeterRegistry meterRegistry) {
|
||||
this(meterRegistry, Collections.emptyList());
|
||||
}
|
||||
|
@ -57,7 +60,8 @@ public class TomcatMetricsBinder implements ApplicationListener<ApplicationStart
|
|||
public void onApplicationEvent(ApplicationStartedEvent event) {
|
||||
ApplicationContext applicationContext = event.getApplicationContext();
|
||||
Manager manager = findManager(applicationContext);
|
||||
new TomcatMetrics(manager, this.tags).bindTo(this.meterRegistry);
|
||||
this.tomcatMetrics = new TomcatMetrics(manager, this.tags);
|
||||
this.tomcatMetrics.bindTo(this.meterRegistry);
|
||||
}
|
||||
|
||||
private Manager findManager(ApplicationContext applicationContext) {
|
||||
|
@ -80,4 +84,9 @@ public class TomcatMetricsBinder implements ApplicationListener<ApplicationStart
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
this.tomcatMetrics.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue