8000 Merge pull request #28 from brian-brazil/windows · gdvalle/client_python@742dd40 · GitHub
[go: up one dir, main page]

Skip to content

Commit 742dd40

Browse files
committed
Merge pull request prometheus#28 from brian-brazil/windows
Handle resource module not being available on Windows.
2 parents ba5387b + 50605d3 commit 742dd40

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

prometheus_client/__init__.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import copy
66
import re
7-
import resource
87
import os
98
import time
109
import threading
@@ -17,6 +16,13 @@
1716
unicode = str
1817
from http.server import BaseHTTPRequestHandler
1918
from http.server import HTTPServer
19+
try:
20+
import resource
21+
_PAGESIZE = resource.getpagesize()
22+
except ImportError:
23+
# Not Unix
24+
_PAGESIZE = 4096
25+
2026
from functools import wraps
2127
from threading import Lock
2228

@@ -497,15 +503,14 @@ def __init__(self, namespace='', pid=lambda: 'self', proc='/proc', registry=REGI
497503
self._namespace = namespace
498504
self._pid = pid
499505
self._proc = proc
500-
self._pagesize = resource.getpagesize()
501506
if namespace:
502507
self._prefix = namespace + '_process_'
503508
else:
504509
self._prefix = 'process_'
505510
self._ticks = 100.0
506511
try:
507512
self._ticks = os.sysconf('SC_CLK_TCK')
508-
except (ValueError, TypeError):
513+
except (ValueError, TypeError, AttributeError):
509514
pass
510515

511516
# This is used to test if we can access /proc.
@@ -541,7 +546,7 @@ def collect(self):
541546
vmem = Metric(self._prefix + 'virtual_memory_bytes', 'Virtual memory size in bytes', 'gauge')
542547
vmem.add_sample(self._prefix + 'virtual_memory_bytes', {}, float(parts[20]))
543548
rss = Metric(self._prefix + 'resident_memory_bytes', 'Resident memory size in bytes', 'gauge')
544-
rss.add_sample(self._prefix + 'resident_memory_bytes', {}, float(parts[21]) * self._pagesize)
549+
rss.add_sample(self._prefix + 'resident_memory_bytes', {}, float(parts[21]) * _PAGESIZE)
545550
start_time = Metric(self._prefix + 'start_time_seconds',
546551
'Start time of the process since unix epoch in seconds.', 'gauge')
547552
start_time_secs = float(parts[19]) / self._ticks

tests/test_client.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,6 @@ def setUp(self):
312312

313313
def test_working(self):
314314
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 26231, registry=self.registry)
315-
collector._pagesize = 4096
316315
collector._ticks = 100
317316

318317
self.assertEqual(17.21, self.registry.get_sample_value('process_cpu_seconds_total'))
@@ -325,7 +324,6 @@ def test_working(self):
325324

326325
def test_namespace(self):
327326
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 26231, registry=self.registry, namespace='n')
328-
collector._pagesize = 4096
329327
collector._ticks = 100
330328

331329
self.assertEqual(17.21, self.registry.get_sample_value('n_process_cpu_seconds_total'))
@@ -338,7 +336,6 @@ def test_namespace(self):
338336

339337
def test_working_584(self):
340338
collector = ProcessCollector(proc=self.test_proc, pid=lambda: "584\n", registry=self.registry)
341-
collector._pagesize = 4096
342339
collector._ticks = 100
343340

344341
self.assertEqual(0.0, self.registry.get_sample_value('process_cpu_seconds_total'))
@@ -350,7 +347,6 @@ def test_working_584(self):
350347

351348
def test_working_fake_pid(self):
352349
collector = ProcessCollector(proc=self.test_proc, pid=lambda: 123, registry=self.registry)
353-
collector._pagesize = 4096
354350
collector._ticks = 100
355351

356352
self.assertEqual(None, self.registry.get_sample_value('process_cpu_seconds_total'))

0 commit comments

Comments
 (0)
0