• Техновижн

Работа с инструментом обнаружения аномалий ThingWatcher

Updated: Aug 30, 2018


Материалы:

  • Видео от PTC по развертыванию микросервисов ThingWatcher через jar-файлы.

  • Проект от PTC по использованию системы обнаружения аномалий с пошаговыми инструкциями.

  • О ресурсоемкости AnomalyDetection.

  • Гайд по установке ThingWatcher от PTC.

  • Гайд по всей ThingWorx Analytics 8 от PTC (там есть раздел Anomaly Detection).

  • Скачать демонстрационный мэшап.

  • Видео по созданию Anomaly Alert.

  • Видео про использование стандартного Anomaly Detection Mashup.


ThingWatcher Microservices удобно устанавливать на том же сервере, где и установлен ThingWorx Foundation, но можно устанавливать и на другом.



Разворачивание микросервисов в первый раз


Для того, чтобы развернуть ThingWatcher:

  • Скачайте архив в личном кабинете на сайте support.ptc.com, либо здесь

  • Извлеките файлы в папку C:\AnomalyMicroservices

  • В папке AnomalyMicroservices создайте папку files, а в папке files создайте папку models.

  • Создайте в папке AnomalyMicroservices файл microservices.properties если нет.

  • Откройте этот файл в режиме редактирования. Если есть Notapad ++, то для редактирования удобно использовать его.

В этом файле должен быть следующий текст: results.destination.uri=results://127.0.0.1:8081/results/models

file.storage.path=file:///C:/AnomalyMicroservices/files/models

dataset.webservices.url=

dataset.app.id=

dataset.app.key=

  • Откройте файл results-h2-file.yml в режиме редактирования. Если есть Notapad ++, удобно использовать его.

  • В этом файле измените строчку «url: jdbc:h2:file:/tmp/model-db» на «url: jdbc:h2:file:C:\AnomalyMicroservices\db\model-db».

  • Также измените applicationConnectors порт с 8080 на 8081, а adminConnectors порт с 8081 на 8082.

  • Откройте командную строку и перейдите в папку с Anomaly Detection. Для этого напишите cd C:\AnomalyMicroservices\ и нажмите Enter.

  • В командной строке напишите "java -Dproperties.file=C:\AnomalyMicroservices\microservices.properties -jar result-standalone-2.0.3-bin.jar server results-h2-file.yml".

  • Дождитесь, пока запустится первый микросервис.

  • В браузере введите http://localhost:8081/results/models. Должно появиться сообщение {"values":[],"total":0,"next":null,"previous":null}.

  • Откройте файл training-standalone-single.yml в режиме редактирования. Если есть Notapad ++, удобно использовать его.

  • В этом файле измените строчку «url: jdbc:h2:mem:/data/training/db:training» на «url: jdbc:h2:file:C:\AnomalyMicroservices\training\db.training».

  • Также измените applicationConnectors порт с 8080 на 8091, а adminConnectors порт с 8081 на 8092.

  • Откройте окно с новой командной строкой и перейдите в папку с Anomaly Detection. Для этого напишите cd C:\AnomalyMicroservices\ и нажмите Enter.

  • В этом окне командной строки напишите "java -Dproperties.file=C:\AnomalyMicroservices\microservices.properties -jar training-standalone-2.0.5-bin.jar server training-standalone-single.yml".

  • Дождитесь, пока запустится второй микросервис.

  • Напишите еще в браузере http://localhost:8084/training. Должно появиться сообщение {"values":[],"total":0,"next":null,"previous":null}.



Настройки в ThingWorx Composer

  • В ThingWorx Composer откройте объект AlertProcessingSubsystem.

  • В разделе Configuration задайте адрес training-сервиса (Anomaly Detection Training Service URI). Например, thingworx.britishdesign.ru:8091/training

  • Там же задайте адрес results-сервиса (Anomaly Detection Results Service URI). Например, thingworx.britishdesign.ru:8081/results/models


Запуск ThingWatcher (повторное разворачивание микросервисов)

  • Откройте командную строку и перейдите в папку с Anomaly Detection. Для этого напишите cd C:\AnomalyMicroservices\ и нажмите Enter.

  • В командной строке напишите "java -Dproperties.file=C:\AnomalyMicroservices\microservices.properties -jar result-standalone-2.0.3-bin.jar server results-h2-file.yml".

  • Дождитесь, пока запустится первый микросервис.

  • Откройте окно с новой командной строкой и перейдите в папку с Anomaly Detection. Для этого напишите cd C:\AnomalyMicroservices\ и нажмите Enter.

  • В этом окне командной строки напишите "java -Dproperties.file=C:\AnomalyMicroservices\microservices.properties -jar training-standalone-2.0.5-bin.jar server training-standalone-single.yml".

  • Дождитесь, пока запустится второй микросервис.


Добавление нового предупреждения для свойства вещи в ThingWorx Composer

Добавление Anomaly Alert доступно только в новой версии ThingWorx Composer.

  • Создайте Value Stream для хранения данных. Это нужно для обучения.

  • Создайте Remote Thing. Для этой вещи задайте Value Stream из предыдущего пункта.

  • Для этой вещи создайте свойство, за которым необходимо следить. При создании поставьте галочки напротив Logged и Persistent.

  • Для этого свойства создайте новый Alert типа Anomaly.

  • Измените значения в полях 1,2 и 3 при необходимости.

Все поля описаны в таблице ниже.

  • Сохраните вещь. После сохранения вещи статус предупрежденияя (Alert) должен измениться на Initialized.

Если статус "Initialization Failed", смотрите, как можно устранить исправить здесь.



Обучение модели

Когда Anomaly Alert в статусе Initialized, значит, система готова к получению данных о нормальном функционировании изделия. После того, как свойства начали изменяться, статус предупреждения должен сначала измениться с Initialized на Calibrating, а после калибровки на Training. Затем еще через примерно 500 обновлений значений статус должен измениться на Buffering. Статус Buffering показывает, что модель создана, а входящие данные синхронизованы с моделью.


Использование программы-симулятора

Для знакомства с функционалом инструмента в качестве внешнего источника данных удобно использовать симулятор.

  • Скачайте симулятор здесь.

  • Откройте командную строку и в ней перейдите в папку, в которой находится симулятор - команда cd <путь к папке с симулятором>. Например, если симулятор находится в корне диска C, то команда cd C:/

  • В той же командной строке напишите java -jar DeviceSimulator.jar ws://<адрес сервера>/Thingworx/WS <ключ приложения> <название вещи> 250. Последний параметр нужен, чтобы добавить шум к симулированным данным. Пример команды: java -jar DeviceSimulator.jar ws://thingworx.britishdesign.ru:8080/Thingworx/WS 0f3deced-ee6f-4925-ab46-09f9560277a6 TV.ThingWatcherHelperThing 250

Примечание. Если используется протокол https, напишите wss вместо ws


Симулятор отправляет данные в свойство rampValue. Нужно 1) создать это свойство в вещи и 2) связать его с Remote Property через Manage Bindings (перетащить rampValue из списка слева на это свойство в списке справа).


0 views