我正在尝试创建一个RHQ插件来收集一些测量值。似乎相对论很容易创建一个返回当前时刻值的插件。但是,我需要从文件中收集这些测量值。这些文件是按计划创建的,例如每小时一个,但它们包含更精细的测量,例如每分钟的测量。该文件可能如下所示:
IEnumerableSignatures
是否可以创建一个RHQ插件,该插件可以返回带有时间戳的许多值进行测量?
答案 0 :(得分:2)
我认为您可以在org.rhq.core.pluginapi.measurement.MeasurementFacet#getValues
内在MeasurementReport
内返回任意数量的值。
所以基本上打开文件,寻找最后一个已知位置(如果文件总是附加到),从那里读取,并为每一行读取
MeasurementData data = new MeasurementDataNumeric(timeInFile, request, valueFromFile);
report.add(data);
当然,对此(历史)数据的警报有点可疑,就好像您只在一小时后读取文件一样,警报在发生错误值时无法追溯触发: - >
答案 1 :(得分: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));