Như nó đã được đã gợi ý Metrics Xuân cung cấp một số tích hợp thú vị với mùa xuân. Nếu bạn muốn truy cập các số liệu đó từ một API JSON, bạn vẫn cần phải thêm servlet như được ghi tại http://metrics.dropwizard.io/3.1.0/manual/servlets/.
Để sử dụng các servlets bạn cần phải thêm phụ thuộc:
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${metrics.version}</version>
</dependency>
Sau đó, bạn thêm các servlet trong web.xml:
<servlet>
<servlet-name>metrics-admin</servlet-name>
<servlet-class>com.codahale.metrics.servlets.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>metrics-admin</servlet-name>
<url-pattern>/metrics/admin/*</url-pattern>
</servlet-mapping>
Bạn cũng có thể sử dụng JavaConfig để cấu hình nó.
Đăng ký servlet:
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import com.codahale.metrics.servlets.AdminServlet;
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
ServletRegistration.Dynamic metricsServlet = servletContext.addServlet("metrics", new AdminServlet());
metricsServlet.addMapping("/metrics/admin/*");
}
}
Và cung cấp các thuộc tính cần thiết cho servlet:
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.health.HealthCheckRegistry;
import com.codahale.metrics.servlets.HealthCheckServlet;
import com.codahale.metrics.servlets.MetricsServlet;
import com.ryantenney.metrics.spring.config.annotation.EnableMetrics;
import com.ryantenney.metrics.spring.config.annotation.MetricsConfigurerAdapter;
@Configuration
@EnableMetrics
public class MetricsConfiguration extends MetricsConfigurerAdapter {
@Autowired ServletContext servletContext;
@Autowired
private HealthCheckRegistry healthCheckRegistry;
@Override
public void configureReporters(MetricRegistry metricRegistry) {
registerReporter(ConsoleReporter
.forRegistry(metricRegistry)
.build())
.start(1, TimeUnit.MINUTES);
servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
servletContext.setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, healthCheckRegistry);
}
}
Nguồn
2016-12-29 15:28:33
Các liên kết mà bạn cung cấp có tất cả các mã bạn muốn tích hợp nó trong ứng dụng mùa xuân của bạn. Bạn đã thử chưa – Lucky
Có, tôi đã thử. nhưng tôi không thể biết phải gọi những gì để có được số liệu thống kê về API. – kumar