我一直在GAE上开发一个java应用程序,它使用云sql、日历api、邮件API和数据存储等服务。所以我的问题是,我需要衡量访问我的应用程序的用户对这些服务的使用情况。这将基于他们在云sql上执行了多少I/O或存储了多少数据。有没有办法做到这一点?
发布于 2013-08-22 15:30:31
没有内置的方法来计量每个用户的配额。您也许能够跟踪每个用户对这些资源的访问,并将它们存储在数据存储中,尽管这会增加使用率。每次使用都需要2次写入,如果已索引,则需要4次写入。
如果你不需要精确的计量,并且如果谷歌的资源耗尽,计量数据会丢失,你可以将其作为username/id->计量数据存储在memcache中。它是在尽力而为的基础上提供的,如果与您自己的每个应用程序的理智限制捆绑在一起,应该就足够了,并且没有必要向用户收费。
这两者可以很好地结合使用。每隔几分钟到一小时,将memcached使用情况详细信息写入数据存储区,如果memcache中的数据丢失(除非您购买了专用的memcache),则从数据存储区恢复(可能估计在过去丢失的时间段内的使用率)。
发布于 2013-08-22 16:08:56
目前还没有办法测量每个服务的使用情况。但这可能会帮助您获得每个请求的成本和CPU使用率。
App Engine将在它发送给您的所有HTTP响应中包含两个额外的头部。以下是HTTP标头,可以帮助计量资源使用情况& Estimated-CPM-US-Dollars:
X-AppEngine-Resource-Usage: ms=293 cpu_ms=500 api_cpu_ms=236
X-AppEngine-Estimated-CPM-US-Dollars: $0.012320
这里有一些参考:http://googleappengine.blogspot.in/2009/08/new-features-in-124.html https://developers.google.com/appengine/docs/java/#Java_Responses
https://stackoverflow.com/questions/18374192
复制相似问题