Можно ли создать плагин 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));

Другие вопросы по тегам