使用效用子系统来监控执行缓慢的服务
启用“效用”子系统时,它将获得有关服务执行持续时间的详细指标。使用此子系统中的服务可检索以下详细信息:
完成服务执行所需的时间 (最短时间、最长时间和平均时间)
服务执行次数
从上次重新启动服务器开始记录统计数据 (以毫秒为单位),但可以通过启用“启用统计数据持久化”选项对其进行持久化。使用 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