系统开发好上线后,其运行状况能否方便获得对系统的维护和问题诊断具有重要意义。在设计系统时如果没有把系统运行轨迹记录下来,当出现问题需要查找时就比较尴尬了,尤其是大型系统。记录系统运行轨迹需要满足几方面的要求:
首先应尽可能减少对系统本身性能的影响,因为记录附加信息总是要消耗资源的,这种情况下对运行轨迹的记录可采用异步方式,为了保证轨迹的顺序性,需要将轨迹信息放入一个消息队列,该队列实现先进先出,另外的线程或进程从该消息队列中读取轨迹信息,保存到文件或数据库表中。
其次,记录的轨迹能被方便地进行查询和分析,对量化的轨迹信息可以图表方式展示。可以自定义轨迹的记录格式,可定义在产生特定类型轨迹信息或某度量值达到阀值时触发通知(邮件、短信),可按时间段或关键字对轨迹信息进行查询。
上述系统轨迹信息记录功能可以工具库方式来实现,分为两部分,一部分嵌入应用系统中,获取轨迹信息,这是工具库和应用系统的交互接口,主要定义轨迹信息内容(系统标识、系统说明、轨迹类别、轨迹量化值、计量单位、轨迹描述等)。另一部分是轨迹信息显示系统,从已保存的应用系统轨迹信息中查询出感兴趣的信息。这部分功能可用Web方式实现。由于不同系统记录的轨迹信息不同,在展示时也会不一样,因此轨迹查询系统中可以插入自定义的解析模块来读取特定系统产生的轨迹信息。
应用系统和轨迹跟踪系统关系如下图所示:
应用系统内嵌入的轨迹记录器获得需要记录的轨迹信息,放入到消息队列中,消息队列中的信息然后被保存到文件或数据库系统,如果满足触发条件,则触发通知。 轨迹查询系统从文件或数据库中查询数据进行展示。