「javamelody」javamelody监控javaee

博主:adminadmin 2022-11-23 12:26:09 54

本篇文章给大家谈谈javamelody,以及javamelody监控javaee对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

spring集成javamelody怎么用连接池监控sql实例

前面写过对于webapp,用javamelody来监控、分析性能是挺方便的;那要对普通的java应用进行监控,只需要在应用上启动一个嵌入式web容器就可以了。

javamelody里面的war包就用了winstone 作为Servlet容器,可以直接启动;本文是以Jetty为例,在应用中嵌入一个jetty:

import java.util.EventListener;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.Filter;

import org.mortbay.jetty.Connector;

import org.mortbay.jetty.Handler;

import org.mortbay.jetty.Server;

import org.mortbay.jetty.bio.SocketConnector;

import org.mortbay.jetty.handler.ContextHandlerCollection;

import org.mortbay.jetty.handler.ResourceHandler;

import org.mortbay.jetty.servlet.Context;

import org.mortbay.jetty.servlet.DefaultServlet;

import org.mortbay.jetty.servlet.FilterHolder;

import org.mortbay.thread.QueuedThreadPool;

import org.springframework.web.context.ContextLoaderListener;

/**

* 启动一个jetty容器,结合javamelody用于监控应用性能

* @author langke

* 2012-12-21

*/

public class JavaMelodyMonitorServer {

   private ESLogger log = Loggers.getLogger(JavaMelodyMonitorServer.class);

   Server webServer;

   /**

    *

    * @param serverName 应用名称

    * @param host    绑定的IP地址

    * @param serverPort    应用端口,jetty启动的端口默认会在此基础上加1000,如果配置文件有配置jetty.listen.port则配置优先

    */

   public JavaMelodyMonitorServer(String serverName,String host,int serverPort) {

       init(serverName, host, serverPort);

       start();

       final JavaMelodyMonitorServer server = this;

       Runtime.getRuntime().addShutdownHook(new Thread() {

           @Override

           public void run() {

               try {

                   log.info("shutdown mointorServer:{}", server);

                   server.stop();

               } catch (Exception e) {

                   log.error("run main stop error!", e);

               }

           }

       });

   }

   

   private void init(String serverName,String host,int serverPort){

       int defaultValue = serverPort+1000;

       int port = Config.get().getInt("jetty.listen.port", defaultValue);

       Connector connector = new SocketConnector();

       webServer = new Server();

       QueuedThreadPool pool = new QueuedThreadPool();

       pool.setMinThreads(Config.get().getInt("jetty.pool.MinThread", 3));

       pool.setMaxThreads(Config.get().getInt("jetty.pool.MaxThread", 32));

       String server = host;

       pool.setName(serverName+"-monitor");

       pool.setDaemon(true);

       webServer.setThreadPool(pool);

       connector = new SocketConnector();

       connector.setPort(port);

       connector.setHost(server);

       connector.setMaxIdleTime(60000); // 1 min

       webServer.addConnector(connector);

       

       ContextHandlerCollection col = new ContextHandlerCollection();

       Context context = new Context(col, "/", Context.SESSIONS);

       ResourceHandler resourceHandler = new ResourceHandler();

       webServer.setHandlers(new Handler[] {col,resourceHandler });

       webServer.addHandler(context);

         // Set Java Melody storage Directory

       System.setProperty("javamelody.storage-directory", "javamelody-"+pool.getName());

       

       //add filter

       Filter monitoringFilter = new net.bull.javamelody.MonitoringFilter();

       context.addFilter(new FilterHolder(monitoringFilter), "/monitoring", Handler.REQUEST);

       MapString,String initParams = new HashMapString,String();

       initParams.put("contextConfigLocation", "classpath:net/bull/javamelody/monitoring-spring.xml");

       context.setInitParams(initParams);

       

       //add listener

       EventListener listener = new ContextLoaderListener();

       context.addEventListener(listener);

       

       context.addServlet(DefaultServlet.class, "/*");

       

   }

   private void start(){

       try{

           webServer.join();

           webServer.start();

       }catch (Exception e){

           log.error("Error starting httpserver", e);

       }

   }

   private void stop(){

       try{

           webServer.stop();

           webServer.destroy();

       }catch (Exception e){

           log.error("Error stop httpserver", e);

       }

   }

}

这个jetty加了shutdown hook,应用关闭的时候会自己关闭容器。

需要的jar依赖名如下:

servlet-api-3.0.jar

org.springframework.web-3.1.0.RELEASE.jar

jrobin-1.5.9.1.jar

jetty-util-6.1.26.jar

jetty-6.1.26.jar

javamelody.jar

com.springsource.net.sf.cglib-2.2.0.jar

如果使用spring框架,监控配置就比较简单,可以对某个包所有类进行监控:

bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor"

         property name="pointcut"

                 bean class="org.springframework.aop.support.JdkRegexpMethodPointcut"

                         property name="pattern" value="org.langke.core.service.*" /

                 /bean

         /property

   /bean        

监控数据源:

 bean id="springDataSourceBeanPostProcessor" class="net.bull.javamelody.SpringDataSourceBeanPostProcessor"

    /bean

   

    bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean"

       property name="targetName" value="dataSource" /

   /bean

如何使用javamelody的jar包做二次开发

方法如下:

选中项目

然后右击弹出选项列表

依次选择Export---Java---jar file---next---browser(选择存放路径)---next---next---browser---finish/ol

JavaMelody 如何不让其他人监控到

JavaMelody用于对Java应用或者应用服务器的QA以及开发环境的监控。它只负责对行为进行监控,而不负责触发操作。

JavaMelody真的能监控普通Java程序吗

y用嵌入式的监控方式,实时监控性能指标。如:页面相应时间,spring bean方法调用时间,sql语句执行时间等很多指标。我在这就不一一列举了。

我感觉比较好的两特点是:

会自动按命中次数与相应时间结合排序,这就可以知道优化哪个页面,bean方法,sql最有效果

页面,bean,

如何得到JavaMelody的监控数据

软件根据设计的12个条件,盘中实时数据计算得来的。自己可以选取全部12个或部分监控条件,但不可以自遍。

监控精灵是一款监视网络访问情况,本地程序运行情况。查看当前后台日志信息为一体的软件。获取root权限后可以更新cpu调节政策。

通达信软件是多功能的证券信息平台,与其他行情软件相比,有简洁的界面和行情更新速度较快等优点。通达信允许用户自由划分屏幕,并规定每一块对应哪个内容。至于快捷键,也是通达信的特色之一。通达信还有一个有用的功能,就是“在线人气”,可以了解哪些是当前关注,哪些是持续关注,又有哪些是当前冷门,可以更直接了解各个股票的关注度。

请问大佬有JavaMelody(系统监控工具) V1.87.0 官方版软件免费百度云资源吗

链接:

提取码:v7cw

软件名称:JavaMelody(系统监控工具)V1.87.0官方版

语言:简体中文

大小:20.65MB

类别:系统工具

介绍:JavaMelody是一款功能强大的系统检测工具,用户可以通过这款软件,实时检测系统CPU、内存等使用情况,让用户可以很直观的观察数值的变化。软件功能强大,检测的数据包含用户Session数量、JDBC连接数、http请求、sql请求、jsp页面与业务接口方法的执行数量,平均执行时间,错误百分比等。

关于javamelody和javamelody监控javaee的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。