Применение подсистемы "Использование" для мониторинга медленного выполнения сервисов
Если включить подсистему использования, она будет получать подробные параметры длительности выполнения сервисов. С помощью сервисов этой подсистемы извлекаются следующие сведения:
Время, затрачиваемое сервисом на завершение выполнения (минимальное, максимальное и среднее время)
Число выполнений сервиса
Статистика (в миллисекундах) записывается со времени последнего перезапуска сервера, но может сохраняться, если включить опцию Включить сохраняемость статистики. Используйте сервис WriteStatisticsReport для создания файла CSV, содержащего эту статистику. Файл CSV создается в папке ThingworxStorage.
Параметры собираются только после завершения выполнения сервиса. Если сервис выполняется в бесконечном цикле, что в конечном итоге приводит к сбою сервера, время для этого сервиса не записывается.
Рекомендуется экспортировать и анализировать данные из подсистемы использования для определения длительно выполняемых сервисов. Определив медленный сервис, обновите сервисы для печати строк ведения журнала. Эти журналы могут выводить длительность операций. Иногда ответственность за медленное поведение лежит на определенном наборе параметров или определенном запросе. Ведение журнала параметров в сценарии является простым и надежным способом захвата этих данных. Следующий сценарий можно расширить для печати подробных сведений об операциях, выполнение которых занимает более 30 секунд. Сценарий можно дополнительно обновить для печати параметров сервисов или других требуемых данных:
var startTime= new Date();
// potentially slow operation
var endTime = new Date();
//calculate difference in seconds and print details only if operation takes over 30 seconds
var diff = (endTime.getTime() - startTime.getTime) / 1000 % 60;
if (diff > 30) logger.error("+++Slow operation: " + diff + "seconds "); // add any parameters or queries
Было ли это полезно?