Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Commit

Permalink
separate template file for each tab, integrated c3
Browse files Browse the repository at this point in the history
  • Loading branch information
Felix Barnsteiner authored and felixbarny committed Nov 23, 2014
1 parent 6b69bd9 commit 3a2489a
Show file tree
Hide file tree
Showing 16 changed files with 516 additions and 361 deletions.
1 change: 1 addition & 0 deletions stagemonitor-web/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ dependencies {
compile project(":stagemonitor-requestmonitor")
compile project(":stagemonitor-jvm")
compile project(":stagemonitor-jdbc")
compile 'io.dropwizard.metrics:metrics-servlets:3.1.0'
compile 'net.sf.uadetector:uadetector-resources:2014.08'
provided 'javax.servlet:javax.servlet-api:3.0.1'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
import java.util.Map;
import java.util.regex.Pattern;

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

import com.codahale.metrics.MetricRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -19,7 +23,8 @@
import org.stagemonitor.core.pool.MBeanPooledResourceImpl;
import org.stagemonitor.core.pool.PooledResourceMetricsRegisterer;

public class WebPlugin implements StagemonitorPlugin {
@WebListener
public class WebPlugin implements StagemonitorPlugin, ServletContextListener {

public static final String WEB_PLUGIN = "Web Plugin";
private final Logger logger = LoggerFactory.getLogger(getClass());
Expand Down Expand Up @@ -251,4 +256,13 @@ public Collection<String> getExcludedRequestPaths() {
public boolean isMonitorOnlyForwardedRequests() {
return monitorOnlyForwardedRequests.getValue();
}

@Override
public void contextInitialized(ServletContextEvent sce) {
//To change body of implemented methods use File | Settings | File Templates.
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package org.stagemonitor.web.metrics;

import java.io.IOException;
import java.io.OutputStream;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.json.MetricsModule;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import org.stagemonitor.core.Stagemonitor;
import org.stagemonitor.core.util.JsonUtils;
import org.stagemonitor.web.WebPlugin;

@WebServlet("/stagemonitor/metrics")
public class StagemonitorMetricsServlet extends HttpServlet {

private final MetricRegistry registry;
private final WebPlugin webPlugin;
private final ObjectMapper mapper;

public StagemonitorMetricsServlet() {
this(Stagemonitor.getMetricRegistry(), Stagemonitor.getConfiguration(WebPlugin.class), JsonUtils.getMapper());
JsonUtils.getMapper().registerModule(new MetricsModule(TimeUnit.SECONDS, TimeUnit.SECONDS, false, MetricFilter.ALL));
}

public StagemonitorMetricsServlet(MetricRegistry registry, WebPlugin webPlugin, ObjectMapper mapper) {
this.registry = registry;
this.webPlugin = webPlugin;
this.mapper = mapper;
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (webPlugin.isWidgetEnabled()) {
resp.setContentType("application/json");
// if (allowedOrigin != null) {
resp.setHeader("Access-Control-Allow-Origin", "*");
// }
resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
resp.setStatus(HttpServletResponse.SC_OK);

final OutputStream output = resp.getOutputStream();
try {
// if (jsonpParamName != null && req.getParameter(jsonpParamName) != null) {
// getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));
// } else {
getWriter(req).writeValue(output, registry);
// }
} finally {
output.close();
}
} else {
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
}
}

private ObjectWriter getWriter(HttpServletRequest request) {
if (Boolean.parseBoolean(request.getParameter("pretty"))) {
return mapper.writerWithDefaultPrettyPrinter();
}
return mapper.writer();
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

0 comments on commit 3a2489a

Please sign in to comment.