如何使JavaMelody与SparkJava一起使用?

时间:2016-07-31 16:25:20

标签: java spark-java java-melody

如果我想在SparkJava的嵌入式Jetty服务器上使用简单配置,那么将JavaMelodySparkJava集成的最佳方法是什么?

这就是我启动SparkJava的方式:

Spark.get("/abc",(req,resp)->System.out.println("abc"));
Spark.init();

这是我开始javamelody的方式:

 public static void start(int port, Map<Parameter, String> parameters) {
    final Server server = new Server(port);
    final ContextHandlerCollection contexts = new ContextHandlerCollection();
    final ServletContextHandler context = new ServletContextHandler(contexts, "/",
            ServletContextHandler.SESSIONS);

    final Filter monitoringFilter = new net.bull.javamelody.MonitoringFilter();
    final FilterHolder filterHolder = new FilterHolder(monitoringFilter);
    if (parameters != null) {
        for (final Map.Entry<Parameter, String> entry : parameters.entrySet()) {
            final net.bull.javamelody.Parameter parameter = entry.getKey();
            final String value = entry.getValue();
            filterHolder.setInitParameter(parameter.getCode(), value);
        }
    }
    context.addFilter(filterHolder, "/*",
            EnumSet.of(DispatcherType.INCLUDE, DispatcherType.REQUEST));

    final RequestLogHandler requestLogHandler = new RequestLogHandler();
    contexts.addHandler(requestLogHandler);

    final HandlerCollection handlers = new HandlerCollection();
    handlers.setHandlers(new Handler[]{contexts});
    server.setHandler(handlers);

    server.start();
}

这种JavaMelody启动的问题是它创建了另一个jetty服务器。它适用于Spring和Hibernate,因此您可以查看所有统计信息,但是您无法查看HTTP请求统计信息,因为它是另一个Jetty服务器。

所以准确的问题是:如何使用SparkJava启动JavaMelody,以便您可以查看JavaMelody中的所有统计信息,包括Http统计信息。

ps:反射黑客对我来说是一个解决方案

0 个答案:

没有答案