4

Google アナリティクスを介してページの読み込み速度に関するデータを収集しようとしています。これを、Varnish キャッシュにヒットして返されたページとキャッシュに失敗したページに分割したいと考えています。

これを調べる前に、JS にページ応答のワニス ヘッダーを見てもらい、GA カスタム変数を作成してこれをページごとに追跡すると仮定しました。もちろん、JS はページ ヘッダーにアクセスできないため、現在、少し途方に暮れています。過去に (php-ga を介して) サーバー側の GA トラッキングを機能させましたが、これは実際のページの読み込み時間と結び付ける必要があります。

4

1 に答える 1

1

考えただけですが、「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オブジェクトが配信されたおおよその回数。値0は、キャッシュミスを示します。この変数はvcl_deliverでも使用できます。

これにより、document.cookie変数を使用してJavascript内からこの情報にアクセスできるようになります。jQueryにはこれを簡単にするプラグインがいくつかあると思います。これが私が見つけたプラグインです:Googleのhttps://github.com/carhartl/jquery-cookie 。JSにCookieが存在するかどうかを確認できたら、GAAPIを使用してイベントをログに記録できるようになります。それがお役に立てば幸いです。

于 2012-11-14T22:09:09.840 に答える