是否可以创建一个 RHQ 插件来从文件中收集历史测量值?

Is it possible to create an RHQ plugin that collects historic measurements from files?

我正在尝试创建一个 RHQ 插件来收集一些测量结果。创建一个 return 当前值的插件似乎相对容易。但是,我需要从文件中收集这些测量值。这些文件是按计划创建的,例如每小时一个,但它们包含更精细的测量值,例如每分钟的测量值。该文件可能如下所示:

18:00 20
18:01 42
18:02 39
...
18:58 12
18:59 15

是否可以创建一个 RHQ 插件,可以 return 许多带有时间戳的值进行测量?

我认为您可以在 org.rhq.core.pluginapi.measurement.MeasurementFacet#getValues return 范围内根据需要在 MeasurementReport 范围内设置任意数量的值。

所以基本上打开文件,寻找最后一个已知位置(如果文件总是附加到),从那里读取每一行

MeasurementData data = new MeasurementDataNumeric(timeInFile, request, valueFromFile);
report.add(data);

当然,对这个(历史)数据发出警报是有问题的,就好像你只在一小时后读取文件一样,警报不能在错误值发生时追溯触发:->

是的,这肯定是可能的。

@Override
public void getValues(MeasurementReport report,  Set<MeasurementScheduleRequest> metrics) throws Exception {     
    for (MeasurementScheduleRequest request : metrics) {
        Double result = SomeReadUtilClass.readValueFromFile();
        MeasurementData data =  new MeasurementDataNumeric(request, result)
        report.addData(data );
    }
}

SomeReadUtilClass 是一个实用程序 class 来读取文件,readValueFromFile 是函数,你可以写你的登录名来从文件中读取值。

result是比较重要的Double变量,这个结果值你可以从数据库或读取文件中计算出来。然后这个结果值你必须提供给 MeasurementDataNumeric 函数 MeasurementDataNumeric(request, result));