web-analytics – 带时序的日志记录请求

记录Web应用程序的http请求的最佳方法是什么,包括ajax请求,这样我以后可以回过头来查询“我想知道这个请求发生了多少次,以及平均需要多长时间”,或“向我显示前5个最高平均时间请求”

您是否会使用当前生产数据库中的单独数据库来记录这些内容,以防止所有这些插入导致IO减速,或者这最终不会产生重大影响?

您是否会批量提出请求然后推送到数据库,还是会为每个请求执行一次插入?

除了在应用程序逻辑中包装每个请求处理程序之外,还有更好的方法添加此请求登录时间,例如:

start = CurrentTime()
/* request handler code */
end = CurrentTime()
Insert(requestName,start,(end - start))

解决方法

您应该能够将Web服务器日志用于此目的. Apache和IIS记录捕获URL,查询字符串,响应代码和持续时间.如果AJAX请求通过HTTP POST接收数据,则需要更改Web服务器的配置以捕获该数据(如果它对您很重要).然后,我发现用于日志分析的最佳工具是 Microsoft’s Log Parser,它可以很好地处理带有sql语法的大型文件,以计算您要问的各种问题的答案.

但是,如果您打算自己滚动,请使用某种本地日志记录.并使用一个日志框架 – 例如log4J – 它足够智能缓冲磁盘写入以最小化I / O,滚动日志文件删除文件.这是针对群集服务器的更具可扩展性的方法,否则每个服务器都会不断地访问数据库.如果要将数据放入表中,请将其作为批处理过程,例如每小时或每天一次.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些