Rrdtool RRD图形-按值更改线条颜色

Rrdtool RRD图形-按值更改线条颜色,rrdtool,rrd,Rrdtool,Rrd,我有一个包含以下数据的RRD数据库: "DS:pkts_transmitted:GAUGE:120:0:U", "DS:pkts_received:GAUGE:120:0:U", "DS:pkts_lost:GAUGE:120:0:U", "DS:rtt_min:GAUGE:120:0:U", "DS:rtt_avg:GAUGE:120:0:U", "DS:rtt_max:GAUGE:120:0:U", 如果我丢失任何包裹,我希望平均线改变颜色

我有一个包含以下数据的RRD数据库:

    "DS:pkts_transmitted:GAUGE:120:0:U",
    "DS:pkts_received:GAUGE:120:0:U",
    "DS:pkts_lost:GAUGE:120:0:U",
    "DS:rtt_min:GAUGE:120:0:U",
    "DS:rtt_avg:GAUGE:120:0:U",
    "DS:rtt_max:GAUGE:120:0:U",
如果我丢失任何包裹,我希望平均线改变颜色

例如,如果我丢失5个数据包,则将线设为蓝色,如果我丢失10个数据包,则将线设为红色


我看到有人这样做,但我阅读了文档,却找不到如何做到这一点。

实现这一点的方法是实际定义多行(每种颜色一行),并通过计算隐藏您在任何时候都不想看到的行

例如,假设我们有一个RRD和两个DSs:

DS:x:GAUGE:60:0:U
DS:y:GAUGE:60:0:1
现在,如果
y
为0,我们想用红色显示
x
的行,如果为1,则用蓝色显示。为此,我们创建两个计算值,
x1
x2

CDEF:x1=y,0,EQ,x,UNKN,IF
CDEF:x2=y,1,EQ,x,UNKN,IF
因此,如果
y=0
x2
如果
y=1
,则
x1
处于活动状态。是的,这可以简化,但我以这个为例展示它

现在,我们可以使用以下内容制作线条:

LINE:x1#ff0000:MyLine
LINE:x2#0000ff
请注意,第二行不需要图例。现在,该行将根据
y
度量的值而改变颜色,因为在任何时候,另一行都将
UNKN
,因此不会显示


当然,您可以扩展此功能,使其具有多种颜色和更复杂的阈值。

谢谢您,我做的或多或少都是相同的。我有7个def项,通过轮询器,只需将值放在需要着色的位置,其他的值为nan。