Здравствуйте!
Получить список алармов из БД (PostgreSQL) можно так:
select
name,
message,
timestamp 'epoch' + creation_time * interval '1 second' as begin,
timestamp 'epoch' + last_change_time * interval '1 second' as last_change
from alarms inner join object_properties
on source_object_id = object_id
order by creation_time desc
Однако я не могу найти поле с отметкой о том, когда аларм был закрыт, а также кем и по какой причине.
Да, искать по БД приходится не от хорошей жизни - в Alarm Log с фильтром по Source удается найти записи до апреля, остальных нет. Хотя в БД с тем же object_id есть записи вплоть до сегодняшнего дня. Что может так влиять на неотображение данных?
Странно. На всякий случай - в лог выдаются первые 400 найденных записей, следующие подгружаются при нажатии "get more data" - действительно больше ничего не выдается?
Спасибо, я просто не увидел кнопочку "get more data" :)
Однако вопрос с выборкой алармов средствами SQL по-прежнему актуален, потому что текущее представление включает слишком много колонок. Актуальность, наверное, потеряется только с решением этой проблемы - https://www.radensolutions.com/chiliproject/issues/224
Вот такой SQL даст пользователей, которые делали acknowledge, resolve, и terminate:
select
op.name,
message,
creation_time as begin,
last_change_time as last_change,
u1.name as user_ack_by,
u2.name as user_resolved_by,
u3.name as user_term_by
from alarms
inner join object_properties op
on source_object_id = object_id
left outer join users u1
on u1.id=ALARMS.ack_by
left outer join users u2
on u1.id=ALARMS.resolved_by
left outer join users u3
on u1.id=ALARMS.term_by
order by creation_time desc
Отдельных timestamp'ов на это нет, при каждом изменении обновляется last_change_time.
Т.е. закрытые алармы - это те, у которых term_by <> 0, и в этом случае дата/время закрытия - last_change_time?
Не совсем так. Надо проверять на alarm_state = 3, term_by может быть равен 0 если аларм был закрыт пользователем admin или системой. last_change_time будет в этом случае содержать время закрытия, да.
понятно, спасибо!