文章目录
1 引言
Ambari处理Meterics相关的请求分为两部分:1,widget相关的,负责Metrics消息的布局、显示;2,metrics数据请求,负责获取实时数据。下面主要从这两方面进行讲述。
2 Widget
Ambari Widget属于图形控件,负责收集Metrics属性并进行显示。Widget包括Graph、Gauge、Number、Template等几种类型。常用的是Graph,Number,Gauge三种。下面对这几种类型的Widget做个简单的说明。
1)Graph:Graph 是一种线性或矩形图,它用于显示在某时间内 Service 的某个(可以是多个)Metrics属性,如下所示。
2)Gauge:一般用于显示百分比,其值可源于一个或是多个Metrics经过计算后的值,如下所示。
3)Number:直接显示一个数,可以为其定值单位,如下所示。
2.1 Widget相关的数据表
Ambari在启动初始化时,会从相关目录下读取服务定义的widget信息,并将信息存入到数据库中。相关的表包括:1) (这里Ambari底层使用的是MySQL数据库)
1)Widget:存储所有的widget定义员数据,包括id,widget_name, 对应的Metrics,widget_values,properties等数据;
2)widget_layout:记录显示面板元数据。每个服务包括两个大的显示面板,serviceName_summary和serviceName_heatmap。另外,每个用户的又有自己的widget_layout,即每个用户可以自定义自己感兴趣的监控图表。如系统中存储用户admin,test用户,则可能有hdfs_summary和serviceName_heatmap两个section,其中对于hdfs_summary section,存在admin_hdfs_dashboard、test_hdfs_dashboard、admin_hdfs_heatmap和test_hdfs_heatmap (另外,在数据库中,当test用户访问了hdfs heapmap监控区,数据表中才会创建出test_hdfs_heatmap layout这条记录)。在widget_layout数据表中主要存储用户图表监控区的元数据,如id ,layout_name, section_name等。
3)widget_layout_user_widget:和widget_layout表对应,描述每个widget_layout中包含那些widget其widget的顺序;
4)users:描述Ambari用户信息,其中active_widget_layouts为一个widget_layout列表,描述用户访问、定制的widget_layout信息。
2.2Widget相关请求
在用户登录Ambari时,会出查询用户当前的活跃的widget_layout列表,获取当前需要显示的widget_layout,然后查询该widget_layout中所有包含的widget,并进行显示(在显示时,或根据Widget的property,发出相关的metrics请求,获取metrics数据)。相关API包括:
1)查询所有的widget: get http://ambari_server:port/api/v1/clusters/ClusterName/widgets/
或:
get http://ambari_server:port/api/v1/cl