我想跟踪到达我的GAE前端实例的所有请求的cpm_usd 值。我在应用程序的日志中看到了 cpm_usd 标头。但是有没有办法在运行时访问这些数字以便绘制它们?我想为每个端点创建一个近乎实时的成本指标。
- /rest/foo1:0.000011 美元
- /rest/foo2:0.000013 美元
- /休息/bar1:0.000014 美元
- /rest/bar2:0.000016 美元
是否有可信赖的测试程序来执行此操作?如果没有,是否有另一种不涉及解析我的日志文件的方法?或者我只能通过在后台解析日志来获得这些数字?
更新
如此处所述,我尝试添加一个拦截 {add,set}Header() 调用的sitebricks请求过滤器。
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 以不同的方式设置标题。无论哪种情况,我都没有看到成本标头被捕获。