1

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

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

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

4

2 回答 2

2

我认为您可以org.rhq.core.pluginapi.measurement.MeasurementFacet#getValuesMeasurementReport.

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

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

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

于 2015-06-25T12:39:22.157 回答
0

是的,这肯定是可能的。

@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是读取文件的实用程序类,readValueFromFile是函数,您可以编写登录名以从文件中读取值。

result是更重要的 Double 变量,您可以从数据库或读取文件中计算此结果值。然后你必须提供这个结果值才能MeasurementDataNumeric运行MeasurementDataNumeric(request, result));

于 2015-11-17T11:41:14.283 回答