• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Monitor: 性能监控工具

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

Monitor

开源软件地址:

https://gitee.com/HITMassiveData/Monitor

开源软件介绍:

项目结构说明


src└── main    ├── java    │   └── org    │       └── hit    │           └── monitor    │               ├── bo          查询类    │               ├── common      公共类、定义全局配置、数据返回等    │               ├── controller  控制器    │               ├── dao         持久化层    │               ├── interceptor 拦截器    │               ├── model       数据对象    │               ├── service     服务层接口    │               │   └── impl    服务接口的实现    │               ├── timetask    定时任务    │               ├── utils       工具类    │               └── vo          视图类    ├── resources                   系统所有的配置文件    │   ├── context                 非Web相关Spring Bean的定义    │   ├── dbconfig                数据库配置    │   └── mybatis-mappers         MyBatis    │                               // 以上为服务端内容    └── webapp                      // 以下为前端内容        ├── asset        │   ├── common              公共前端文件,包含网站主题、顶栏、侧边栏、公共CSS、JS、IMG        │   ├── module              各个具体模块的前端内容        │   │   ├── datanode        DataNode        │   │   ├── history         历史数据分析        │   │   ├── index           首页        │   │   ├── namenode        NameNode        │   │   └── node            节点状态        │   └── plugins             项目中所依赖的前端插件        │       ├── bootstrap        │       ├── datatables        │       ├── daterangepicker        │       ├── datetime        │       ├── echarts        │       ├── fastclick        │       ├── jQuery        │       ├── other        │       ├── pace        │       └── slimScroll        └── doc                     项目文档

开发说明


项目使用 Maven 构建,具体依赖信息定义在 pom.xml 文件中,主要的构成框架为 SpringMyBatis

目前整个系统主要依赖以下服务:

  • Ganglia Gmond - 集群的每一台主机都安装了 Gmond ,用于收集系统本身、HDFS、Yarn、MapReduce的指标
  • Ganglia Gmetad - 集群的主节点上安装,用于汇总所有子节点发来的指标数据
  • MySQL - 存储所有的指标信息(聚合信息,非单独节点信息)及平台持久化的内容
  • Resource Manager API - 用于获得节点信息、任务信息等
  • Job History Server API - 用于历史任务信息,是参数自动调优的数据来源
  • Ganglia API - Ganglia的python插件,用于提供REST API,本系统依赖其获取某一节点的指标信息

注意:

  • Ganglia Gmetad 的默认行为是将指标数据以RRD文件的形式进行持久化
  • 本系统对所采用的 Gemtad 进行了修改,使其能够将指标数据写入配置文件所指定的MySQL数据库
  • 修改过程及源码请查看 Ganglia Gmetad 分支项目

关于MySQL指标数据的存储:

  • 考虑到系统可能需要保存两个星期的实时数据,每个指标都会累积大量的数据,为了减少单表的压力
  • 系统为每一个指标都以 m_指标名 的方式从创建了一张表,而所有表的定义都可以在表 metrics_define 中找到
  • 表创建以及指标定义信息添加的过程定义在 MySQL 的存储过程中,存储过程名为 push_metrics
  • Gmeted 在写入指标时会调用此存储过程
  • timetask 目录下的定时任务会定时清理数据中过期的指标数据

源码阅读说明

  • 由于系统基于Spring MVC,因此所有的后端代码的入口皆为 controller 包下的控制器类
  • 进行源码修改时,只需从页面中找到其数据来源 Controller ,然后按照Controller > Service > DAO 的顺序即可

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap