/opt/imh-python/lib/python3.9/site-packages/prometheus_client
NameSizeModeActions
bridge/-0755rm
openmetrics/-0755rm
twisted/-0755rm
__pycache__/-0755rm
asgi.py16190644editdlrm
context_managers.py23220644editdlrm
core.py8600644editdlrm
decorator.py158020644editdlrm
exposition.py228630644editdlrm
gc_collector.py15130644editdlrm
metrics.py259250644editdlrm
metrics_core.py155380644editdlrm
mmap_dict.py52450644editdlrm
multiprocess.py69320644editdlrm
parser.py71130644editdlrm
platform_collector.py18690644editdlrm
process_collector.py38440644editdlrm
py.typed00644editdlrm
registry.py61960644editdlrm
samples.py15200644editdlrm
utils.py5940644editdlrm
values.py47750644editdlrm
__init__.py16880644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/prometheus_client/platform_collector.py (1869B)
import platform as pf from typing import Any, Iterable, Optional from .metrics_core import GaugeMetricFamily, Metric from .registry import Collector, CollectorRegistry, REGISTRY class PlatformCollector(Collector): """Collector for python platform information""" def __init__(self, registry: CollectorRegistry = REGISTRY, platform: Optional[Any] = 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) -> Iterable[Metric]: 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"""