Ambari Metrics系统(AMS)是用来收集、聚合Hadoop集群中监控信息的。
功能
- 能够收集Hadoop及其他Ambari Stacks服务里的Metrics信息;
- 有一定的存储能力,能够将高精度的Metrics信息保存一段时间(例如能够保存5天内的Metrics信息,时间可配置);
- 能够将过期的Metrics信息自动清理掉;
- 在collection time,为外部系统(例如TSDB)提供清晰的集成点(Integration point);
- 在清理时,为外部系统(例如TSDB)提供清晰的集成点;
- 提供默认的过期Metrics信息保存方式,例如,将过期的Metrics信息存入到HDFS中;
- 为过期Metrics信息提供分析工具,例如将信息存储在HDFS中,则提供Hive schema,pig 脚本等用于分析Metrics信息。
Metrics特点
1. 可移植、平台无关;
2. 能够和Ganglia系统兼容;
3. 保持SNMP架构;
4. 无需要Root权限;
5. HA高可用。
架构
用法
- 能够通过Ambari Rest API获取Metrics;
- 能够通过Ambari Web浏览Metrics图表;
- 支持自定义配置Metrics图表;
- 支持在Stack 服务里定义Metrics图表。
下面从Ambari Metrics API、Ambari Collector API、Stack里定义Metrics图表、Sink实现举例、自定义配置Metrics及Ambari Metrics显示过程这几个方面对Metrics进行详细描述。
Ambari Metrics API
Ambari Metrics API是Ambari提供的Metrics 接口,用于获取集群级别(Cluster)、主机节点级别(Host)、服务组件级别(Component)、主机服务节点级别(Host Component)获取Metrics信息。从广义上将,Ambari Metrics信息查询支持时间段(time range)、时间点(point in time)查询。
Cluster级别
http://:8080/api/v1/clusters/cluster-name?fields=metrics/metrics_name[time_start,time_end,step]&_=time_now
其中:
1. cluster-name为查询的集群名字;
2. metrics_name为要查询的metrics名字,如3. load,cpu,memory
4. time_start,time_end:查询的时间段起点(精确到秒)、终点,Linux事件戳
5. step:默认的时间点间隔
6. time_now:当前时间,精确到毫秒
Host级别
Component级别
HOST COMPONENT
Ambari Collector API
Ambari Collector API分为两类:Metrics操作API 和Metrics 元数据API。
Metrics操作 API
提交Metrics数据:
POST