jak to zostało już sugerowane Metrics Wiosna oferuje kilka ciekawych integrację z wiosny. Jeśli chcesz uzyskać dostęp do tych danych z interfejsu API JSON, nadal musisz dodać serwlet, jak udokumentowano pod numerem http://metrics.dropwizard.io/3.1.0/manual/servlets/.
W celu wykorzystania tych serwletów trzeba dodać zależność:
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${metrics.version}</version>
</dependency>
Następnie dodać serwletu w 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>
Można również użyć JavaConfig go skonfigurować.
Rejestracja serwletu:
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/*");
}
}
i podać atrybuty potrzebne serwletu:
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);
}
}
Link który podałeś jest cały kod, który chcesz zintegrować go w aplikacji Wiosny. Czy próbowałeś? – Lucky
Tak, próbowałem. ale nie mogę się dowiedzieć, jak zadzwonić, aby uzyskać statystyki interfejsów API. – kumar