Java 将单独的RRD文件合并到单个图形中
使用rrd4j,如何将多个Java 将单独的RRD文件合并到单个图形中,java,rrdtool,rrd,rrd4j,Java,Rrdtool,Rrd,Rrd4j,使用rrd4j,如何将多个.rrd文件组合成一个.rrd或(理想情况下)一个图形 更多详情: 我有几份基本相同的.rrd。每个文件记录多个传感器数据读数,所有文件的名称均为sensor-1,sensor-2。因此data1.rrd,data2.rrd都将包含sensor-1等的数据源 DS的定义如下 DS:sensor-1:GAUGE:35:U:U DS:sensor-2:GAUGE:35:U:U DS:sensor-3:GAUGE:35:U:U 我可以通过将一个数据源添加到这样的图形中,为每
.rrd
文件组合成一个.rrd
或(理想情况下)一个图形
更多详情:
我有几份基本相同的.rrd
。每个文件记录多个传感器数据读数,所有文件的名称均为sensor-1
,sensor-2
。因此data1.rrd
,data2.rrd
都将包含sensor-1
等的数据源
DS的定义如下
DS:sensor-1:GAUGE:35:U:U DS:sensor-2:GAUGE:35:U:U DS:sensor-3:GAUGE:35:U:U
我可以通过将一个数据源添加到这样的图形中,为每个图形单独生成一个图形
val graph = new RrdGraphDef()
graph.datasource("sensor-1", data1.rrd", "sensor-1", AVERAGE)
graph.datasource("sensor-2", data1.rrd", "sensor-1", AVERAGE)
graph.line("sensor-1", green)
graph.line("sensor-2", red)
但是,如果我对data2.rrd
(将另一个数据源添加到相同的graph
实例)执行相同的操作,则似乎会丢失前面的数据,并仅绘制文件的一个数据
我怀疑每个DS在文件中具有相同的名称可能是一个问题
关于如何使用常规RRD工具实现相同功能的建议也可能会有所帮助,因为我可能能够将以下语句翻译成rrd4j:
graph.datasource(“varname”、“filename.rrd”、“dsname”、AVERAGE)
定义一个名为varname
的新变量,该变量对应于文件filename.rrd
中的DSdsname
,使用AVERAGE
Consolodation函数进行合并
显然,同一个图形中不能有两个同名的变量;但是,没有任何东西可以阻止您从多个不同的RRD文件中提取数据,也没有任何东西可以阻止您将不同的varname用于DS名称
但是,您应该只在变量名中使用字母数字,特别是避免使用“-”,即使它应该可以工作。下划线可以
因此,这是完全正确的:
图形数据源(“sensora”、“sitea.rrd”、“sensor”、AVERAGE)
图形数据源(“sensorb”、“siteb.rrd”、“sensor”、AVERAGE)
并将定义两个变量,sensora
和sensorb
,对应于两个不同RRD文件中的相同命名DS
不要将sensor-1
用作变量名,因为它包含一个“-”符号
由于没有看到失败的RRD4j代码,我不能肯定,但我怀疑这可能是因为您没有重命名varname,使两个变量共享相同的名称并相互覆盖,或者是因为varname中的“-”