Skip to content

Commit 2d85f4a

Browse files
convert global variable to class member (#522)
This allows the tests to pass on archs with non 4K pages. Signed-off-by: Stefano Torresi <[email protected]>
1 parent 72317c1 commit 2d85f4a

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

prometheus_client/process_collector.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def __init__(self, namespace='', pid=lambda: 'self', proc='/proc', registry=REGI
3131
except (ValueError, TypeError, AttributeError, OSError):
3232
pass
3333

34+
self._pagesize = _PAGESIZE
35+
3436
# This is used to test if we can access /proc.
3537
self._btime = 0
3638
try:
@@ -60,7 +62,7 @@ def collect(self):
6062
vmem = GaugeMetricFamily(self._prefix + 'virtual_memory_bytes',
6163
'Virtual memory size in bytes.', value=float(parts[20]))
6264
rss = GaugeMetricFamily(self._prefix + 'resident_memory_bytes', 'Resident memory size in bytes.',
63-
value=float(parts[21]) * _PAGESIZE)
65+
value=float(parts[21]) * self._pagesize)
6466
start_time_secs = float(parts[19]) / self._ticks
6567
start_time = GaugeMetricFamily(self._prefix + 'start_time_seconds',
6668
'Start time of the process since unix epoch in seconds.',

tests/test_process_collector.py

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def setUp(self):
1414
def test_working(self):
1515
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 26231, registry=self.registry)
1616
collector._ticks = 100
17+
collector._pagesize = 4096
1718

1819
self.assertEqual(17.21, self.registry.get_sample_value('process_cpu_seconds_total'))
1920
self.assertEqual(56274944.0, self.registry.get_sample_value('process_virtual_memory_bytes'))
@@ -26,6 +27,7 @@ def test_working(self):
2627
def test_namespace(self):
2728
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 26231, registry=self.registry, namespace='n')
2829
collector._ticks = 100
30+
collector._pagesize = 4096
2931

3032
self.assertEqual(17.21, self.registry.get_sample_value('n_process_cpu_seconds_total'))
3133
self.assertEqual(56274944.0, self.registry.get_sample_value('n_process_virtual_memory_bytes'))
@@ -38,6 +40,7 @@ def test_namespace(self):
3840
def test_working_584(self):
3941
collector = ProcessCollector(proc=self.test_proc, pid=lambda: "584\n", registry=self.registry)
4042
collector._ticks = 100
43+
collector._pagesize = 4096
4144

4245
self.assertEqual(0.0, self.registry.get_sample_value('process_cpu_seconds_total'))
4346
self.assertEqual(10395648.0, self.registry.get_sample_value('process_virtual_memory_bytes'))
@@ -49,6 +52,7 @@ def test_working_584(self):
4952
def test_working_fake_pid(self):
5053
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 123, registry=self.registry)
5154
collector._ticks = 100
55+
collector._pagesize = 4096
5256

5357
self.assertEqual(None, self.registry.get_sample_value('process_cpu_seconds_total'))
5458
self.assertEqual(None, self.registry.get_sample_value('process_virtual_memory_bytes'))

0 commit comments

Comments
 (0)