public class AgentServer
extends java.lang.Object
implements java.lang.Runnable
MetricAgent
и множеством ключей метрик. Действующий сервер агентов -- это пассивный компонент системы мониторигна. Он обслуживает по сети запросы на получение значений метрик с использованием протокола Zabbix (т.е. JabbixProtocol
). Каждый ключ метрики -- это текстовая строка, которая может быть поставлена во взаимно однозначное соответствие с агентом метрики (MetricAgent
). Однако проекция нескольких ключей в один агент также возможна, при этом делается предположение о том, что точка (.) является разделителем компонентов. Для заданного мультикомпонентного ключа выбирается наиболее длиное совпадение слева, если есть.
Входящие запросы обрабатываются по возможности асинхронно, с использованием пула потоков (см. ThreadPoolExecutor
).
Constructor and Description |
---|
AgentServer(java.util.concurrent.ThreadPoolExecutor pool)
Создаёт новый экземпляр сервера агентов, использующий указанный пул потоков для обработки входящих запросов.
|
Modifier and Type | Method and Description |
---|---|
MetricAgent |
getMetricAgent(java.lang.String key)
Возвращает агент метрики зарегистрированный для указанного ключа метрики.
|
java.util.Map |
getMetricAgentMap()
Возвращает набор соответствий ключ метрики -> агент метрики.
|
java.util.concurrent.ThreadPoolExecutor |
getPool()
Возвращает пул потоков, используемый для обработки входящих запросов.
|
int |
getPort()
Возвращает номер порта серверного сокета.
|
void |
run()
Производит запуск рабочего цикла.
|
void |
setMetricAgentMap(java.util.Map map)
Устанавливает набор соответствий ключ метрики -> агент метрики.
|
void |
setPool(java.util.concurrent.ThreadPoolExecutor pool)
Установить пул потоков для обработки входящих запросов.
|
void |
setPort(int port)
Устанавливает номер порта серверного сокета.
|
public AgentServer(java.util.concurrent.ThreadPoolExecutor pool)
pool
- интерфейс пула потоковpublic int getPort()
public void setPort(int port)
port
- номер порта, на котором ожидать подключенияpublic void run()
менеджер безопасности
не препятствует этому, добавляет новый запрос на выборку метрики (JabbixRequest
) в очередь задач (см. AgentServer.getPool()
) и начинает новую итерацию. Если очередь задач является блокируемой, новая итерация может быть заблокирована до тех пор, пока некоторое количество предыдущих задач не будет выполнено.
run
in interface java.lang.Runnable
public java.util.Map getMetricAgentMap()
public void setMetricAgentMap(java.util.Map map)
map
- набор пар (ключ метрики, агент метрики)public MetricAgent getMetricAgent(java.lang.String key)
MetricAgent
). Однако проекция нескольких ключей в один агент также возможна, при этом делается предположение о том, что точка (.) является разделителем компонентов. Для заданного мультикомпонентного ключа выбирается наиболее длиное совпадение слева, если есть.key
- имя метрикиpublic void setPool(java.util.concurrent.ThreadPoolExecutor pool)
pool
- интерфейс пула потоковpublic java.util.concurrent.ThreadPoolExecutor getPool()