U mfW@sZddlZddlmZmZmZddlmZmZddl m Z m Z m Z Gddde Z e ZdS)N)AnyIterableOptional)GaugeMetricFamilyMetric) CollectorCollectorRegistryREGISTRYc@s\eZdZdZedfeeeedddZe e dddZ e d d Z d d Zd dZdS)PlatformCollectorz)Collector for python platform informationN)registryplatformcCs^|dkr tn||_|}|j}|dkr:|||dd|g|_|rZ||dS)NJavaZ python_infozPython platform information) pf _platform_infosystemupdate_java _add_metric_metricsregister)selfr r inforrR/opt/hc_python/lib/python3.8/site-packages/prometheus_client/platform_collector.py__init__ s  zPlatformCollector.__init__)returncCs|jS)N)r)rrrrcollectszPlatformCollector.collectcs8}fdd|D}t|||d}||d|S)Ncsg|] }|qSrr).0kdatarr sz1PlatformCollector._add_metric..)labelsr)keysrZ add_metric)name documentationr"r$valuesgrr!rrs  zPlatformCollector._add_metriccCs,|j\}}}|j|j|||dS)N)versionimplementationmajorminor patchlevel)rpython_version_tuplepython_versionpython_implementation)rr,r-r.rrrr%szPlatformCollector._infocCs*|j\}}}}|\}}}||||dS)N)Z jvm_versionZ jvm_releaseZ jvm_vendorZjvm_name)rjava_ver)rZ java_version_vminfoosinfovm_name vm_release vm_vendorrrrr/s zPlatformCollector._java)__name__ __module__ __qualname____doc__r rr rrrrr staticmethodrrrrrrrr s   r )r rtypingrrrZ metrics_corerrr rr r r ZPLATFORM_COLLECTORrrrrs 2