【问题标题】:Negative temperature are not displayed in the temperature curve using RRD tool?使用RRD工具的温度曲线中不显示负温度?
【发布时间】:2015-11-20 04:36:42
【问题描述】:

我有这个代码来创建图形文件

#!/bin/sh
rrdtool graph /var/www/temp_graph.png \
-w 1024 -h 400 -a PNG --slope-mode \
--start -1d --end now \
--vertical-label "temperature (C)" \
DEF:out=/opt/templog/data/templog.rrd:internal:AVERAGE \
DEF:in=/opt/templog/data/templog.rrd:external:AVERAGE \
LINE2:in#00ff00:"inside" \
LINE2:out#000ff:"outside"

和这个文件一起创建rrd文件:

#!/bin/sh
rrdtool create /opt/templog/data/templog.rrd --step 300   \
DS:internal:GAUGE:600:-55:125  \
DS:external:GAUGE:600:-55:125  \
RRA:AVERAGE:0.5:1:576    \
RRA:AVERAGE:0.5:3:1344   \
RRA:AVERAGE:0.5:12:1488  \
RRA:AVERAGE:0.5:72:1984  \
RRA:MIN:0.5:72:1984      \
RRA:MAX:0.5:72:1984

但是当我创建图表时,温度曲线只显示正温度而不显示负温度。

当温度低于 0 摄氏度时,曲线为空白,当温度为正时,曲线变为可见。

我该如何解决这个问题?

【问题讨论】:

    标签: rrdtool


    【解决方案1】:

    这里有两种可能:

    1. 数据
    2. 数据存在,但未显示在图表中。

    在第一种情况下,这很可能是因为 DS 的下限被错误地设置为 0。虽然您在上面指定的 rrdtool create 命令确实给出了一个负的下限,但您应该查看您的实际 RRD 文件正在使用 rrdtool info 来验证它确实具有 DS 上的预期下限。可能是事情没有按照您的预期进行配置。如果下限为零,则在存储到数据库之前将丢弃负值。您还可以使用rrdtool dump 检查 RRA 中存在的值,以验证它们是否实际被存储。

    第二种情况更复杂,因为它取决于图形参数。假设您没有使用 CDEF 来修改或限制源数据的范围,则问题将归结为图形 Y 轴。通常,Y 轴应扩展以适应绘制的数据,除非您使用 --rigid 选项使其变得僵硬。可以设置-u 和-l 上限和下限来控制这一点 - 可以尝试-l -10 这应该使图形下限为-10 或更少,具体取决于数据.同样,如果您完全使用上面给出的命令绘制图表,您应该不会遇到这个问题。

    总之,我猜想您的 RRD 文件设置为 DS 的下限为 0,即使您认为您是使用上面的命令创建的。使用rrdtool info 验证实际文件。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2020-06-27
    • 2021-09-07
    相关资源
    最近更新 更多