|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.altlinux.jabbix.ZabbixClient
org.altlinux.jabbix.ActiveAgent
public class ActiveAgent
Клиетн Zabbix-сервера, реализующий протокол активных проверок. В первую очередь клиент запрашивает у сервера набор метрик в получении значений которых сервер заинтересован, а затем переодически отправляет на сервер свежие значения данных метрик. Переодическое обновление также может выполняться и для самого набора метрик.
Одним из преимиществ модели активных проверок является то, что она может работать и в том случае, если агент находится за файерволом и поэтому до него нельзя добраться из внешней сети.
Клиент использует (возможно не активный) экземпляр сервера агентов (AgentServer) как инструмент получения значений метрик. Получение каждого значения метрики выполняется асинхронно посредством пула потоков.
| Constructor Summary | |
|---|---|
ActiveAgent(AgentServer agentServer,
ThreadPoolExecutor pool,
long refreshPeriod)
Создаёт экземпляр активного агента с заданными параметрами. |
|
| Method Summary | |
|---|---|
ThreadPoolExecutor |
getPool()
Возвращает пул потоков, который используется при асинхронном получении значений метрик |
long |
getRefreshPeriod()
Возвращает значение периода обновления списка активных проверок. |
void |
run()
Запускает цикл активных проверок. |
void |
setPool(ThreadPoolExecutor pool)
Устанавливает пул потоков, используемый для ассинхронного выполнения задач по получению значений метрик |
void |
setRefreshPeriod(long refreshPeriod)
Устанавливает период обновления списка активных проверок. |
| Methods inherited from class org.altlinux.jabbix.ZabbixClient |
|---|
getAddress, getHostName, setAddress, setAddress, setAddress, setAddress, setHostName |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ActiveAgent(AgentServer agentServer,
ThreadPoolExecutor pool,
long refreshPeriod)
agentServer - интерфейс для получения значений метрикpool - пул потоков для асинхронного получения значений метрикrefreshPeriod - период обновления набора активных проверок (метрик) в миллисекундах| Method Detail |
|---|
public void run()
refreshPeriod. Все активные метрики
помещаются в очередь в порядке их устаревания. Каждый раз, когда
проходит отрезок времени, равный периоду обновления какой-либо метрики, новое значение данной метрики
запрашивается ассинхронно с использованием нового экземпляра задачи
MetricRequest. Задача настраивается таким образом, что
обновлённое значение метрики помещается в другую очередь ResponseQueue. При переносе в очередь, отсчёт времени устаревания
метрики начинается снова, и поэтому каждая обновлённая метрика может
находится в очереди вплоть до истечения значения её параметра refreshPeriod, после чего значение метрики посылается на
сервер. После этого метрика возвращается обратно в список активных
метрик.Когда же устаревает сам список активных проверок, обрабатывающий очередь процесс заверщается (после отправки значений всех ожидающих отправки метрик), и новый список автивных проверок запрашивается у сервера. Создаются новые экземпляры очереди активных проверок и очереди отправки. Таким образом содержащиеся в предыдущем экземпляре очереди устаревшие метрики не возвращаются в новую очередь активных проверок.
run in interface Runnablepublic void setRefreshPeriod(long refreshPeriod)
refreshPeriod - значение периода обновления в миллисекундахActiveMetricTable.setRefreshPeriod(long)public long getRefreshPeriod()
ActiveMetricTable.getRefreshPeriod()public void setPool(ThreadPoolExecutor pool)
pool - интерфейс пула потоковpublic ThreadPoolExecutor getPool()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||