ダウンロード統計を分析する



Nginx + Luaバンドルを使用するというトピックを続けて、静的データの読み込みをカウントし、Googleアナリティクスでこれらすべてを考慮することについて、少しの説明を共有することにしました。



nginx-luaバンドルがすでに構成されており、カウンター名があると仮定します。 そうでなければ、ネットワークには多くの指示があり、既製のアセンブリもあります( openresty.org )。

アカウンティングには、データをGAに送信するスクリプトが必要です。 私は自分で書きたくありませんでした。Githubのオープンスペースで例が見つかりました: github.com/wstucco/ssga.luaこのスクリプトには1つのトラックメソッドがあります。 。 トリガーされた後、リアルタイム統計パネルに、送信されたパスが表示されます。

ダウンロードを検討する方法は2つあります。



最初のオプションは、ファイルをカテゴリ/グループに分割する意味がない場合、またはこれを実行できないが統計を保持する場合に便利です。 2番目のオプションは、セクションのカテゴリタイプなど、厳密なファイル構造がある場合に適しています。

両方を検討してください。



シンプルな方法の追跡


特別な操作や準備を必要としない最も簡単な方法。 したがって、nginx構成の最後の部分のみを提供します。



resolver 8.8.8.8; access_by_lua ' local ssga = require( "ssga" ) ssga.track({ua = "UA-25XXXXXX-1") ';
      
      





再起動して、GAで実行中のレコードを楽しんでください。



イベントアカウンティング


この方法では、ダウンロードしたファイルをどのように修飾するかを決定する必要があります。 GAに関しては、カテゴリ、アクション、ラベルの3つのエンティティを区別する必要があります。 私の場合、これにはフォルダー名を使用し、ダウンロードしたファイルの最終URLはdl.domain.name/category/action/label/filename.extでした。

この情報をGAに転送するには、既存のスクリプトを教える必要もありました。 わずかな変更の後、スクリプトの拡張バージョンが取得されました( github.com/fuCtor/ssga.lua )。

その結果、次の構成になります。



 server { listen 80; server_name dl.domain.name; root /var/www/public; error_page 502 /502.html; location / { add_header Cache-Control public; expires max; resolver 8.8.8.8; access_by_lua ' opt = {} index = 0 for value in string.gmatch(ngx.var.uri ,"%w+") do opt [index] = value index = index + 1 end local ssga = require( "ssga" ) ssga.event({ua = "UA-25XXXXXX-1", domain = "dl.domain.name", category = opt[0], action = opt[1], label = opt[2], value = 1}) '; } }
      
      





リロードを保存します。 これで、ダウンロードに関する統計を便利な形式で保持し、さまざまなスライスを作成できます。



性能


カウンターがどれだけ正確に動作するかを確認します。そのため、HEADリクエストを実行します。本文は興味を持ちません。



 Concurrency Level: 30 Time taken for tests: 3.223 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 348000 bytes HTML transferred: 0 bytes Requests per second: 310.26 [#/sec] (mean) Time per request: 96.694 [ms] (mean) Time per request: 3.223 [ms] (mean, across all concurrent requests) Transfer rate: 105.44 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 94 95 0.6 95 99 Waiting: 94 95 0.6 95 99 Total: 94 95 0.6 95 99
      
      





 Concurrency Level: 30 Time taken for tests: 0.048 seconds Complete requests: 200 Failed requests: 0 Write errors: 0 Total transferred: 69600 bytes HTML transferred: 0 bytes Requests per second: 4166.58 [#/sec] (mean) Time per request: 7.200 [ms] (mean) Time per request: 0.240 [ms] (mean, across all concurrent requests) Transfer rate: 1415.99 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.3 0 1 Processing: 6 6 0.8 6 9 Waiting: 6 6 0.8 6 9 Total: 6 7 0.9 6 10
      
      







ヘッダーの画像はここから取得されます



All Articles