# -*- coding: utf-8 from __future__ import unicode_literals import platform as pf from .metrics_core import GaugeMetricFamily from .registry import REGISTRY class PlatformCollector(object): """Collector for python platform information""" def __init__(self, registry=REGISTRY, platform=None): self._platform = pf if platform is None else platform info = self._info() system = self._platform.system() if system == "Java": info.update(self._java()) self._metrics = [ self._add_metric("python_info", "Python platform information", info) ] if registry: registry.register(self) def collect(self): return self._metrics @staticmethod def _add_metric(name, documentation, data): labels = data.keys() values = [data[k] for k in labels] g = GaugeMetricFamily(name, documentation, labels=labels) g.add_metric(values, 1) return g def _info(self): major, minor, patchlevel = self._platform.python_version_tuple() return { "version": self._platform.python_version(), "implementation": self._platform.python_implementation(), "major": major, "minor": minor, "patchlevel": patchlevel } def _java(self): java_version, _, vminfo, osinfo = self._platform.java_ver() vm_name, vm_release, vm_vendor = vminfo return { "jvm_version": java_version, "jvm_release": vm_release, "jvm_vendor": vm_vendor, "jvm_name": vm_name } PLATFORM_COLLECTOR = PlatformCollector() """PlatformCollector in default Registry REGISTRY"""
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
bridge | Folder | 0755 |
|
|
openmetrics | Folder | 0755 |
|
|
twisted | Folder | 0755 |
|
|
__init__.py | File | 1.77 KB | 0644 |
|
asgi.py | File | 1.16 KB | 0644 |
|
context_managers.py | File | 1.65 KB | 0644 |
|
core.py | File | 895 B | 0644 |
|
decorator.py | File | 15.43 KB | 0644 |
|
exposition.py | File | 14.92 KB | 0644 |
|
gc_collector.py | File | 1.42 KB | 0644 |
|
metrics.py | File | 21.66 KB | 0644 |
|
metrics_core.py | File | 11.6 KB | 0644 |
|
mmap_dict.py | File | 5.14 KB | 0644 |
|
multiprocess.py | File | 6.32 KB | 0644 |
|
parser.py | File | 7.09 KB | 0644 |
|
platform_collector.py | File | 1.69 KB | 0644 |
|
process_collector.py | File | 3.57 KB | 0644 |
|
registry.py | File | 5.23 KB | 0644 |
|
samples.py | File | 1.33 KB | 0644 |
|
utils.py | File | 621 B | 0644 |
|
values.py | File | 3.75 KB | 0644 |
|