Java 将单独的RRD文件合并到单个图形中

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 我可以通过将一个数据源添加到这样的图形中,为每

使用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
我可以通过将一个数据源添加到这样的图形中,为每个图形单独生成一个图形

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
中的DS
dsname
,使用
AVERAGE
Consolodation函数进行合并

显然,同一个图形中不能有两个同名的变量;但是,没有任何东西可以阻止您从多个不同的RRD文件中提取数据,也没有任何东西可以阻止您将不同的varname用于DS名称

但是,您应该只在变量名中使用字母数字,特别是避免使用“-”,即使它应该可以工作。下划线可以

因此,这是完全正确的:

图形数据源(“sensora”、“sitea.rrd”、“sensor”、AVERAGE)
图形数据源(“sensorb”、“siteb.rrd”、“sensor”、AVERAGE)
并将定义两个变量,
sensora
sensorb
,对应于两个不同RRD文件中的相同命名DS

不要将
sensor-1
用作变量名,因为它包含一个“-”符号

由于没有看到失败的RRD4j代码,我不能肯定,但我怀疑这可能是因为您没有重命名varname,使两个变量共享相同的名称并相互覆盖,或者是因为varname中的“-”