谷歌应用引擎:流量监控



监控Google App Engine托管网站的网站流量的最佳方法是什么?

在每个页面处理程序中放置一些代码以记录对数据存储的每个页面请求是相当简单的,现在(感谢堆栈溢出)我有代码来记录引用站点。

关于使用数据存储记录流量还有另一个问题,但它不考虑其他选项(如果有)。

我担心的是数据存储很昂贵。还有别的办法吗?人们通常实施流量监控,还是我过于热心?

如果我确实通过数据存储实施流量监控,建议捕获哪些字段?什么是好的和/或常见的做法?

我会选择:时间戳; 页面; 引用者;IP地址;用户名(如果已登录)。还有其他建议吗?

您提到的所有项目都已由内置的 App Engine 记录器记录。为什么需要复制它?如果需要,您可以定期下载日志进行分析。

人们通常使用Google Analytics(或类似的东西),因为它可以进行客户端跟踪,并提供比服务器端跟踪更多的见解。

如果您只需要服务器端跟踪,那么分析日志就足够了。日志 API 的问题在于它可能很昂贵,因为它不执行实际查询:对于每个日志搜索,它都会遍历所有日志(在范围内)。

您可能想看看Mache,这是一个将所有GAE日志导出到具有适当查询功能的Google BigQuery的工具。

另一种选择是下载日志并使用本地工具对其进行分析。GAE 日志采用 Apache 格式,因此有很多可用的工具。

您可以使用日志记录模块,该模块带有单独的配额限制。

跨越 69 天的 7 MB 字节(保留限制的 1%)

我不知道限制是什么,但这是我应用程序中的一行,所以它似乎很大。

然后,您可以使用

logging.debug("something to store")

如果它还没有附带您需要的内容,请使用以下内容在本地阅读:

appcfg.py --num_days=0 request_logs appname/ output.txt

您通过 System.err.println(或 python 等效项)写出的任何内容都将自动附加到应用引擎日志中。 因此,例如,您可以创建自己的日志记录格式,在所有页面上放置println,然后下载该格式的日志和 grep。 例如,如果这是您的格式:

MYLOG:url:userid:urlparams

然后下载日志并通过grep ^MYLOG管道传输它,它将为您提供网站的所有流量。