外部组件
ZWatch依赖Prometheus和InfluxDB两个外部组件,前者存储时序监控数据(metric),后者存储事件类数据(event, audit)。
- Prometheus内存使用
可以通过zstack.properties中的
Prometheus.heapSize
配置项控制prometheus的内存使用,默认值为AUTO
,由系统选定内存。可以指定512m, 1g这样的值,或直接指定字节数(后面部跟m,g,t这样的容量修饰符)。Prometheus最小需要512M内存,小于该值会导致管理节点启动失败。当
Prometheus.heapSize=AUTO
时,管理节点会根据物理内存大小选定内存值,选择算法为:long total = 物理内存字节数 if (total <= SizeUnit.GIGABYTE.toByte(6)) { return SizeUnit.MEGABYTE.toByte(512); } else if (total <= SizeUnit.GIGABYTE.toByte(8)) { return SizeUnit.GIGABYTE.toByte(1); } else if (total <= SizeUnit.GIGABYTE.toByte(16)) { return SizeUnit.GIGABYTE.toByte(3); } else if (total <= SizeUnit.GIGABYTE.toByte(32)) { return SizeUnit.GIGABYTE.toByte(6); } else { return SizeUnit.GIGABYTE.toByte(8); }
Note:Prometheus.heapSize只控制prometheus使用内存的相对值,无法控制绝对值。Prometheus可能使用的内存可以达到Prometheus.heapSize值的1.5倍
- Prometheus监控数据保存时间
可以通过zstack.properties中的
Prometheus.retention
来设置监控数据的最大保留时间。默认值是一年:Prometheus.retention=8760h0m0s
- InfluxDB的内存使用和数据保存时间
InfluxDB暂时无内存控制参数。数据目前设置成永不删除。
Note:InfluxDB记录的事件数据总量很小,只有API操作(更改操作)和特殊事件(例如物理机失联)才会产生influxDB数据