javascript - 在 Google Analytics 中跟踪 Varnish 命中和未命中?

标签 javascript google-analytics varnish

我希望通过 Google Analytics 收集有关页面加载速度的数据,并希望在已返回的页面之间拆分此数据,这些页面命中了 Varnish 缓存,而那些未命中缓存的页面。

在研究这个之前,我只是假设我会让 JS 查看页面响应中的 varnish header ,并创建一个 GA 自定义 var 以在每页的基础上跟踪它。当然,JS 无法访问页眉,所以我目前有点不知所措。过去我已经使服务器端 GA 跟踪工作(通过 php-ga),但这需要与真实世界的页面加载时间联系起来。

最佳答案

只是一个想法,但您可以在“vcl_deliver”子例程中设置一个 cookie。像这样:

sub vcl_deliver {
    if (obj.hits > 0) {
            set resp.http.Set-Cookie = "VarnishHit=Yes;Path=/;";
    }
 return (deliver); }

这基本上是说:如果 obj 有不止一次命中,则设置一个 cookie 说明这一点。您将需要确保您没有覆盖任何其他 cookie,因此如果您使用 cookie,则可能只是将其连接到您现有的 Set-Cookie。有关 obj.hits 的更多信息,请查看此处: https://www.varnish-cache.org/docs/3.0/reference/vcl.html

这是重要的一行:

obj.hits The approximate number of times the object has been delivered. A value of 0 indicates a cache miss. This variable is also available in vcl_deliver.

这将使您可以使用 document.cookie 变量从 Javascript 中访问此信息。我相信 jQuery 有一些插件可以使这更容易,这是我找到的一个:https://github.com/carhartl/jquery-cookie在谷歌上。一旦您可以在 JS 中检查 cookie 是否存在,您就应该能够使用 GA API 来记录事件。希望对您有所帮助。

关于javascript - 在 Google Analytics 中跟踪 Varnish 命中和未命中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386026/

相关文章:

varnish - 如何在 Varnish 中做https?

javascript - js-data v3-将元信息保存在分页端点中

c# - 由于先决条件,Unity Android 运行失败

caching - Varnish - 如何缓存登录用户

python - 使用 GOOGLE Analytics API - 指标/维度

angularjs - 检测用户是否使用 google chrome 的自动填充选项填写表单

Magento 打洞器与 Varnish

javascript - 如何将字符串作为函数传递到react-router-dom Route中?

javascript - RxJS - 等待 5 个事件发生后再继续

javascript - 我的 javascript 代码在 Chrome 中看起来很奇怪