JVM Profiler 整体架构
开篇
整个JVM Profiler的组件类似于上图,抽象出来主要分为:
Class File Transformer:负责转换被监控方法的字节码,在前后增加耗时统计。
Profiler:负责数据的采集,各种指标的采集器。
Reporter:数据上报方法,支持kafka,Console,Redis,File等多种方式。
组件介绍
Profiler介绍
- CpuAndMemoryProfiler:负责采集cpu和内存指标的Profiler。
- IOProfiler:负责采集机器IO指标的Profiler。
- MethodArgumentProfiler:负责采集被监控方法参数的Profiler。
- MethodDurationProfiler:负责采集被监控方法耗时的Profiler。
- ProcessInfoProfiler:负责采集Process相关信息的Profiler。
- StacktraceCollectorProfiler:负责Stack相关信息的Profiler,细节还没弄清楚。
- StacktraceReporterProfiler:负责Stack相关信息的Profiler,细节还没弄清楚。
Reporter介绍
- ConsoleOutputReporter:采集数据输出到终端命令行。
- FileOutputReporter:采集数据输出到文件。
- KafkaOutputReporter:采集数据输出到kafka。
- RedisOutputReporter:采集输出输出到redis。
Transformer介绍
- Transformer用在采集被监控方法字节码前后增加耗时统计,主要是在方法执行前增加开始时间的统计,在方法执行后增加结束时间的统计,然后计算差值得到最终的耗时。
参考文章
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
django面试题(21道)
1、什么是wsgi? WSGI是Python在处理HTTP请求时,规定的一种处理方式。如一个HTTP Request过来了,那么就有一个相应的处理函数来进行处理和返回结果。WSGI就是规定这个处理函数的参数长啥样的,它的返回结果是长啥样的?至于该处理函数的名子和处理逻辑是啥样的,那无所谓。简单而言,WSGI就是规定了处理函数的输入和输出格式。 2、django请求的生命周期? . 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. . url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. . 视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端. . 客户端浏览器接收到返回的数据,经过渲染后显示给用户. 3、列举django的内置组件? .Admin是对model中...
- 下一篇
asp.net core mvc 中间件之WebpackDevMiddleware
asp.net core mvc 中间件之WebpackDevMiddleware WebpackDevMiddleware中间件主要用于开发SPA应用,启用Webpack,增强网页开发体验。好吧,你想用来干嘛就干嘛,这次主要是通过学习该中间件,学习如何在core中启用Webpack支持 通过上上篇asp.net core mvc 管道之中间件,大致可以了解中间件是什么东西,现在就以中间件为单位,一个一个点学习各种中间件,了解并掌握,最后学会自己写中间件 该中间件源码 说明 WebpackDevMiddleware Enables Webpack dev middleware support. This hosts an instance of the Webpack compiler in memory in your application so that you can always serve up-to-date Webpack-built resources without having to run the compiler manually. Since the Web...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题