如何以编程方式衡量请求的成本(cpm_usd)?

时间:2013-04-17 14:24:06

标签: java python google-app-engine performance-testing

我希望跟踪到达cpm_usd value前端实例的所有请求的GAE。我在我的应用程序的logs中看到了cpm_usd标头。 但是有没有办法在运行时访问这些数字以便对它们进行图形化?我想为每个端点创建一个接近实时的成本指标。

  • / rest / foo1:$ 0.000011
  • / rest / foo2:$ 0.000013
  • / rest / bar1:$ 0.000014
  • / rest / bar2:$ 0.000016

是否有值得信赖的测试人员程序来执行此操作?如果没有,是否有其他方法可以解决我的日志文件?或者我可以通过在后台解析日志来获取这些数字吗?

更新

正如here所述,我尝试添加sitebricks请求过滤器,拦截{add,set} Header()调用。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    chain.doFilter(request, new HttpServletResponseWrapper((HttpServletResponse) response) {
        @Override
        public void setHeader(String name, String value) {
            if ("X-AppEngine-Estimated-CPM-US-Dollars".equals(name)) {
                // log request costs
            }
            super.setHeader(name, value);
        }

        @Override
        public void addHeader(String name, String value) {
            if ("X-AppEngine-Estimated-CPM-US-Dollars".equals(name)) {
                // log request costs
            }
            super.addHeader(name, value);
        }
    });
}

我认为标题具有不同的名称或GAE设置标题的方式不同。在任何一种情况下,我都没有看到成本标题被捕获。

1 个答案:

答案 0 :(得分:2)

标头由位于实例前面的应用程序服务器添加,因此您无法从代码中访问此标头。

您必须解析日志文件,并可以考虑使用log2bq来执行此操作。

相关问题