使用Heapster获取集群对象的metric数据
Heapster可以收集Node节点上的cAdvisor数据,还可以按照kubernetes的资源类型来集合资源,比如Pod、Namespace域,可以分别获取它们的CPU、内存、网络和磁盘的metric。默认的metric数据聚合时间间隔是1分钟。
下面是Heapster架构图:
Heapser是用Go语言开发Kubernetes集群计算资源使用情况的数据采集工具,编译后可以直接以一个二进制文件运行,通过向heapster传递的参数来指定数据采集行为,这些数据可以选择多种sink方式,例如Graphite、influxDB、OpenTSDB、ElasticSearch、Kafka等。
Heapster使用起来很简单,本身就是二进制文件,直接使用命令行启动,也可以放在容器里运行,在作为kubernetes插件运行时,我们是直接放在容器中的,见。
下面是heapster的启动参数:
Version
API使用
Heapster提供RESTful API接口,下面以获取 namespace的memory usage为例讲解Heapster API的使用。
构造URL地址
结果
访问该地址获取的结果是这样的:
注意:Heapster中查询的所有值都是以最小单位为单位,比如CPU为1milicore,内存为B。
第一部分:Heapster API地址
可以使用下面的命令获取:
第二部分:Heapster API参数
/api/v1/model/namespaces/spark-cluster/metrics/memory/usage
表示查询的是spark-cluster
namespace中的的metrics。
第三部分:时间片
?start=2017-10-16T09:14:00Z&end=2017-10-16T09:16:00Z
查询参数为时间片:包括start和end。使用RFC-3339
时间格式,在Linux系统中可以这样获取: