fix metrics generation

 - make prometheus metrics multiprocess-safe

Related-To: PRODX-51145
Change-Id: Ib61c3ced12ae65aa134dc804ab4feb44416a4053
diff --git a/sf_notifier/salesforce/client.py b/sf_notifier/salesforce/client.py
index 590f04f..51e795e 100644
--- a/sf_notifier/salesforce/client.py
+++ b/sf_notifier/salesforce/client.py
@@ -80,8 +80,8 @@
 
 class SalesforceClient(object):
 
-    def __init__(self, config, prometheus_registry=None):
-        self.metrics = self._init_metrics(prometheus_registry)
+    def __init__(self, config):
+        self.metrics = self._init_metrics()
         self._registered_alerts = TTLCache(maxsize=2048, ttl=300)
 
         self.config = self._validate_config(config)
@@ -98,15 +98,12 @@
         self.session.mount('https://', adapter)
 
     @staticmethod
-    def _init_metrics(prometheus_registry):
+    def _init_metrics():
         metrics = {
             'sf_auth_ok': Gauge('sf_auth_ok', 'sf-notifier',
-                                multiprocess_mode='max',
-                                registry=prometheus_registry),
-            'sf_error_count': Counter('sf_error_count', 'sf-notifier',
-                                      registry=prometheus_registry),
-            'sf_request_count': Counter('sf_request_count', 'sf-notifier',
-                                        registry=prometheus_registry)
+                                multiprocess_mode='max'),
+            'sf_error_count': Counter('sf_error_count', 'sf-notifier'),
+            'sf_request_count': Counter('sf_request_count', 'sf-notifier')
         }
         metrics['sf_auth_ok'].set(0)
         return metrics
diff --git a/sf_notifier/server.py b/sf_notifier/server.py
index 0996d4a..087ff86 100644
--- a/sf_notifier/server.py
+++ b/sf_notifier/server.py
@@ -20,11 +20,8 @@
 
 app = Flask(__name__)
 
-registry = CollectorRegistry()
-multiprocess.MultiProcessCollector(registry)
-
 create_file(SESSION_FILE)
-sf_cli = SalesforceClient(settings.SF_CONFIG, prometheus_registry=registry)
+sf_cli = SalesforceClient(settings.SF_CONFIG)
 
 
 with app.app_context():
@@ -33,6 +30,8 @@
 
 @app.route('/metrics', methods=['GET'])
 def metrics():
+    registry = CollectorRegistry()
+    multiprocess.MultiProcessCollector(registry)
     return Response(generate_latest(registry),
                     mimetype=CONTENT_TYPE_LATEST)