Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Supplies a JAX-RS Provider for metrics-jersey that uses SharedMetricR…
…egistries

(so our @timed, @metered, etc. work)

Supplies a ContextListener to set the attributes that metrics-servlet expects, so
we no longer need to provide our own MetricsServlet.
  • Loading branch information
Edwin Shin committed May 30, 2013
1 parent 1ce5819 commit 1afe622
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 88 deletions.
40 changes: 40 additions & 0 deletions src/main/java/org/fcrepo/metrics/MetricsContextListener.java
@@ -0,0 +1,40 @@

package org.fcrepo.metrics;

import static org.fcrepo.metrics.RegistryService.getMetrics;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import com.codahale.metrics.health.HealthCheckRegistry;

/**
* A ServletContextListener to set the ServletContext attributes that the
* Metrics servlets expect.
*
* @author Edwin Shin
* @see <a href="http://metrics.codahale.com/manual/servlets/">http://metrics.codahale.com/manual/servlets/</a>
*/
@WebListener
public class MetricsContextListener implements ServletContextListener {

@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
context.setAttribute(
"com.codahale.metrics.servlets.MetricsServlet.registry",
getMetrics());

context.setAttribute(
"com.codahale.metrics.servlets.HealthCheckServlet.registry",
new HealthCheckRegistry());
}

@Override
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub

}
}
13 changes: 13 additions & 0 deletions src/main/java/org/fcrepo/metrics/MetricsProvider.java
@@ -0,0 +1,13 @@
package org.fcrepo.metrics;

import javax.ws.rs.ext.Provider;

import com.codahale.metrics.jersey.InstrumentedResourceMethodDispatchAdapter;

@Provider
public class MetricsProvider extends InstrumentedResourceMethodDispatchAdapter {

public MetricsProvider() {
super(RegistryService.getMetrics());
}
}
83 changes: 0 additions & 83 deletions src/main/java/org/fcrepo/metrics/MetricsServlet.java

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/resources/spring/metrics_reporting.xml
Expand Up @@ -6,7 +6,7 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- Context that suports event management, including the internal
<!-- Context that supports event management, including the internal
event bus (fedoraInternalEventBus) -->

<context:annotation-config/>
Expand Down
10 changes: 6 additions & 4 deletions src/main/webapp/WEB-INF/web.xml
Expand Up @@ -287,16 +287,18 @@

<!-- END WebDAV support-->

<!-- BEGIN Metrics -->
<servlet>
<servlet-name>MetricsServlet</servlet-name>
<servlet-class>org.fcrepo.metrics.MetricsServlet</servlet-class>
<servlet-name>MetricsAdminServlet</servlet-name>
<servlet-class>com.codahale.metrics.servlets.AdminServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MetricsServlet</servlet-name>
<servlet-name>MetricsAdminServlet</servlet-name>
<url-pattern>/metrics/*</url-pattern>
</servlet-mapping>

<!-- END Metrics -->

<session-config>
<session-timeout>60</session-timeout>
</session-config>
Expand Down

0 comments on commit 1afe622

Please sign in to comment.