监控Google App Engine托管网站的网站流量的最佳方法是什么?
在每个页面处理程序中放置一些代码以将每个页面请求记录到数据存储区是相当简单的,现在(感谢stackoverflow)我将代码发送到log the referring site。
使用数据存储区记录流量时有another question,但它没有考虑其他选项(如果有的话)。
我担心数据存储区很贵。还有另外一种方法吗?人们通常会实施流量监控,还是我过度热心?
如果我通过数据存储区实施流量监控,建议捕获哪些字段?什么是好的和/或常见的做法?
我会选择:时间戳;页;引用者; IP地址;用户名(如果已登录)。还有其他建议吗?
答案 0 :(得分:5)
您提及的所有项目都已由内置App Engine记录器记录。你为什么要复制那个?如果需要,您可以定期下载日志以进行分析。
答案 1 :(得分:3)
人们通常使用Google Analytics(或类似的东西),因为它会进行客户端跟踪,并提供更多洞察力,然后是服务器端跟踪。
如果您只需要服务器端跟踪,那么分析日志就足够了。 Log API的问题在于它可能很昂贵,因为它不会进行真正的查询:对于每个日志搜索,它都会遍历所有日志(在范围内)。
您可能需要查看Mache,这是一个将所有GAE日志导出到具有正确查询功能的Google BigQuery的工具。
另一种选择是download logs并使用本地工具进行分析。 GAE日志采用Apache格式,因此有plenty of tools available。
答案 2 :(得分:1)
您可以使用日志记录模块,它具有单独的配额限制。
7 MB,跨越69天(保留限制的1%)
我不知道限制是什么,但这是我的应用程序中的一行,所以它看起来非常大。
然后,您可以使用
添加到日志中logging.debug("something to store")
如果它还没有附带你需要的东西,那么请在本地读出:
appcfg.py --num_days=0 request_logs appname/ output.txt
答案 3 :(得分:0)
您通过System.err.println
(或等效的python)写出的任何内容都会自动附加到应用引擎日志中。因此,例如,您可以创建自己的日志记录格式,在所有页面上放置println
,然后下载该格式的日志和grep。例如,如果这是您的格式:
MYLOG:url:userid:urlparams
然后下载日志并通过grep ^MYLOG
进行管道传输,它会为您提供网站的所有流量。