@@ -80,7 +80,7 @@ def test_gauge_all(self):
80
80
self .assertEqual (0 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
81
81
g1 .set (1 )
82
82
g2 .set (2 )
83
- mark_process_dead (123 , os . environ [ 'prometheus_multiproc_dir' ] )
83
+ mark_process_dead (123 , self . tempdir )
84
84
self .assertEqual (1 , self .registry .get_sample_value ('g' , {'pid' : '123' }))
85
85
self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
86
86
@@ -94,7 +94,7 @@ def test_gauge_liveall(self):
94
94
g2 .set (2 )
95
95
self .assertEqual (1 , self .registry .get_sample_value ('g' , {'pid' : '123' }))
96
96
self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
97
- mark_process_dead (123 , os . environ [ 'prometheus_multiproc_dir' ] )
97
+ mark_process_dead (123 , self . tempdir )
98
98
self .assertEqual (None , self .registry .get_sample_value ('g' , {'pid' : '123' }))
99
99
self .assertEqual (2 , self .registry .get_sample_value ('g' , {'pid' : '456' }))
100
100
@@ -124,7 +124,7 @@ def test_gauge_livesum(self):
124
124
g1 .set (1 )
125
125
g2 .set (2 )
126
126
self .assertEqual (3 , self .registry .get_sample_value ('g' ))
127
- mark_process_dead (123 , os . environ [ 'prometheus_multiproc_dir' ] )
127
+ mark_process_dead (123 , self . tempdir )
128
128
self .assertEqual (2 , self .registry .get_sample_value ('g' ))
129
129
130
130
def test_namespace_subsystem (self ):
@@ -151,7 +151,7 @@ def test_initialization_detects_pid_change(self):
151
151
# can not inspect the files cache directly, as it's a closure, so we
152
152
# check for the actual files themselves
153
153
def files ():
154
- fs = os .listdir (os . environ [ 'prometheus_multiproc_dir' ] )
154
+ fs = os .listdir (self . tempdir )
155
155
fs .sort ()
156
156
return fs
157
157
@@ -240,7 +240,7 @@ def add_label(key, value):
240
240
pid = 1
241
241
h .labels (** labels ).observe (5 )
242
242
243
- path = os .path .join (os . environ [ 'prometheus_multiproc_dir' ] , '*.db' )
243
+ path = os .path .join (self . tempdir , '*.db' )
244
244
files = glob .glob (path )
245
245
metrics = dict (
246
246
(m .name , m ) for m in self .collector .merge (files , accumulate = False )
@@ -271,6 +271,21 @@ def add_label(key, value):
271
271
self .assertEqual (metrics ['h' ].samples , expected_histogram )
272
272
273
273
274
+ class TestMultiProcessByPathArgument (TestMultiProcess ):
275
+ def setUp (self ):
276
+ if 'prometheus_multiproc_dir' in os .environ :
277
+ del os .environ ['prometheus_multiproc_dir' ]
278
+
279
+ self .tempdir = tempfile .mkdtemp ()
280
+ values .ValueClass = MultiProcessValue (lambda : 123 )
281
+ self .registry = CollectorRegistry ()
282
+ self .collector = MultiProcessCollector (self .registry , path = self .tempdir )
283
+
284
+ def tearDown (self ):
285
+ shutil .rmtree (self .tempdir )
286
+ values .ValueClass = MutexValue
287
+
288
+
274
289
class TestMmapedDict (unittest .TestCase ):
275
290
def setUp (self ):
276
291
fd , self .tempfile = tempfile .mkstemp ()
0 commit comments