Ema has submitted this change and it was merged.

Change subject: varnish: rename scripts depending on varnishlog.py
......................................................................


varnish: rename scripts depending on varnishlog.py

We do not need to have two different versions of the python varnishlog
scripts now that the upgrade to Varnish 4 is finished.

Bug: T150660
Change-Id: I5b1024c268a9ddf21d5596bc5338d54e9286ea97
---
M modules/varnish/files/varnishmedia
D modules/varnish/files/varnishmedia4
M modules/varnish/files/varnishprocessor/varnishprocessor.py
D modules/varnish/files/varnishprocessor4/__init__.py
D modules/varnish/files/varnishprocessor4/varnishprocessor.py
M modules/varnish/files/varnishreqstats
D modules/varnish/files/varnishreqstats4
M modules/varnish/files/varnishrls
D modules/varnish/files/varnishrls4
M modules/varnish/files/varnishstatsd
D modules/varnish/files/varnishstatsd4
M modules/varnish/files/varnishxcache
D modules/varnish/files/varnishxcache4
M modules/varnish/files/varnishxcps
D modules/varnish/files/varnishxcps4
M modules/varnish/manifests/common.pp
M modules/varnish/manifests/logging/media.pp
M modules/varnish/manifests/logging/reqstats.pp
M modules/varnish/manifests/logging/rls.pp
M modules/varnish/manifests/logging/statsd.pp
M modules/varnish/manifests/logging/xcache.pp
M modules/varnish/manifests/logging/xcps.pp
22 files changed, 80 insertions(+), 1,014 deletions(-)

Approvals:
  Ema: Verified; Looks good to me, approved



diff --git a/modules/varnish/files/varnishmedia 
b/modules/varnish/files/varnishmedia
index 2466134..27a0535 100755
--- a/modules/varnish/files/varnishmedia
+++ b/modules/varnish/files/varnishmedia
@@ -42,7 +42,7 @@
 
     def process_transaction(self, transaction):
         """Process a single completed transaction."""
-        status_code = transaction.get('TxStatus')
+        status_code = transaction.get('RespStatus')
         if status_code is None:
             return
 
@@ -56,11 +56,11 @@
 
     def start(self):
         varnishlog.varnishlog((
-            ('m', 'RxURL:/thumb/'), # Only look at thumb requests
-            ('n', 'frontend'),      # Consider the frontend Varnish instance
-            ('i', 'TxStatus'),      # Get TxStatus for the HTTP status code
-            ('i', 'RxURL'),         # Get RxURL to delimit requests
-            ('i', 'ReqEnd'),        # Get ReqEnd to delimit requests
+            ('q', 'ReqURL ~ "/thumb/"'), # Only look at thumb requests
+            ('n', 'frontend'),           # Only frontend Varnish instance
+            ('i', 'RespStatus'),         # RespStatus for the HTTP status code
+            ('i', 'ReqURL'),             # ReqURL to delimit requests
+            ('i', 'Timestamp'),          # Timestamp to delimit requests
         ), self.handle_log_record)
 
 lp = MediaVarnishLogProcessor()
diff --git a/modules/varnish/files/varnishmedia4 
b/modules/varnish/files/varnishmedia4
deleted file mode 100755
index 27a0535..0000000
--- a/modules/varnish/files/varnishmedia4
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-  varnishmedia
-  ~~~~~~~~~~~~
-
-  Accumulate browser cache hit ratio and total request volume statistics
-  for media requests and report to StatsD.
-
-  Usage: varnishmedia [--statsd-server SERVER] [--key-prefix PREFIX]
-
-    --statsd-server SERVER  statsd server (default: none; echo to stdout)
-    --key-prefix PREFIX     metric key prefix (default: 
media.thumbnail.varnish)
-
-  Copyright 2015 Ori Livneh <[email protected]>
-  Copyright 2015 Gilles Dubuc <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-from __future__ import division
-
-import re
-
-import varnishlog
-import varnishprocessor
-
-
-class MediaVarnishLogProcessor(varnishprocessor.VarnishLogProcessor):
-    description = 'Media Browser Cache Hit Ratio StatsD Reporter'
-    key_prefix = 'media.thumbnail.varnish'
-
-    def process_transaction(self, transaction):
-        """Process a single completed transaction."""
-        status_code = transaction.get('RespStatus')
-        if status_code is None:
-            return
-
-        metric_keys = ['reqs.all', 'resps.' + status_code]
-
-        for key in metric_keys:
-            self.stats[key] = self.stats.get(key, 0) + 1
-
-        if self.stats['reqs.all'] > 10000:
-            self.flush_stats()
-
-    def start(self):
-        varnishlog.varnishlog((
-            ('q', 'ReqURL ~ "/thumb/"'), # Only look at thumb requests
-            ('n', 'frontend'),           # Only frontend Varnish instance
-            ('i', 'RespStatus'),         # RespStatus for the HTTP status code
-            ('i', 'ReqURL'),             # ReqURL to delimit requests
-            ('i', 'Timestamp'),          # Timestamp to delimit requests
-        ), self.handle_log_record)
-
-lp = MediaVarnishLogProcessor()
diff --git a/modules/varnish/files/varnishprocessor/varnishprocessor.py 
b/modules/varnish/files/varnishprocessor/varnishprocessor.py
index 099a735..e286093 100644
--- a/modules/varnish/files/varnishprocessor/varnishprocessor.py
+++ b/modules/varnish/files/varnishprocessor/varnishprocessor.py
@@ -63,13 +63,13 @@
     def handle_log_record(self, transaction_id, tag, record, remote_party):
         """VSL_handler_f callback function."""
 
-        if tag == 'RxURL':
+        if tag == 'ReqURL':
             # RxURL is the first tag we expect. If there are any existing
             # records for this transaction ID, we clear them away.
             self.transactions[transaction_id] = {tag: record}
-        elif tag == 'ReqEnd':
-            # ReqEnd is the last tag we expect. We pop the transaction's
-            # records from the buffer and process it.
+        elif tag == 'Timestamp' and 'Resp' in record:
+            # This is the last tag we expect. We pop the transaction's records
+            # from the buffer and process it.
             transaction = self.transactions.pop(transaction_id, None)
             if transaction is not None:
                 transaction[tag] = record
diff --git a/modules/varnish/files/varnishprocessor4/__init__.py 
b/modules/varnish/files/varnishprocessor4/__init__.py
deleted file mode 100644
index c73bf42..0000000
--- a/modules/varnish/files/varnishprocessor4/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .varnishprocessor import VarnishLogProcessor  # noqa
diff --git a/modules/varnish/files/varnishprocessor4/varnishprocessor.py 
b/modules/varnish/files/varnishprocessor4/varnishprocessor.py
deleted file mode 100644
index e286093..0000000
--- a/modules/varnish/files/varnishprocessor4/varnishprocessor.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-  VarnishLogProcessor
-  ~~~~~~~~~~~~~~~~~~~
-
-  Processes Varnish log data and sends the output to statsd
-
-  Copyright 2015 Ori Livneh <[email protected]>
-  Copyright 2015 Gilles Dubuc <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-import argparse
-import io
-import socket
-import urlparse
-
-
-class VarnishLogProcessor:
-    description = 'Varnish Log Processor'
-    key_prefix = None
-    statsd_server = None
-
-    def __init__(self):
-        ap = argparse.ArgumentParser(
-            description=self.description,
-            epilog='If no statsd server is specified, prints stats to stdout.'
-        )
-
-        print self.key_prefix
-
-        ap.add_argument('--key-prefix', help='metric key prefix',
-                        type=parse_prefix_string, default=self.key_prefix)
-        ap.add_argument('--statsd-server', help='statsd server',
-                        type=parse_statsd_server_string, default=None)
-        args = ap.parse_args()
-
-        if args.key_prefix is not None:
-            self.key_prefix = args.key_prefix
-
-        if args.statsd_server is not None:
-            self.statsd_server = args.statsd_server
-
-        if self.statsd_server:
-            self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-
-        self.stats = {}
-        self.transactions = {}
-
-        self.start()
-
-    def handle_log_record(self, transaction_id, tag, record, remote_party):
-        """VSL_handler_f callback function."""
-
-        if tag == 'ReqURL':
-            # RxURL is the first tag we expect. If there are any existing
-            # records for this transaction ID, we clear them away.
-            self.transactions[transaction_id] = {tag: record}
-        elif tag == 'Timestamp' and 'Resp' in record:
-            # This is the last tag we expect. We pop the transaction's records
-            # from the buffer and process it.
-            transaction = self.transactions.pop(transaction_id, None)
-            if transaction is not None:
-                transaction[tag] = record
-                self.process_transaction(transaction)
-        else:
-            # All other tags are buffered.
-            transaction = self.transactions.get(transaction_id)
-            if transaction is not None:
-                transaction[tag] = record
-        return 0
-
-    def flush_stats(self):
-        """Flush metrics to standard out or statsd server."""
-        buf = io.BytesIO()
-        while self.stats:
-            key, value = self.stats.popitem()
-            metric = '%s.%s:%s|c\n' % (self.key_prefix, key, value)
-            buf.write(metric.encode('utf-8'))
-        buf.seek(io.SEEK_SET)
-        if self.statsd_server:
-            self.sock.sendto(buf.read(), self.statsd_server)
-        else:
-            print(buf.read().decode('utf-8').rstrip())
-
-    def process_transaction(self, transaction):
-        pass
-
-    def start():
-        pass
-
-
-def parse_statsd_server_string(server_string):
-    parsed = urlparse.urlparse('//' + server_string)
-    return parsed.hostname, parsed.port or 8125
-
-
-def parse_prefix_string(prefix):
-    print prefix
-
-    prefix = prefix.strip('.')
-    if not prefix:
-        raise ValueError('Key prefix must not be empty')
-    return prefix
diff --git a/modules/varnish/files/varnishreqstats 
b/modules/varnish/files/varnishreqstats
index 9ed812d..3917878 100755
--- a/modules/varnish/files/varnishreqstats
+++ b/modules/varnish/files/varnishreqstats
@@ -8,7 +8,8 @@
   - HTTP Status type (ok, error)
   - HTTP Method (GET, POST, etc.)
 
-  Copyright 2015 Andrew Otto <[email protected]>
+  Copyright 2015-2016 Andrew Otto <[email protected]>
+                 2016 Emanuele Rocca <[email protected]>
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
@@ -110,6 +111,7 @@
         for k in counts.keys():
             statsd_pipe.incr(k, counts[k])
 
+
 def reset_counts():
     """
     Resets the global counts and last_published_at
@@ -118,6 +120,7 @@
     global counts, last_published_at
     counts = copy.deepcopy(default_counts)
     last_published_at = time.time()
+
 
 def count_vsl_entries(
     vsl_args,
@@ -154,11 +157,11 @@
             return
 
         # Count the http request method
-        if tag in ['TxRequest', 'RxRequest'] and is_valid_http_method(value):
+        if tag in ['BereqMethod', 'ReqMethod'] and is_valid_http_method(value):
             counts[remote_party + '.method.' + value.lower()] += 1
 
         # Count the http response status
-        elif tag in ['RxStatus', 'TxStatus'] and is_valid_http_status(value):
+        elif tag in ['BerespStatus', 'RespStatus'] and 
is_valid_http_status(value):
             key_prefix = remote_party + '.status.'
             counts[key_prefix + value[0] + 'xx'] += 1
 
@@ -173,7 +176,11 @@
                 counts[key_prefix + 'error'] += 1
 
         # Thesee indicates we completed a request, count it.
-        elif tag in ['ReqEnd', 'BackendClose', 'BackendReuse']:
+        elif tag in ['BackendClose', 'BackendReuse']:
+            counts[remote_party + '.total'] += 1
+
+        # There is no ReqEnd in v4, let's use Timestamp for Resp
+        elif tag == 'Timestamp' and 'Resp' in value:
             counts[remote_party + '.total'] += 1
 
         # If interval seconds have passed, publish counts
@@ -204,11 +211,11 @@
     arguments = parser.parse_args()
 
     vsl_args = [
-        ('i', 'TxRequest'),
-        ('i', 'RxStatus'),
-        ('i', 'RxRequest'),
-        ('i', 'TxStatus'),
-        ('i', 'ReqEnd'),
+        ('i', 'BereqMethod'),
+        ('i', 'BerespStatus'),
+        ('i', 'ReqMethod'),
+        ('i', 'RespStatus'),
+        ('i', 'Timestamp'),
         ('i', 'BackendClose'),
         ('i', 'BackendReuse')
     ]
@@ -235,7 +242,7 @@
 
 # ##### Tests ######
 # To run:
-#   python -m unittest varnishstats-diamond-collector
+#   python -m unittest varnishreqstats
 #
 # This requires that varnishlog.test.data is present
 # in the current directory.  It contains 100 entries
diff --git a/modules/varnish/files/varnishreqstats4 
b/modules/varnish/files/varnishreqstats4
deleted file mode 100755
index 1deb221..0000000
--- a/modules/varnish/files/varnishreqstats4
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-Reads varnish shared logs and emits counts for the following:
-  - Total requests
-  - HTTP Status Code (200, 404, etc.)
-  - HTTP Status Code Class (2xx, 3xx, etc.)
-  - HTTP Status type (ok, error)
-  - HTTP Method (GET, POST, etc.)
-
-  Copyright 2015-2016 Andrew Otto <[email protected]>
-                 2016 Emanuele Rocca <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-  Author: Andrew Otto
-
-"""
-import argparse
-import copy
-import datetime
-import statsd
-import sys
-import time
-import unittest
-
-from varnishlog import varnishlog
-
-valid_http_methods = (
-    'get',
-    'head',
-    'post',
-    'put',
-    'delete',
-    'trace',
-    'connect',
-    'options',
-    'purge',
-)
-
-# Initialize a dict of default counts
-# we will always report.
-default_counts = {
-    'backend.status.1xx': 0,
-    'backend.status.2xx': 0,
-    'backend.status.3xx': 0,
-    'backend.status.4xx': 0,
-    'backend.status.5xx': 0,
-    'backend.status.ok': 0,
-    'backend.status.error': 0,
-    'backend.total': 0,
-
-    'client.status.1xx': 0,
-    'client.status.2xx': 0,
-    'client.status.3xx': 0,
-    'client.status.4xx': 0,
-    'client.status.5xx': 0,
-    'client.status.ok': 0,
-    'client.status.error': 0,
-    'client.total': 0,
-}
-# Include valid http_methods in default_counts.
-for m in valid_http_methods:
-    default_counts['backend.method.' + m] = 0
-    default_counts['client.method.' + m] = 0
-
-
-def is_valid_http_method(m):
-    """
-    Returns True if m is in the list of valid_http_methods.
-    """
-    return m.lower() in valid_http_methods
-
-
-def is_valid_http_status(s):
-    """
-    Returns True if s is in a valid HTTP status range.
-    """
-    try:
-        return 100 <= int(s) < 600
-    except ValueError:
-        return False
-
-
-def print_counts(counts):
-    """
-    Formats and prints out the contents of the counts dict.
-    """
-    keys = counts.keys()
-    keys.sort()
-    print(
-        datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S').center(31, '-')
-    )
-    for k in keys:
-        print("{0} {1}".format(str(counts[k]).rjust(10), k))
-    print('')
-
-
-def publish_statsd_counts(statsd_client, counts):
-    with statsd_client.pipeline() as statsd_pipe:
-        for k in counts.keys():
-            statsd_pipe.incr(k, counts[k])
-
-
-def reset_counts():
-    """
-    Resets the global counts and last_published_at
-    variables.
-    """
-    global counts, last_published_at
-    counts = copy.deepcopy(default_counts)
-    last_published_at = time.time()
-
-
-def count_vsl_entries(
-    vsl_args,
-    interval=60,
-    verbose=False,
-    statsd_client=None
-):
-    """
-    Starts varnishlog and stores counts for http status
-    and http method in the global counts dict.  If varnishlog
-    finshes (because vsl_args has -k or -r).  Every interval
-    seconds, counts will either be printed or sent to statsd.
-
-    """
-
-    # These need to be global, since they will be reset by
-    # count_vsl_entry_callback and we don't want them to
-    # end up in local scope.
-    global counts, last_published_at
-
-    # Initialize the global counts dict and reset
-    # the last_published_at timestamp.
-    reset_counts()
-
-    def count_vsl_entry_callback(
-        transaction_id,
-        tag,
-        value,
-        remote_party
-    ):
-        global counts, last_published_at
-
-        if remote_party not in ['backend', 'client']:
-            return
-
-        # Count the http request method
-        if tag in ['BereqMethod', 'ReqMethod'] and is_valid_http_method(value):
-            counts[remote_party + '.method.' + value.lower()] += 1
-
-        # Count the http response status
-        elif tag in ['BerespStatus', 'RespStatus'] and 
is_valid_http_status(value):
-            key_prefix = remote_party + '.status.'
-            counts[key_prefix + value[0] + 'xx'] += 1
-
-            http_status_key = key_prefix + value
-            counts[http_status_key] = (
-                counts.setdefault(http_status_key, 0) + 1
-            )
-            # Increment ok/error status metric.
-            if value[0] in '123':
-                counts[key_prefix + 'ok'] += 1
-            elif value[0] in '45':
-                counts[key_prefix + 'error'] += 1
-
-        # Thesee indicates we completed a request, count it.
-        elif tag in ['BackendClose', 'BackendReuse']:
-            counts[remote_party + '.total'] += 1
-
-        # There is no ReqEnd in v4, let's use Timestamp for Resp
-        elif tag == 'Timestamp' and 'Resp' in value:
-            counts[remote_party + '.total'] += 1
-
-        # If interval seconds have passed, publish counts
-        # and reset the last_published_at timestamp.
-        if last_published_at + interval < time.time():
-            if verbose:
-                print_counts(counts)
-            if statsd_client:
-                publish_statsd_counts(statsd_client, counts)
-
-            reset_counts()
-
-    # Run varnishlog with the count_vsl_entry_callback
-    # called for every VSL entry.
-    varnishlog(vsl_args, count_vsl_entry_callback)
-
-
-if __name__ == '__main__':
-    parser = argparse.ArgumentParser(
-        description=__doc__,
-        formatter_class=argparse.RawTextHelpFormatter
-    )
-    parser.add_argument('--varnish-name', default=None)
-    parser.add_argument('--interval', default=60, type=int)
-    parser.add_argument('--verbose', default=False, action='store_true')
-    parser.add_argument('--statsd', default=None)
-    parser.add_argument('--metric-prefix', default='varnish')
-    arguments = parser.parse_args()
-
-    vsl_args = [
-        ('i', 'BereqMethod'),
-        ('i', 'BerespStatus'),
-        ('i', 'ReqMethod'),
-        ('i', 'RespStatus'),
-        ('i', 'Timestamp'),
-        ('i', 'BackendClose'),
-        ('i', 'BackendReuse')
-    ]
-    if arguments.varnish_name:
-        vsl_args.append(('n', arguments.varnish_name))
-
-    if arguments.statsd:
-        statsd_parts = arguments.statsd.split(':')
-        if len(statsd_parts) == 1:
-            (host, port) = (statsd_parts[0], 8125)
-        else:
-            (host, port) = (statsd_parts[0], statsd_parts[1])
-        statsd_client = statsd.StatsClient(host, int(port), 
prefix=arguments.metric_prefix)
-    else:
-        statsd_client = None
-
-    count_vsl_entries(
-        vsl_args,
-        interval=arguments.interval,
-        verbose=arguments.verbose,
-        statsd_client=statsd_client
-    )
-
-
-# ##### Tests ######
-# To run:
-#   python -m unittest varnishreqstats4
-#
-# This requires that varnishlog.test.data is present
-# in the current directory.  It contains 100 entries
-# spread across 6 transactions.  It was collected from
-# a real text varnish server using the varnishlog utility.
-#
-class TestVarnishreqstats(unittest.TestCase):
-    varnishlog_test_data_file = 'varnishlog.test.data'
-
-    def test_is_valid_http_method(self):
-        self.assertTrue(is_valid_http_method('GET'))
-        self.assertTrue(is_valid_http_method('get'))
-        self.assertTrue(is_valid_http_method('post'))
-        self.assertFalse(is_valid_http_method('nogood'))
-
-    def test_is_valid_http_status(self):
-        self.assertTrue(is_valid_http_status('200'))
-        self.assertTrue(is_valid_http_status('404'))
-        self.assertTrue(is_valid_http_status(301))
-        self.assertFalse(is_valid_http_status('nogood'))
-        self.assertFalse(is_valid_http_status('1000'))
-
-    def test_count_vsl_entries(self):
-        # Test on 100 records from varnishlog.test.data file
-        extra_vsl_args = [('r', self.varnishlog_test_data_file)]
-        d = count_vsl_entries(extra_vsl_args)
-
-        self.assertEqual(d['client.method.post'],  0)
-        self.assertEqual(d['client.status.200'],   1)
-        self.assertEqual(d['client.status.2xx'],   1)
-        self.assertEqual(d['client.status.ok'],    1)
-        self.assertEqual(d['client.status.error'], 0)
-        self.assertEqual(d['client.total'],        1)
diff --git a/modules/varnish/files/varnishrls b/modules/varnish/files/varnishrls
index 4083989..6949546 100755
--- a/modules/varnish/files/varnishrls
+++ b/modules/varnish/files/varnishrls
@@ -14,6 +14,7 @@
 
   Copyright 2015 Ori Livneh <[email protected]>
   Copyright 2015 Gilles Dubuc <[email protected]>
+  Copyright 2016 Emanuele Rocca <[email protected]>
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
@@ -34,19 +35,20 @@
 import varnishlog
 import varnishprocessor
 
+
 class ResourceLoaderVarnishLogProcessor(varnishprocessor.VarnishLogProcessor):
     description = 'ResourceLoader Browser Cache Hit Ratio StatsD Reporter'
     key_prefix = 'ResourceLoader'
 
     def process_transaction(self, transaction):
         """Process a single completed transaction."""
-        status_code = transaction['TxStatus']
+        status_code = transaction['RespStatus']
         metric_keys = ['reqs.all', 'resps.' + status_code]
 
-        if 'RxHeader' in transaction:
+        if 'ReqHeader' in transaction:
             metric_keys.append('reqs.if_none_match')
 
-        cache_control_header = transaction.get('TxHeader')
+        cache_control_header = transaction.get('RespHeader')
         cache_control = 'no'
         if cache_control_header:
             match = re.search(r'(?<=max-age=)\d+', cache_control_header)
@@ -62,20 +64,18 @@
             self.flush_stats()
 
     def start(self):
+        # VSL query matching ResourceLoader ReqURLs
+        query = 'ReqURL ~ "^/w/load.php"'
+
         varnishlog.varnishlog((
-            ('n', 'frontend'),  # Consider the frontend Varnish instance
-            ('c', None),        # Only consider interactions with the client
-            ('i', 'TxStatus'),  # Get TxStatus for the HTTP status code
-            ('i', 'RxHeader'),  # Get RxHeader for If-None-Match header
-            ('i', 'TxHeader'),  # Get TxHeader for Cache-control header
-            ('i', 'RxURL'),     # Get RxURL to match /w/load.php
-            ('i', 'ReqEnd'),    # Get ReqEnd to delimit requests
-            ('C', ''),          # Use case-insensitive matching
-            ('I', '^(/w/load\.php'   # ...to match ResourceLoader RxURLs
-                  '|if-none-match:'  # ...or If-None-Match RxHeaders
-                  '|cache-control:'  # ...or Cache-control TxHeaders
-                  '|([\d.]+ ?){6}$'  # ...or ReqEnd 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()
diff --git a/modules/varnish/files/varnishrls4 
b/modules/varnish/files/varnishrls4
deleted file mode 100755
index 6949546..0000000
--- a/modules/varnish/files/varnishrls4
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-  varnishrls
-  ~~~~~~~~~~
-
-  Accumulate browser cache hit ratio and total request volume statistics
-  for ResourceLoader requests (/w/load.php) and report to StatsD.
-
-  Usage: varnishrls [--statsd-server SERVER] [--key-prefix PREFIX]
-
-    --statsd-server SERVER  statsd server (default: none; echo to stdout)
-    --key-prefix PREFIX     metric key prefix (default: varnish.clients)
-
-  Copyright 2015 Ori Livneh <[email protected]>
-  Copyright 2015 Gilles Dubuc <[email protected]>
-  Copyright 2016 Emanuele Rocca <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-from __future__ import division
-
-import re
-import varnishlog
-import varnishprocessor
-
-
-class ResourceLoaderVarnishLogProcessor(varnishprocessor.VarnishLogProcessor):
-    description = 'ResourceLoader Browser Cache Hit Ratio StatsD Reporter'
-    key_prefix = 'ResourceLoader'
-
-    def process_transaction(self, transaction):
-        """Process a single completed transaction."""
-        status_code = transaction['RespStatus']
-        metric_keys = ['reqs.all', 'resps.' + status_code]
-
-        if 'ReqHeader' in transaction:
-            metric_keys.append('reqs.if_none_match')
-
-        cache_control_header = transaction.get('RespHeader')
-        cache_control = 'no'
-        if cache_control_header:
-            match = re.search(r'(?<=max-age=)\d+', cache_control_header)
-            if match:
-                cache_control = 'short' if match.group() == '300' else 'long'
-        metric_keys.append('responses.%s_cache_control.%s' %
-                           (cache_control, status_code))
-
-        for key in metric_keys:
-            self.stats[key] = self.stats.get(key, 0) + 1
-
-        if self.stats['reqs.all'] > 10000:
-            self.flush_stats()
-
-    def start(self):
-        # VSL query matching ResourceLoader ReqURLs
-        query = 'ReqURL ~ "^/w/load.php"'
-
-        varnishlog.varnishlog((
-            ('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()
diff --git a/modules/varnish/files/varnishstatsd 
b/modules/varnish/files/varnishstatsd
index 5106198..9a0089b 100755
--- a/modules/varnish/files/varnishstatsd
+++ b/modules/varnish/files/varnishstatsd
@@ -14,7 +14,8 @@
 
   If no statsd server is specified, prints stats to stdout instead.
 
-  Copyright 2015 Ori Livneh <[email protected]>
+  Copyright 2015-2016 Ori Livneh <[email protected]>
+                 2016 Emanuele Rocca <[email protected]>
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
@@ -45,11 +46,17 @@
 UDP_MTU_BYTES = 1472
 
 vsl_args = [
-    ('i', 'Backend'),
-    ('i', 'BackendXID'),
-    ('i', 'ReqEnd'),
-    ('i', 'RxStatus'),
-    ('i', 'TxRequest'),
+    # Backend HTTP response status code (eg: 200, 404)
+    ('i', 'BerespStatus'),
+    # Backend HTTP request method (eg: GET, POST)
+    ('i', 'BereqMethod'),
+    # The following two tags are logged when a new backend connection is opened
+    # or put up for reuse by a later connection. We need those to get the
+    # backend name
+    ('i', 'BackendOpen'),
+    ('i', 'BackendReuse'),
+    # Timestamp to compute TTFB (BerespBody)
+    ('i', 'Timestamp'),
 ]
 
 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
@@ -97,61 +104,43 @@
 buf = io.BytesIO()
 
 
-def log_value_err(callback):
-    def wrapper(transaction_id, tag, record, remote_party):
-        try:
-            return callback(transaction_id, tag, record, remote_party)
-        except ValueError as err:
-            print locals()
-            return
-
-    return wrapper
-
-
-@log_value_err
 def vsl_callback(transaction_id, tag, record, remote_party):
     global buf
 
-    if tag == 'Backend':
+    if tag in ("BackendOpen", "BackendReuse"):
         # Associate the transaction ID with the backend name.
-        tid, _, backend = record.split()
-        backends[int(tid)] = backend
+        backend_fullname = record.split()[1]
+        backend_name = backend_fullname.split('.')[-1]
+
+        backends[transaction_id] = backend_name
         if len(backends) > MAX_BACKLOG:
             backends.popitem(last=False)
 
-    elif tag == 'BackendXID':
-        # Associate the backend XID with its transaction ID.
-        xid = int(record) & 0xffffffff
-        xids[xid] = transaction_id
-        if len(xids) > MAX_BACKLOG:
-            xids.popitem(last=False)
-
-    elif tag == 'TxRequest' and remote_party == 'backend':
+    elif tag == "BereqMethod":
         # Associate the transaction ID with the request method.
         tids[transaction_id] = record
         if len(tids) > MAX_BACKLOG:
             tids.popitem(last=False)
 
-    elif tag == 'RxStatus' and remote_party == 'backend':
+    elif tag == "BerespStatus":
         # Associate the transaction ID with the response status code.
         if record[0] in '12345':
             statuses[transaction_id] = record[0] + 'xx'
         if len(statuses) > MAX_BACKLOG:
             statuses.popitem(last=False)
 
-    elif tag == 'ReqEnd':
+    # For our purposes this is like ReqEnd
+    elif tag == "Timestamp" and record.startswith('BerespBody:'):
         # Collate data and emit metric.
         parts = record.split()
-        xid = int(parts[0])
 
         try:
-            tid = xids.pop(xid)
             fields = {
                 'key_prefix': args.key_prefix,
-                'method': tids.pop(tid),
-                'backend': backends.pop(tid),
-                'status': statuses.pop(tid),
-                'ttfb': round(1000 * float(parts[4])),
+                'method': tids.pop(transaction_id),
+                'backend': backends.pop(transaction_id),
+                'status': statuses.pop(transaction_id),
+                'ttfb': round(1000 * float(parts[2])),
             }
         except KeyError:
             return 0
@@ -168,4 +157,5 @@
 
     return 0
 
-varnishlog(vsl_args, vsl_callback)
+if __name__ == "__main__":
+    varnishlog(vsl_args, vsl_callback)
diff --git a/modules/varnish/files/varnishstatsd4 
b/modules/varnish/files/varnishstatsd4
deleted file mode 100755
index 9a0089b..0000000
--- a/modules/varnish/files/varnishstatsd4
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-  varnishstatsd
-  ~~~~~~~~~~~~~
-  Report backend response times and request counts aggregated by status.
-
-  Usage: varnishstatsd [--varnish-name NAME] [--statsd-server SERVER]
-                       [--key-prefix PREFIX]
-
-    --varnish-name NAME     varnish name
-    --statsd-server SERVER  statsd server
-    --key-prefix PREFIX     metric key prefix
-
-  If no statsd server is specified, prints stats to stdout instead.
-
-  Copyright 2015-2016 Ori Livneh <[email protected]>
-                 2016 Emanuele Rocca <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-import argparse
-import collections
-import io
-import socket
-import urlparse
-from varnishlog import varnishlog
-
-
-METRIC_FORMAT = (
-    '%(key_prefix)s%(backend)s.%(method)s:%(ttfb)d|ms\n'
-    '%(key_prefix)s%(backend)s.%(status)s:1|c\n'
-)
-
-UDP_MTU_BYTES = 1472
-
-vsl_args = [
-    # Backend HTTP response status code (eg: 200, 404)
-    ('i', 'BerespStatus'),
-    # Backend HTTP request method (eg: GET, POST)
-    ('i', 'BereqMethod'),
-    # The following two tags are logged when a new backend connection is opened
-    # or put up for reuse by a later connection. We need those to get the
-    # backend name
-    ('i', 'BackendOpen'),
-    ('i', 'BackendReuse'),
-    # Timestamp to compute TTFB (BerespBody)
-    ('i', 'Timestamp'),
-]
-
-sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-
-
-def parse_statsd_server_string(server_string):
-    parsed = urlparse.urlparse('//' + server_string)
-    return parsed.hostname, parsed.port or 8125
-
-
-def parse_key_prefix(key_prefix):
-    return key_prefix.strip('.') + '.'
-
-
-ap = argparse.ArgumentParser(
-    description='Varnish backend response time metric logger',
-    epilog='If no statsd server is specified, prints stats to stdout instead.'
-)
-ap.add_argument('--varnish-name', help='varnish name')
-ap.add_argument('--statsd-server', help='statsd server',
-                type=parse_statsd_server_string, default=None)
-ap.add_argument('--key-prefix', help='metric key prefix',
-                default='varnish.backends',
-                type=parse_key_prefix)
-args = ap.parse_args()
-
-if args.varnish_name:
-    vsl_args.append(('n', args.varnish_name))
-
-# Maximum number of log records to keep in memory.
-MAX_BACKLOG = 100
-
-# Map of transaction ID: request method ('GET', 'POST', etc.)
-tids = collections.OrderedDict()
-
-# Map of backend XID: transaction ID
-xids = collections.OrderedDict()
-
-# Map of transaction ID: backend name
-backends = collections.OrderedDict()
-
-# Map of transaction ID: response status code (200, 404, etc.)
-statuses = collections.OrderedDict()
-
-buf = io.BytesIO()
-
-
-def vsl_callback(transaction_id, tag, record, remote_party):
-    global buf
-
-    if tag in ("BackendOpen", "BackendReuse"):
-        # Associate the transaction ID with the backend name.
-        backend_fullname = record.split()[1]
-        backend_name = backend_fullname.split('.')[-1]
-
-        backends[transaction_id] = backend_name
-        if len(backends) > MAX_BACKLOG:
-            backends.popitem(last=False)
-
-    elif tag == "BereqMethod":
-        # Associate the transaction ID with the request method.
-        tids[transaction_id] = record
-        if len(tids) > MAX_BACKLOG:
-            tids.popitem(last=False)
-
-    elif tag == "BerespStatus":
-        # Associate the transaction ID with the response status code.
-        if record[0] in '12345':
-            statuses[transaction_id] = record[0] + 'xx'
-        if len(statuses) > MAX_BACKLOG:
-            statuses.popitem(last=False)
-
-    # For our purposes this is like ReqEnd
-    elif tag == "Timestamp" and record.startswith('BerespBody:'):
-        # Collate data and emit metric.
-        parts = record.split()
-
-        try:
-            fields = {
-                'key_prefix': args.key_prefix,
-                'method': tids.pop(transaction_id),
-                'backend': backends.pop(transaction_id),
-                'status': statuses.pop(transaction_id),
-                'ttfb': round(1000 * float(parts[2])),
-            }
-        except KeyError:
-            return 0
-
-        metric_string = (METRIC_FORMAT % fields).encode('utf-8')
-        if buf.tell() + len(metric_string) >= UDP_MTU_BYTES:
-            buf.seek(io.SEEK_SET)
-            if args.statsd_server:
-                sock.sendto(buf.read(), args.statsd_server)
-            else:
-                print(buf.read().decode('utf-8', errors='replace').rstrip())
-            buf = io.BytesIO()
-        buf.write(metric_string)
-
-    return 0
-
-if __name__ == "__main__":
-    varnishlog(vsl_args, vsl_callback)
diff --git a/modules/varnish/files/varnishxcache 
b/modules/varnish/files/varnishxcache
index 3f40633..c2b3ec3 100755
--- a/modules/varnish/files/varnishxcache
+++ b/modules/varnish/files/varnishxcache
@@ -120,7 +120,6 @@
 
 
 varnishlog.varnishlog((
-    ('i', 'TxHeader'),
-    ('I', '^X-Cache:'),
+    ('I', 'RespHeader:^X-Cache:'),
     ('n', 'frontend'),
 ), vsl_callback)
diff --git a/modules/varnish/files/varnishxcache4 
b/modules/varnish/files/varnishxcache4
deleted file mode 100755
index c2b3ec3..0000000
--- a/modules/varnish/files/varnishxcache4
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-  varnishxcache
-  ~~~~~~~~~~~
-
-  Accumulate X-Cache stats and report them to StatsD.
-
-  Usage: varnishxcache [--statsd-server SERVER] [--key-prefix PREFIX]
-
-    --statsd-server SERVER  statsd server (default: none; echo to stdout)
-    --key-prefix PREFIX     metric key prefix (default: varnish.xcache)
-
-  Copyright 2016 Brandon Black <[email protected]>
-  Copyright 2015 Ori Livneh <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-import argparse
-import io
-import re
-import socket
-import threading
-import urlparse
-import time
-
-import varnishlog
-
-
-def parse_statsd_server_string(server_string):
-    parsed = urlparse.urlparse('//' + server_string)
-    return parsed.hostname, parsed.port or 8125
-
-
-def parse_prefix_string(key_prefix):
-    key_prefix = key_prefix.strip('.')
-    if not key_prefix:
-        raise ValueError('Key prefix must not be empty')
-    return key_prefix
-
-
-ap = argparse.ArgumentParser(
-    description='X-Cache StatsD reporter',
-    epilog='If no statsd server is specified, prints stats to stdout instead.'
-)
-ap.add_argument('--statsd-server', help='statsd server',
-                type=parse_statsd_server_string, default=None)
-ap.add_argument('--key-prefix', help='metric key prefix',
-                type=parse_prefix_string, default='test.varnish.xcache')
-ap.add_argument('--interval', help='send interval',
-                type=int, default=30)
-args = ap.parse_args()
-
-sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-key_value_pairs = re.compile(r'([A-Z][A-Z0-9]*)=([^;]+)')
-stats = {
-    'unknown': 0,
-    'hit-front': 0,
-    'hit-local': 0,
-    'hit-remote': 0,
-    'int-front': 0,
-    'int-local': 0,
-    'int-remote': 0,
-    'pass': 0,
-    'miss': 0,
-}
-
-re_simplify = re.compile('cp[0-9]{4} (hit|miss|pass|int)(?:/[0-9]+)?')
-state_finder = [
-    [re.compile(r'hit$'),        'hit-front'],
-    [re.compile(r'hit,[^,]+$'),  'hit-local'],
-    [re.compile(r'hit'),         'hit-remote'],
-    [re.compile(r'int$'),        'int-front'],
-    [re.compile(r'int,[^,]+$'),  'int-local'],
-    [re.compile(r'int'),         'int-remote'],
-    [re.compile(r'pass,[^,]+$'), 'pass'],
-    [re.compile(r'miss'),        'miss'],
-]
-
-
-def vsl_callback(transaction_id, tag, record, remote_party):
-    record = record.split(': ')[1]
-
-    record = re_simplify.sub(r'\1', record)
-    state = 'unknown'
-    for sf in state_finder:
-        if sf[0].search(record):
-            state = sf[1]
-            break
-    stats[state] += 1
-
-    now = time.time()
-    if now >= vsl_callback.next_pub:
-        vsl_callback.next_pub = now + args.interval
-        buf = io.BytesIO()
-        for k, v in stats.iteritems():
-            metric = '%s.%s:%s|c\n' % (args.key_prefix, k, v)
-            buf.write(metric.encode('utf-8'))
-            stats[k] = 0
-        buf.seek(io.SEEK_SET)
-        if args.statsd_server:
-            sock.sendto(buf.read(), args.statsd_server)
-        else:
-            print(buf.read().decode('utf-8', errors='replace').rstrip())
-
-    return 0
-
-vsl_callback.next_pub = time.time() + args.interval
-
-
-varnishlog.varnishlog((
-    ('I', 'RespHeader:^X-Cache:'),
-    ('n', 'frontend'),
-), vsl_callback)
diff --git a/modules/varnish/files/varnishxcps 
b/modules/varnish/files/varnishxcps
index e23e573..73ddf8d 100755
--- a/modules/varnish/files/varnishxcps
+++ b/modules/varnish/files/varnishxcps
@@ -97,7 +97,6 @@
 vsl_callback.next_pub = time.time() + args.interval
 
 varnishlog.varnishlog((
-    ('i', 'RxHeader'),
-    ('I', '^X-Connection-Properties:'),
+    ('I', 'ReqHeader:^X-Connection-Properties:'),
     ('n', 'frontend'),
 ), vsl_callback)
diff --git a/modules/varnish/files/varnishxcps4 
b/modules/varnish/files/varnishxcps4
deleted file mode 100755
index 73ddf8d..0000000
--- a/modules/varnish/files/varnishxcps4
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-  varnishxcps
-  ~~~~~~~~~~~
-
-  Accumulate X-Client-Connection stats and report them to StatsD.
-
-  Usage: varnishxcps [--statsd-server SERVER] [--key-prefix PREFIX]
-
-    --statsd-server SERVER  statsd server (default: none; echo to stdout)
-    --key-prefix PREFIX     metric key prefix (default: varnish.clients)
-
-  Copyright 2015 Ori Livneh <[email protected]>
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-"""
-import argparse
-import io
-import re
-import socket
-import threading
-import urlparse
-import time
-
-import varnishlog
-
-
-def parse_statsd_server_string(server_string):
-    parsed = urlparse.urlparse('//' + server_string)
-    return parsed.hostname, parsed.port or 8125
-
-
-def parse_prefix_string(key_prefix):
-    key_prefix = key_prefix.strip('.')
-    if not key_prefix:
-        raise ValueError('Key prefix must not be empty')
-    return key_prefix
-
-
-ap = argparse.ArgumentParser(
-    description='X-Connection-Properties StatsD reporter',
-    epilog='If no statsd server is specified, prints stats to stdout instead.'
-)
-ap.add_argument('--statsd-server', help='statsd server',
-                type=parse_statsd_server_string, default=None)
-ap.add_argument('--key-prefix', help='metric key prefix',
-                type=parse_prefix_string, default='varnish.clients')
-ap.add_argument('--interval', help='send interval',
-                type=int, default=30)
-args = ap.parse_args()
-
-sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-key_value_pairs = re.compile('([A-Z][A-Z0-9]*)=([^;]+)')
-stats = {}
-
-
-def vsl_callback(transaction_id, tag, record, remote_party):
-    for k, v in key_value_pairs.findall(record):
-        if k == 'SSR':
-            k = 'ssl_sessions'
-            v = 'reused' if v == '1' else 'negotiated'
-        elif k == 'C':
-            k = 'ssl_cipher'
-        elif k == 'EC':
-            k = 'ssl_ecdhe_curve'
-        v = v.replace('.', '_')
-        s = '.'.join((args.key_prefix, k, v)).lower()
-        stats[s] = stats.get(s, 0) + 1
-
-    now = time.time()
-    if now >= vsl_callback.next_pub:
-        vsl_callback.next_pub = now + args.interval
-        buf = io.BytesIO()
-        while stats:
-            metric = '%s:%s|c\n' % stats.popitem()
-            buf.write(metric.encode('utf-8'))
-        buf.seek(io.SEEK_SET)
-        if args.statsd_server:
-            sock.sendto(buf.read(), args.statsd_server)
-        else:
-            print(buf.read().decode('utf-8', errors='replace').rstrip())
-
-    return 0
-
-vsl_callback.next_pub = time.time() + args.interval
-
-varnishlog.varnishlog((
-    ('I', 'ReqHeader:^X-Connection-Properties:'),
-    ('n', 'frontend'),
-), vsl_callback)
diff --git a/modules/varnish/manifests/common.pp 
b/modules/varnish/manifests/common.pp
index 64909b9..5f3faf7 100644
--- a/modules/varnish/manifests/common.pp
+++ b/modules/varnish/manifests/common.pp
@@ -60,7 +60,7 @@
     }
 
     file { '/usr/local/lib/python2.7/dist-packages/varnishprocessor':
-        source  => 'puppet:///modules/varnish/varnishprocessor4',
+        source  => 'puppet:///modules/varnish/varnishprocessor',
         owner   => 'root',
         group   => 'root',
         mode    => '0755',
diff --git a/modules/varnish/manifests/logging/media.pp 
b/modules/varnish/manifests/logging/media.pp
index 9d4153b..f39e0a1 100644
--- a/modules/varnish/manifests/logging/media.pp
+++ b/modules/varnish/manifests/logging/media.pp
@@ -19,7 +19,7 @@
     include varnish::common
 
     file { '/usr/local/bin/varnishmedia':
-        source  => 'puppet:///modules/varnish/varnishmedia4',
+        source  => 'puppet:///modules/varnish/varnishmedia',
         owner   => 'root',
         group   => 'root',
         mode    => '0555',
diff --git a/modules/varnish/manifests/logging/reqstats.pp 
b/modules/varnish/manifests/logging/reqstats.pp
index a324219..7c1cf07 100644
--- a/modules/varnish/manifests/logging/reqstats.pp
+++ b/modules/varnish/manifests/logging/reqstats.pp
@@ -36,7 +36,7 @@
 
     if ! defined(File['/usr/local/bin/varnishreqstats']) {
         file { '/usr/local/bin/varnishreqstats':
-            source  => 'puppet:///modules/varnish/varnishreqstats4',
+            source  => 'puppet:///modules/varnish/varnishreqstats',
             owner   => 'root',
             group   => 'root',
             mode    => '0555',
diff --git a/modules/varnish/manifests/logging/rls.pp 
b/modules/varnish/manifests/logging/rls.pp
index 245a161..6e70173 100644
--- a/modules/varnish/manifests/logging/rls.pp
+++ b/modules/varnish/manifests/logging/rls.pp
@@ -19,7 +19,7 @@
     include varnish::common
 
     file { '/usr/local/bin/varnishrls':
-        source  => 'puppet:///modules/varnish/varnishrls4',
+        source  => 'puppet:///modules/varnish/varnishrls',
         owner   => 'root',
         group   => 'root',
         mode    => '0555',
diff --git a/modules/varnish/manifests/logging/statsd.pp 
b/modules/varnish/manifests/logging/statsd.pp
index a06324f..a053876 100644
--- a/modules/varnish/manifests/logging/statsd.pp
+++ b/modules/varnish/manifests/logging/statsd.pp
@@ -38,7 +38,7 @@
 
     if ! defined(File['/usr/local/bin/varnishstatsd']) {
         file { '/usr/local/bin/varnishstatsd':
-            source  => 'puppet:///modules/varnish/varnishstatsd4',
+            source  => 'puppet:///modules/varnish/varnishstatsd',
             owner   => 'root',
             group   => 'root',
             mode    => '0555',
diff --git a/modules/varnish/manifests/logging/xcache.pp 
b/modules/varnish/manifests/logging/xcache.pp
index 0876091..a69bd65 100644
--- a/modules/varnish/manifests/logging/xcache.pp
+++ b/modules/varnish/manifests/logging/xcache.pp
@@ -27,7 +27,7 @@
     include varnish::common
 
     file { '/usr/local/bin/varnishxcache':
-        source  => 'puppet:///modules/varnish/varnishxcache4',
+        source  => 'puppet:///modules/varnish/varnishxcache',
         owner   => 'root',
         group   => 'root',
         mode    => '0555',
diff --git a/modules/varnish/manifests/logging/xcps.pp 
b/modules/varnish/manifests/logging/xcps.pp
index 1d4ec95..6822c6d 100644
--- a/modules/varnish/manifests/logging/xcps.pp
+++ b/modules/varnish/manifests/logging/xcps.pp
@@ -19,7 +19,7 @@
     include varnish::common
 
     file { '/usr/local/bin/varnishxcps':
-        source  => 'puppet:///modules/varnish/varnishxcps4',
+        source  => 'puppet:///modules/varnish/varnishxcps',
         owner   => 'root',
         group   => 'root',
         mode    => '0555',

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5b1024c268a9ddf21d5596bc5338d54e9286ea97
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ema <[email protected]>
Gerrit-Reviewer: BBlack <[email protected]>
Gerrit-Reviewer: Ema <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to