<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8</id>
	<title>Определение пользовательской топологии - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;action=history"/>
	<updated>2026-04-30T23:31:36Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=6112&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «Мы продолжаем рассматривать наш Расширение топологии - Пользовательская модель тополо...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=6112&amp;oldid=prev"/>
		<updated>2026-01-19T23:39:03Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Мы продолжаем рассматривать наш Расширение топологии - Пользовательская модель тополо...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Мы продолжаем рассматривать наш [[Расширение топологии - Пользовательская модель топологии|пример логистики Easy Shipping LTD,]] в котором грузовики и контейнеры, установленные на грузовиках, передают телеметрические данные в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
Пример потока данных соответствует формату [[Протокол приема метрических данных|протокола метрической линии Ключ-АСТРОМ]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|truck.fuel.total,trucknr=99,model=mac-granite 10234&lt;br /&gt;
&lt;br /&gt;
truck.fuel.usage,trucknr=99,model=mac-granite 17&lt;br /&gt;
&lt;br /&gt;
truck.operation.hours,trucknr=99,model=mac-granite 23766&lt;br /&gt;
&lt;br /&gt;
truck.fuel.total,trucknr=12,model=mac-anthem 234&lt;br /&gt;
&lt;br /&gt;
truck.fuel.usage,trucknr=12,model=mac-anthem 10&lt;br /&gt;
&lt;br /&gt;
truck.operation.hours,trucknr=12,model=mac-anthem 13766&lt;br /&gt;
&lt;br /&gt;
container.temperature,containernr=234321,trucknr=99 40&lt;br /&gt;
&lt;br /&gt;
container.temperature.dev,containernr=234321,trucknr=99 0&lt;br /&gt;
&lt;br /&gt;
container.temperature,containernr=111111,trucknr=12 39&lt;br /&gt;
&lt;br /&gt;
container.temperature.dev,containernr=111111,trucknr=12 2.5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Определение нового типа сущности ==&lt;br /&gt;
Для определения нового типа сущности укажите имя сущности и задайте правила ее извлечения.&lt;br /&gt;
&lt;br /&gt;
=== Определение имени сущности ===&lt;br /&gt;
На основе приведенного выше примера определите новый тип сущности «Грузовик» в среде Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
# Перейдите в '''Настройки''' '''&amp;gt; Модель топологии &amp;gt; Типы общего назначения'''.&lt;br /&gt;
# Выберите '''Добавить определение типа''', чтобы начать определять собственный пользовательский тип сущности &amp;lt;code&amp;gt;truck&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Укажите уникальное имя типа, которое будет служить идентификатором сущности. &amp;lt;br /&amp;gt;Чтобы гарантировать уникальность имени типа для всей вашей среды Ключ-АСТРОМ, добавьте перед именем типа домен, специфичный для вашей топологии (например, &amp;lt;code&amp;gt;logistics:truck&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Установите для параметра '''Тип отображаемого имени''' удобное для человека отображаемое имя.&lt;br /&gt;
# В поле '''Создано''' укажите имя создателя (человека или добавочный номер).&lt;br /&gt;
&lt;br /&gt;
=== Укажите правила извлечения ===&lt;br /&gt;
Научите Ключ-АСТРОМ, как автоматически сопоставлять новый тип сущности и как идентифицировать уникальные экземпляры сущностей (грузовики).&lt;br /&gt;
&lt;br /&gt;
# Выберите '''Добавить правило извлечения'''.&lt;br /&gt;
# Чтобы указать правило извлечения идентификатора экземпляра для нового типа сущности, установите параметр '''Шаблон извлекаемого идентификатора''' в значение &amp;lt;code&amp;gt;{trucknr}&amp;lt;/code&amp;gt;.  &amp;lt;br /&amp;gt;Необходимо использовать ссылку &amp;lt;code&amp;gt;{placeholder}&amp;lt;/code&amp;gt; на имя измерения, чтобы гарантировать уникальность идентификатора экземпляра. Значение измерения станет идентификатором экземпляра.&lt;br /&gt;
# Чтобы указать правило извлечения имени экземпляра для вашего нового типа сущности, установите шаблон имени экземпляра в значение &amp;lt;code&amp;gt;{trucknr}&amp;lt;/code&amp;gt;. Значение измерения станет именем экземпляра.&lt;br /&gt;
# Чтобы задать правило извлечения для атрибута сущности, выберите '''Добавить правило извлечения атрибута'''. В этом примере данные по каждому грузовику отображаются с учетом измерения &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;, которым является атрибут грузовика:&lt;br /&gt;
#* '''Ключ атрибута:''' уникальный идентификатор правила, из которого нужно извлечь значение атрибута.&lt;br /&gt;
#* '''Отображаемое имя атрибута'''. Вы можете оставить это поле пустым, чтобы использовать ключ в качестве отображаемого имени.&lt;br /&gt;
#* '''Шаблон извлечения значения атрибута'''. Добавьте заполнитель для измерения &amp;lt;code&amp;gt;{model}&amp;lt;/code&amp;gt;. Значение измерения станет именем атрибута.&lt;br /&gt;
&lt;br /&gt;
=== Повторите для дополнительных объектов. ===&lt;br /&gt;
Повторите описанные выше шаги для определения дополнительных сущностей. В этом случае нам по-прежнему необходимо определить тип сущности &amp;lt;code&amp;gt;container&amp;lt;/code&amp;gt;, указать правила ее извлечения (&amp;lt;code&amp;gt;containernr&amp;lt;/code&amp;gt;) и указать правила извлечения для ее атрибутов (&amp;lt;code&amp;gt;trucknr&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
После настройки собственных типов доменов на основе входящих метрик или потоков логов Ключ-АСТРОМ автоматически будет извлекать и создавать новые экземпляры грузовиков и контейнеров всякий раз, когда грузовик или контейнер начинает отправлять свои телеметрические данные.&lt;br /&gt;
&lt;br /&gt;
== Определение взаимосвязи между сущностями ==&lt;br /&gt;
Для завершения определения топологии необходимо установить связь между грузовиком и перевозимым контейнером. Без этой связи измерения, относящиеся к грузовику и контейнеру, будут отображаться в Ключ-АСТРОМ отдельно, без указания топологической связи.&lt;br /&gt;
&lt;br /&gt;
Для установления связи между одним типом сущности и другим типом сущности необходимо найти объединенный поток данных. В нашем примере это измерение температуры контейнера, содержащее оба идентификационных значения: номер грузовика и номер контейнера. &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|container.temperature,containernr=111111,trucknr=12 39&lt;br /&gt;
|}&lt;br /&gt;
Благодаря объединенному потоку данных мы теперь можем определить взаимосвязь между грузовиком и контейнером.&lt;br /&gt;
&lt;br /&gt;
# Перейдите в '''Настройки &amp;gt; Модель топологии &amp;gt; Общие связи'''.&lt;br /&gt;
# Выберите '''Добавить определение связи'''.&lt;br /&gt;
# Выберите '''Добавить источник'''.&lt;br /&gt;
# Укажите источник:&lt;br /&gt;
#* Установите тип источника данных для приема данных на &amp;lt;code&amp;gt;Metrics&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Установите условие &amp;lt;code&amp;gt;$eq(container.temperature)&amp;lt;/code&amp;gt;.  &amp;lt;br /&amp;gt;Это фильтр, который будет соответствовать имени объединяемой метрики. В этом примере &amp;lt;code&amp;gt;$eq(container.temperature)&amp;lt;/code&amp;gt; используется для сопоставления метрики &amp;lt;code&amp;gt;container.temperature&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* Задайте имя типа источника &amp;lt;code&amp;gt;logistics:container&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* Установите тип назначения на &amp;lt;code&amp;gt;logistics:truck&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Установите тип связи на &amp;lt;code&amp;gt;is child of&amp;lt;/code&amp;gt; &amp;lt;br /&amp;gt;Это определяет связь между именем типа источника (&amp;lt;code&amp;gt;logistics:container&amp;lt;/code&amp;gt;) и типом назначения (&amp;lt;code&amp;gt;logistics:truck&amp;lt;/code&amp;gt;), что в данном случае означает, что &amp;lt;code&amp;gt;logistics:container&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;is child of&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;logistics:truck&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Выберите '''Сохранить изменения'''.&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные роли ===&lt;br /&gt;
Использование ролей (таких как клиент и сервер, или вызывающий и вызываемый) необязательно. В нашем примере нам не нужно указывать эти роли, поскольку источник данных для объединения содержит два разных типа сущностей.&lt;br /&gt;
&lt;br /&gt;
Роли необходимы, если вы хотите соединить два экземпляра одного и того же типа сущности с помощью метода объединения.&lt;br /&gt;
&lt;br /&gt;
В качестве примера можно привести график, показывающий время ответа одной службы на вызов другой службы. &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|service.responsetime,caller=service1,callee=service2 39&lt;br /&gt;
|}&lt;br /&gt;
В приведенном выше примере необходимо выделить два экземпляра сервиса одного типа и объединить их с помощью связи вызова.&lt;br /&gt;
&lt;br /&gt;
В этом случае одно правило извлечения должно быть связано с ролью (вызывающий), а другое — с другой ролью (вызываемый).&lt;br /&gt;
&lt;br /&gt;
В процессе извлечения связи роли вызывающего и вызываемого могут быть использованы для определения направления результирующей связи.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>