Объект

Объект – это основная сущность, с помощью которой осуществляется сбор данных и мониторинг. Объекты получают и хранят метрики, принадлежат какому-либо Классу, имеют Свойства, Владельца, Состояние и прочие параметры.

Объект может представлять:

  • физическое устройство (сервер, процессор, роутер)

  • программный модуль (базу данных, веб-сервер)

  • высокоуровневый элемент, относящийся к бизнес процессам (сервис, платформу)

Объекты могут иметь неограниченное количество дочерних и родительских объектов. Объекты формируют иерархию с неограниченным уровнем вложенности.

Модель объекта

Поле Тип Описание

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

Тип сущности. Для объекта, тип сущности – 1.

geoposition

Array<Float>

Позиция объекта на карте. Определяется как массив из двух элементов. Первый – широта, второй – долгота.

geopositionRadius

Integer

Радиус геопозиции объекта на карте.

id

String
required

Идентификатор объекта.

last_state_update

Integer

Временная метка последнего обновления состояния объекта.

manual_state

ManualState

Информация о переводе объекта в ручное состояние.

name

String
required

Имя объекта.

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>

Коллекция имён метрик связи, чьи графики должны быть свёрнуты. Каждая запись коллекции представляет собой пару, первый элемент который является названием метрики, а второй - булевым значением. Если значение равно true, соответствующий график будет свернут. Дополнительные информация доступна статье Названия секций.

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>

Коллекция имён секций объекта, которые должны быть откреплены. Каждая запись коллекции представляет собой пару, первый элемент который является названием секции, а второй - булевым значением. Если значение равно true, соответствующая секция будет свернута. Дополнительные информация доступна статье Названия секций.

widgets

Array<Widget>

Массив виджетов, сконфигурированных для связи.