Ema has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/316966

Change subject: varnishrls4: use VSL query and proper tags
......................................................................

varnishrls4: use VSL query and proper tags

Extract transactions from the VSM log with a VSL query matching:

- ResourceLoader URLs
- requests with If-None-Match
- responses with Cache-Control

Further, use the right tags in process_transaction.

Bug: T131353
Change-Id: I4b3a5ccc8dedb5ff8b51c3a22ca9cef8efb803dc
---
M modules/varnish/files/varnishrls4
1 file changed, 16 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/66/316966/1

diff --git a/modules/varnish/files/varnishrls4 
b/modules/varnish/files/varnishrls4
index dd03f29..15657c1 100755
--- a/modules/varnish/files/varnishrls4
+++ b/modules/varnish/files/varnishrls4
@@ -35,6 +35,7 @@
 import varnishlog
 import varnishprocessor
 
+
 class ResourceLoaderVarnishLogProcessor(varnishprocessor.VarnishLogProcessor):
     description = 'ResourceLoader Browser Cache Hit Ratio StatsD Reporter'
     key_prefix = 'ResourceLoader'
@@ -44,10 +45,10 @@
         status_code = transaction['RespStatus']
         metric_keys = ['reqs.all', 'resps.' + status_code]
 
-        if 'BerespHeader' in transaction:
+        if 'ReqHeader' in transaction:
             metric_keys.append('reqs.if_none_match')
 
-        cache_control_header = transaction.get('BereqHeader')
+        cache_control_header = transaction.get('RespHeader')
         cache_control = 'no'
         if cache_control_header:
             match = re.search(r'(?<=max-age=)\d+', cache_control_header)
@@ -63,20 +64,20 @@
             self.flush_stats()
 
     def start(self):
+        query = (
+            'ReqURL ~ "/w/load.php" or '    # to match ResourceLoader ReqURLs
+            'ReqHeader: if-none-match or '  # or If-None-Match ReqHeaders
+            'RespHeader: cache-control')    # or Cache-Control RespHeaders
+
         varnishlog.varnishlog((
-            ('n', 'frontend'),     # Consider the frontend Varnish instance
-            ('c', None),           # Only consider interactions with the client
-            ('i', 'RespStatus'),   # Get RespStatus for the HTTP status code
-            ('i', 'BerespHeader'), # Get BerespHeader for If-None-Match header
-            ('i', 'BereqHeader'),  # Get BereqHeader for Cache-control header
-            ('i', 'ReqURL'),       # Get ReqURL to match /w/load.php
-            ('i', 'Timestamp'),    # Get Timestamp to delimit requests
-            ('C', ''),             # Use case-insensitive matching
-            ('I', '^(/w/load\.php'  # ...to match ResourceLoader ReqURLs
-                  '|if-none-match:' # ...or If-None-Match BerespHeaders
-                  '|cache-control:' # ...or Cache-control BereqHeaders
-                  '|([\d.]+ ?){6}$' # ...or Timestamp lines
-                  '|[1-5]\d{2}$)'), # ...or RxStatus codes
+            ('q', query),         # VSL query
+            ('n', 'frontend'),    # Consider the frontend Varnish instance
+            ('i', 'RespStatus'),  # Get RespStatus for the HTTP status code
+            ('i', 'ReqURL'),      # Get ReqURL to match /w/load.php
+            ('i', 'Timestamp'),   # Timestamp lines
+            ('C', ''),            # Use case-insensitive matching
+            ('I', 'ReqHeader:if-none-match'),
+            ('I', 'RespHeader:cache-control'),
         ), self.handle_log_record)
 
 lp = ResourceLoaderVarnishLogProcessor()

-- 
To view, visit https://gerrit.wikimedia.org/r/316966
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4b3a5ccc8dedb5ff8b51c3a22ca9cef8efb803dc
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ema <e...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to