55import shutil
66import sys
77import tempfile
8+ import warnings
89
910from prometheus_client import mmap_dict , values
1011from prometheus_client .core import (
1314from prometheus_client .multiprocess import (
1415 mark_process_dead , MultiProcessCollector ,
1516)
16- from prometheus_client .values import MultiProcessValue , MutexValue
17+ from prometheus_client .values import (
18+ get_value_class , MultiProcessValue , MutexValue ,
19+ )
1720
1821if sys .version_info < (2 , 7 ):
1922 # We need the skip decorators from unittest2 on Python 2.6.
2225 import unittest
2326
2427
25- class TestMultiProcess (unittest .TestCase ):
28+ class TestMultiProcessDeprecation (unittest .TestCase ):
2629 def setUp (self ):
2730 self .tempdir = tempfile .mkdtemp ()
31+
32+ def tearDown (self ):
33+ del os .environ ['prometheus_multiproc_dir' ]
34+ del os .environ ['PROMETHEUS_MULTIPROC_DIR' ]
35+ values .ValueClass = MutexValue
36+ shutil .rmtree (self .tempdir )
37+
38+ def test_deprecation_warning (self ):
2839 os .environ ['prometheus_multiproc_dir' ] = self .tempdir
40+ with warnings .catch_warnings (record = True ) as w :
41+ values .ValueClass = get_value_class ()
42+ registry = CollectorRegistry ()
43+ collector = MultiProcessCollector (registry )
44+ Counter ('c' , 'help' , registry = None )
45+
46+ assert os .environ ['PROMETHEUS_MULTIPROC_DIR' ] == self .tempdir
47+ assert len (w ) == 1
48+ assert issubclass (w [- 1 ].category , DeprecationWarning )
49+ assert "PROMETHEUS_MULTIPROC_DIR" in str (w [- 1 ].message )
50+
51+
52+ class TestMultiProcess (unittest .TestCase ):
53+ def setUp (self ):
54+ self .tempdir = tempfile .mkdtemp ()
55+ os .environ ['PROMETHEUS_MULTIPROC_DIR' ] = self .tempdir
2956 values .ValueClass = MultiProcessValue (lambda : 123 )
3057 self .registry = CollectorRegistry ()
31- self .collector = MultiProcessCollector (self .registry , self . tempdir )
58+ self .collector = MultiProcessCollector (self .registry )
3259
3360 @property
3461 def _value_class (self ):
3562 return
3663
3764 def tearDown (self ):
38- del os .environ ['prometheus_multiproc_dir ' ]
65+ del os .environ ['PROMETHEUS_MULTIPROC_DIR ' ]
3966 shutil .rmtree (self .tempdir )
4067 values .ValueClass = MutexValue
4168
@@ -80,7 +107,7 @@ def test_gauge_all(self):
80107 self .assertEqual (0 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
81108 g1 .set (1 )
82109 g2 .set (2 )
83- mark_process_dead (123 , os . environ [ 'prometheus_multiproc_dir' ] )
110+ mark_process_dead (123 )
84111 self .assertEqual (1 , self .registry .get_sample_value ('g' , {'pid' : '123' }))
85112 self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
86113
@@ -94,7 +121,7 @@ def test_gauge_liveall(self):
94121 g2 .set (2 )
95122 self .assertEqual (1 , self .registry .get_sample_value ('g' , {'pid' : '123' }))
96123 self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
97- mark_process_dead (123 , os .environ ['prometheus_multiproc_dir ' ])
124+ mark_process_dead (123 , os .environ ['PROMETHEUS_MULTIPROC_DIR ' ])
98125 self .assertEqual (None , self .registry .get_sample_value ('g' , {'pid' : '123' }))
99126 self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
100127
@@ -124,7 +151,7 @@ def test_gauge_livesum(self):
124151 g1 .set (1 )
125152 g2 .set (2 )
126153 self .assertEqual (3 , self .registry .get_sample_value ('g' ))
127- mark_process_dead (123 , os .environ ['prometheus_multiproc_dir ' ])
154+ mark_process_dead (123 , os .environ ['PROMETHEUS_MULTIPROC_DIR ' ])
128155 self .assertEqual (2 , self .registry .get_sample_value ('g' ))
129156
130157 def test_namespace_subsystem (self ):
@@ -151,7 +178,7 @@ def test_initialization_detects_pid_change(self):
151178 # can not inspect the files cache directly, as it's a closure, so we
152179 # check for the actual files themselves
153180 def files ():
154- fs = os .listdir (os .environ ['prometheus_multiproc_dir ' ])
181+ fs = os .listdir (os .environ ['PROMETHEUS_MULTIPROC_DIR ' ])
155182 fs .sort ()
156183 return fs
157184
@@ -240,7 +267,7 @@ def add_label(key, value):
240267 pid = 1
241268 h .labels (** labels ).observe (5 )
242269
243- path = os .path .join (os .environ ['prometheus_multiproc_dir ' ], '*.db' )
270+ path = os .path .join (os .environ ['PROMETHEUS_MULTIPROC_DIR ' ], '*.db' )
244271 files = glob .glob (path )
245272 metrics = dict (
246273 (m .name , m ) for m in self .collector .merge (files , accumulate = False )
0 commit comments