外部组件

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数据