我通过检查 x-appengine-estimated-cpm-us-dollars Headers 来衡量GAE请求的成本 . 这很好用,与 x-appengine-resource-usage 和 x-traceurl 结合使用,我甚至可以获得更详细的信息 .
但是,我的应用程序的很大一部分都在任务队列的上下文中运行 . 因此,大部分实例小时成本被队列消耗 . 每次代码都在请求之外执行,其成本不包含在 x-appengine-estimated-cpm-us-dollars 标头中 .
我正在寻找一种方法来衡量每个请求所消耗的全部成本 . 即请求本身生成的成本 and 此请求已添加的任务的成本 .
1 回答
这太过分了 . 有一个工具,您可以下载谷歌应用程序引擎日志并将其转换为sqlite . http://code.google.com/p/google-app-engine-samples/source/browse/trunk/logparser/logparser.py
使用此工具,任务请求和正常请求的cpm usd都将一起下载 . 您可以将每日日志存储到单独的sqlite文件中,并根据需要进行尽可能多的分析 .
在将任务成本与原始请求相关联方面 . 使用此工具下载的日志数据包括
logging
模块的完整输出 .因此,您只需在原始请求中记录生成ID即可
将id传递给任务 .
在任务请求中再次记录收到的ID .
通过id查找正常和任务请求对 .
例如:
EDIT1
我认为还有另一种可能的方法来估算正常请求任务请求的成本 . 诀窍是将异步任务更改为同步(假设成本相同) . 我没有尝试,但尝试更容易 .
因此,在使用DEBUG参数测试正常请求时 . 它将首先处理正常请求,然后返回正常请求的x-appengine-estimated-cpm-us-dollars . 稍后它会将您的测试客户端重定向到相对任务请求(任务请求也可以通过URL客户端作为正常请求进行访问和触发)并返回x-appengine-estimated-cpm-us-dollars用于任务请求 . 您只需将它们组合在一起即可获得总成本 .