Объект
Объект – это основная сущность, с помощью которой осуществляется сбор данных и мониторинг. Объекты получают и хранят метрики, принадлежат какому-либо Классу, имеют Свойства, Владельца, Состояние и прочие параметры.
Объект может представлять:
-
физическое устройство (сервер, процессор, роутер)
-
программный модуль (базу данных, веб-сервер)
-
высокоуровневый элемент, относящийся к бизнес процессам (сервис, платформу)
Объекты могут иметь неограниченное количество дочерних и родительских объектов. Объекты формируют иерархию с неограниченным уровнем вложенности.
Модель объекта
Поле | Тип | Описание |
---|---|---|
background |
String |
Фоновое изображение объекта. |
created |
Integer |
Временная метка создания объекта. |
class_id |
String |
Идентификатор класса объекта. |
child_ids |
Array<String> |
Массив идентификаторов дочерних объектов. |
child_link_ids |
Array<String> |
Массив идентификаторов дочерних связей. |
child_ref_ids |
Array<String> |
Массив идентификаторов дочерних ссылок. |
client_data |
String |
Клиентские данные объекта. Дополнительная информация в разделе Клиентские данные. |
discovery_id |
String |
Discovery ID объекта. Дополнительная информация в разделе Discovery ID. |
entityType |
Integer |
Тип сущности. Для объекта, тип сущности – |
geoposition |
Array<Float> |
Позиция объекта на карте. Определяется как массив из двух элементов. Первый – широта, второй – долгота. |
geopositionRadius |
Integer |
Радиус геопозиции объекта на карте. |
id |
String |
Идентификатор объекта. |
last_state_update |
Integer |
Временная метка последнего обновления состояния объекта. |
manual_state |
Информация о переводе объекта в ручное состояние. |
|
name |
String |
Имя объекта. |
operations |
Array<Operation> |
Массив операций объекта. |
owner_id |
String |
Идентификатор пользователя, который создал объект или является его владельцем. |
parent_id |
Array<String> |
Массив идентификаторов родительских объектов. |
properties |
Array<Property> |
Массив свойств объекта. |
state_id |
String |
Идентификатор состояния объекта. |
tags |
Array<Tag> |
Массив тегов объекта. |
updated |
Integer |
Временная метка последнего изменения объекта. |
_version |
Integer |
Версия объекта. Версия увеличивается на 1 при изменении любого поля объекта. |
weight |
Integer |
Вес объекта. |
Корневой объект
В системе всегда существует объект с id:1 and class_id:1. Такой объект называется Корневым объектом. Он может быть изменён, но не может быть удален.
{
"id": 1,
"class_id": 1,
"name": "Root",
"parent_id": 0,
...
}
Дочерний объект
Любой объект может иметь один или несколько дочерних объектов.
{
"id": 1,
"name": "Root",
"child_ids": [
2341,
"56778c7251ed68d360e9e8fa"
],
...
}
Родительский объект
Object can have one or several Parent Objects. Любой объект (кроме корневого) может иметь один или несколько родительских объектов.
{
"id": "5b0e9a961b77787888970d8c",
"name": "Host",
"parent_id": [
1011,
"5ac73d88edff0739fbd963de"
],
...
}
Мультиродитель и ссылка
Одному объекту можно задать несколько родительских объектов. Такая ситуация называется мультиродителем.
Иерархию объектов можно сравнить с файловой системой:
-
мультиродитель - жесткая ссылка (hard link);
-
ссылка - символическая или мягкая ссылка (symbolic/soft link).
При удалении объекта с мультиродителем все другие вхождения этого объекта остаются в системе.
При удалении объекта со ссылками удаляются все ссылки на него.
При удалении ссылки объект не изменяется.
Discovery ID
При наличии данного параметра в теле запроса на Создание объекта система проверит существование объекта с аналогичным Discovery ID
и обновит существующий или создаст новый объект.
Данное поле можно использовать как внешний идентификатор, созданный пользователем, при работе с объектами. Любой метод, который использует идентификатор объекта, можно также использовать с Discovery ID`
. Для этого в url запроса необходимо заменить <id> на discovery id:<discovery_id>.
Пример
Клонирование объекта с id = 6013d0c604ab1a73eda738f5 и discovery id = Qwerty:
by ID: http://<saymon_hostname>/node/api/objects/6013d0c604ab1a73eda738f5/clone
by discovery ID: http://<saymon_hostname>/node/api/objects/discovery_id:Qwerty/clone
Discovery ID не должен содержать символов /. |
Discovery ID регистрозависим.
Клиентские данные
Клиентские данные – набор полей, которые определяют отображение объекта в пользовательском интерфейсе. Данные поля указываются в формате JSON и хранятся на сервере в виде строки. Таблица ниже содержит описание всех полей:
Поле | Тип | Описание |
---|---|---|
charts |
Array<Array<String>> |
Массив графиков. Каждый график хранится как отдельный массив, первый элемент которого представляет собой идентификатор графика, а второй – математическую формулу для метрик, отображаемых на графике. |
collapseSections |
Map<String, Boolean> |
Коллекция имён метрик связи, чьи графики должны быть свёрнуты. Каждая запись коллекции представляет собой пару, первый элемент который является названием метрики, а второй - булевым значением. Если значение равно |
custom_style.height |
Integer |
Высота объекта в пикселях. Указывается с суффиксом px. |
custom_style.left |
Integer |
Отступ объекта от левой границы в пикселях. Указывается с суффиксом px. |
custom_style.top |
Integer |
Отступ объекта от верхней границы в пикселях. Указывается с суффиксом px. |
custom_style.width |
Integer |
Ширина объекта в пикселях. Указывается с суффиксом px. |
custom_style.zIndex |
Integer |
Z-индекс объекта. Данный индекс определяет отображение перекрывающих друг друга объектов в Стандартном Виде. Объект с большим значением индекса будет отображаться поверх объекта с меньшим значением индекса. |
headlinePropIds |
Array<String> |
Массив ключей свойств, значения которых должны отображаться на объекте. |
joinedGraphs |
Array<String> |
Массив идентификаторов графиков, отображаемых на общем графике. |
nonPinnedSections |
Map<String, Boolean> |
Коллекция имён секций объекта, которые должны быть откреплены. Каждая запись коллекции представляет собой пару, первый элемент который является названием секции, а второй - булевым значением. Если значение равно |
widgets |
Array<Widget> |
Массив виджетов, сконфигурированных для связи. |