Можно ли создать плагин RHQ, который собирает исторические измерения из файлов?
Я пытаюсь создать плагин RHQ, чтобы собрать некоторые измерения. Кажется, что относительность легко создать плагин, который возвращает значение на текущий момент. Тем не менее, мне нужно собрать эти измерения из файлов. Эти файлы создаются по расписанию, например, один раз в час, но они содержат более точные измерения, например, измерение для каждой минуты. Файл может выглядеть примерно так:
18:00 20
18:01 42
18:02 39
...
18:58 12
18:59 15
Можно ли создать плагин RHQ, который может возвращать много значений с метками времени для измерения?
2 ответа
Я думаю, что вы можете в течение org.rhq.core.pluginapi.measurement.MeasurementFacet#getValues
вернуть столько значений, сколько вы хотите в пределах 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
это служебный класс для чтения файла и readValueFromFile
это функция, вы можете написать свой логин, чтобы прочитать значение из файла.
result
является переменной Double, которая более важна, это значение результата вы можете вычислить из базы данных или прочитать файл. И тогда это значение результата вы должны предоставить MeasurementDataNumeric
функция MeasurementDataNumeric(request, result));