做一个系统监控组件,求思路
如题,要做一个类似大众点评的CAT监控系统,因为是公共部门,所以想以组件的形式发行。现在的想法是从IHttpModel着手,拦截请求,并形成消息树,通知Socket线程把数据发送到Redis。
我想记录整个Web请求中的URL,请求时间以及业务系统中方法的执行时长,是否健康等(这个以通过AOP实现)。
我的整个消息树的结构应该是这样的:客户端发起第一个请求,我记录下来,代码中发起的接口调用也要记录下来,2者要有对应关系,直到整个请求结束,形成一个类型Chrome的TimeLine;
如果是浏览器中过来的请求,可以监控到,但是后台代码中会调用很多接口,有SOA的,WCF的,WebServices的,要充分考虑这种情况。我就无法把浏览器中的请求和服务端中方法调用的请求关联起来,这样就无法形成一整个生命周期了。本来想在Header中加一个GUID来标识,然后后台执行的代码获取这个GUID。
问题:如何才能把2者关联起来呢?