Как с помощью Sql запроса получить список событий и их длительность?
Ad Widget
Collapse
Как с помощью Sql запроса получить список со&a
Collapse
X
-
Никак, нет длительности. Событие (event) это по сути журнал в котором сохраняется факт изменения состояния тригера (там еще есть события дискаверинга, но не об этом речь как я понял).
Длительность в списке в веб-интерфейсе считается на php при генерации страницы. -
у меня крутится скрипт, отправляющий периодически отчеты. Вот кусок кода оттуда, извлекающий собыитя по определенному триггеру. При желании обработку на Php можно засунуть в sql
Code:$trids=$tr_row["triggerid"]; $sql = ' SELECT e.clock, e.value, t.description, h.host '. ' FROM events e, triggers t, hosts h, items i, functions f '. ' WHERE t.triggerid=f.triggerid '. ' AND e.objectid=f.triggerid '. ' AND t.triggerid ='.$trids. ' AND e.clock > '.$start_time. ' AND f.itemid = i.itemid '. ' AND i.hostid = h.hostid '. ' AND e.value_changed = 1 '. ' ORDER by clock '; $result = mysql_query($sql,$DB['DB']); while($row = mysql_fetch_assoc($result)){ //Print information; if($row["value"]==1){ // Begin problem $host_name=$row["host"]; $trigger_name=$row["description"]; $start_problem=$row["clock"]; if($row = mysql_fetch_assoc($result)){ $end_problem=$row["clock"]; } else{ $end_problem=time(); } $duration_problem=$end_problem - $start_problem; $report=$report."Узел:".$host_name." триггрер: ".str_replace("{HOSTNAME}",$host_name,$trigger_name)." время начала: ".date("F j, Y, H:i",$start_problem)." продолжительность: ".SecToTime($duration_problem).$EOL; } }Comment
Comment