The problem is that Google had no problem billing for a metric that they didn't expose to the user and didn't provide tools to debug properly.
2. It isn't up to google to tell you if you are querying against the cache or the DB. It's your code. You should know. Just tick something when you use the Redis/BQ/GCS/SQL client.
This task is so easy I would assign it to a junior engineer and expect code changes done in one day!
2. If the phone company charges me extra they tell me which numbers I called. Here a cache miss started happening. Only in production with no tooling available (at the time) to determine why this was happening. A single number of "data read" was all the information given. Not even the table name... That means you end up looking for a needle in a haystack.
I'm guessing you work for Google because your attitude seems similar. No they don't *have* to provide that service which is exactly why they suck. A service oriented company would make the *effort* to provide a user with this information. Especially a paying user at gold level.
Is that an option in AppEngine? The memcache docs seem to indicate the free tier has undocumented eviction policies.