6

我一直在 GAE 上开发一个 java 应用程序,它使用 cloud sql、calender api、mail API 和 data-store 等服务。所以我的问题是我需要为访问我的应用程序的用户测量这些服务的使用情况。这将基于他们在云 sql 上执行了多少 I/O 或他们存储了多少数据。有什么办法吗?

4

2 回答 2

1

目前没有办法计量每项服务的使用情况。但这可能会帮助您获取每个请求的成本和 CPU 使用率。

App Engine 将在它发送给您的所有 HTTP 响应中包含几个额外的标头。以下是有助于衡量资源使用情况和 Estimated-CPM-US-Dollars 的 HTTP 标头:

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

于 2013-08-22T08:08:56.460 回答
1

没有内置的方法来计量每个用户的配额。您可能能够通过跟踪每个用户对这些资源的访问并将它们存储在数据存储中而侥幸,但这会增加使用量。每次使用需要 2 次写入,如果已编入索引,则需要 4 次。

如果您不需要精确计量,并且如果 Google 的资源不足会丢失计量数据,您可以将其作为用户名/id->计量数据存储在 memcache 中。它是在尽力而为的基础上提供的,如果与您自己的每个应用程序的健全性限制相关联并且不需要向用户收费,这应该足够了。

两者可以最佳地一起使用。每隔几分钟到一个小时,将 memcached 使用详情写入数据存储,如果数据从 memcache 丢失(除非您购买专用的 memcache),从数据存储恢复(可能估计过去丢失期间的使用情况)。

于 2013-08-22T07:30:30.533 回答