3

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

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

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

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

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

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

4

4 回答 4

5

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

于 2012-12-15T10:48:38.533 回答
3

人们通常使用谷歌分析(或类似的东西),因为它进行客户端跟踪并提供比服务器端跟踪更多的洞察力。

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

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

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

于 2012-12-15T11:44:53.217 回答
1

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

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

我不知道限制是多少,但这是我的应用程序中的一条线,所以它似乎很大。

然后,您可以添加到日志中

logging.debug("something to store")

如果它还没有包含您需要的内容,请使用以下命令在本地读取:

appcfg.py --num_days=0 request_logs appname/ output.txt
于 2012-12-15T10:53:37.090 回答
0

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

MYLOG:url:userid:urlparams

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

于 2012-12-15T10:53:01.570 回答