HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/cockpit/__pycache__/samples.cpython-39.pyc
a

�/�h�C�	@svddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZddlm
Z
e�ejd�ZdedkrnendZdZeeefZe�e�Zd"eee
eee
ed	�d
d�ZGdd
�d
e	�ZGdd�d�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$Gd d!�d!e�Z%e%e!e"eee ee$e#g	Z&dS)#�N)�Any�DefaultDict�Iterable�List�
NamedTuple�Optional�Tuple)�Handle�
SC_CLK_TCK���dz/sys/class/hwmon�)�rootfd�statfile�default�key�returnc	
Cs�ztj|tj|d�}Wnty*YdS0zlzt�|d�}WnLty�}z4|jtjkrht�	d||�WYd}~Wt�
|�dSd}~00Wt�
|�nt�
|�0|r�|�|�t|�}|�d|�}|||�}zt
|�p�|WSt�y�YdS0dS)N��dir_fd�zFailed to read %s: %s�
)�os�open�O_RDONLY�FileNotFoundError�read�OSError�errnoZENODEV�loggerZwarning�close�index�len�int�
ValueError)	rrrr�fd�data�e�start�end�r)�3/usr/lib/python3.9/site-packages/cockpit/samples.py�
read_int_file%s*
�r+c@s.eZdZUeed<eed<eed<eed<dS)�SampleDescription�nameZunitsZ	semantics�	instancedN)�__name__�
__module__�__qualname__�str�__annotations__�boolr)r)r)r*r,Cs
r,c@s*eZdZUeeed<edd�dd�ZdS)�Sampler�descriptionsN��samplesrcCst�dS)N)�NotImplementedError)�selfr8r)r)r*�sampleMszSampler.sample)r/r0r1rr,r3�Samplesr;r)r)r)r*r5Js
r5c
@s�eZdZeddddd�eddddd�eddddd�eddddd�ed	ddd
d�edddd
d�edddd
d�ed
ddd
d�gZedd�dd�ZdS)�
CPUSamplerzcpu.basic.nice�millisec�counterF�r.zcpu.basic.userzcpu.basic.systemzcpu.basic.iowaitz
cpu.core.niceTz
cpu.core.userzcpu.core.systemzcpu.core.iowaitNr7cCsBtd���"}|D�]
}|�d�s"q|��dd�\}}}}}}	|dd�pLd}
|
r�d}t|�t||�d�|
<t|�t||�d�|
<t|�t||�d�|
<t|	�t||�d	�|
<qd
}t|�t||�d�<t|�t||�d�<t|�t||�d�<t|	�t||�d	�<qWd�n1�s40YdS)Nz
/proc/stat�cpu��zcpu.corez.nicez.userz.systemz.iowaitz	cpu.basic)r�
startswith�splitr"�MS_PER_JIFFY)r:r8�stat�linerA�user�nice�systemZ_idleZiowaitZcore�prefixr)r)r*r;^s"

zCPUSampler.sample�r/r0r1r,r6r<r;r)r)r)r*r=Qs�r=c	@sXeZdZeddddd�eddddd�eddddd�eddddd�gZed	d
�dd�Zd	S)
�
MemorySampler�memory.free�bytes�instantFr@�memory.used�
memory.cached�memory.swap-usedNr7cCs�td��}dd�|D�}Wd�n1s,0Yd|d|d<d|d|d|d	<d|d
|d|d<d|d
|d|d<dS)Nz
/proc/meminfocSs,i|]$}|�dd�\}}|t|�d���qS)�:�z kB
)rEr"�strip)�.0rH�k�vr)r)r*�
<dictcomp>}r
z(MemorySampler.sample.<locals>.<dictcomp>rZMemFreerOZMemTotalZMemAvailablerRZBuffersZCachedrSZ	SwapTotalZSwapFreerT)r)r:r8Zmeminfo�itemsr)r)r*r;{s
,zMemorySampler.samplerMr)r)r)r*rNss�rNc@sreZdZUdZeeeed<eddddd�gZ	e
eeed�d	d
��Z
e
eed�dd
��Zedd�dd�ZdS)�CPUTemperatureSamplerN�sensors�cpu.temperatureZcelsiusrQTr@)rrc	csJzJtjdtj|d��$}t�|d�����}Wd�n1s>0YWnty^YdS0|dkrrdd�}n.|dkr�d}n |dkr�d}n|d	vr�d}ndSt�|�D]�}|�	d
�s�q�|�r>zX|�
d
d�}tj|tj|d��$}t�|d�����}Wd�n1�s0YWnt�y0Yq�Yn0||��s>q�|Vq�dS)Nr-rrZatk0110cSs|dkS)NzCPU Temperaturer))�labelr)r)r*�<lambda>�r
z:CPUTemperatureSampler.detect_cpu_sensors.<locals>.<lambda>Zcpu_thermalZcoretemp)Zk8tempZk10tempZ_inputZ_label)r	rrrr�decoderWr�listdir�endswith�replace)rr$r-�	predicateZinput_filenameZlabel_filenamer`r)r)r*�detect_cpu_sensors�s66

8

z(CPUTemperatureSampler.detect_cpu_sensors)rc
cs�zt�ttjtjB�}Wnty,YdS0|�~t�|�D]b}tj|tjtjB|d��6}t�	|�D]}t�d|�d|��VqfWd�q>1s�0Yq>Wd�n1s�0YdS)Nr�/)
r	r�
HWMON_PATHrr�O_DIRECTORYrrcr]rg)Ztop_fdZ
hwmon_nameZ	subdir_fd�sensorr)r)r*�scan_sensors�sz"CPUTemperatureSampler.scan_sensorsr7c	Cs�|jdurtt���|_|jD]f}t|��:}t|�����}|dkrVWd�dSWd�n1sj0Y|d|d|<qdS)Nrrr_)r^�listr]rlrr"rrW)r:r8Zsensor_pathrkZtemperaturer)r)r*r;�s


0zCPUTemperatureSampler.sample)r/r0r1r^rrr2r3r,r6�staticmethodr"rrgrlr<r;r)r)r)r*r]�s
�*r]c	@sXeZdZeddddd�eddddd�eddddd�ed	dddd�gZed
d�dd
�Zd
S)�DiskSampler�
disk.all.readrPr?Fr@�disk.all.written�
disk.dev.readT�disk.dev.writtenNr7c
Cstd���}d}d}|D]�}|����}|d}|d}|d}	|d}
|dkrPq|�d�r\q|dd�dvrz|d	��rzq|�d
�r�d|vr�qt|	�d}t|
�d}||7}||7}||d
|<||d|<q||d<||d<Wd�n1s�0YdS)N�/proc/diskstatsr���	�9zdm-)�sdZhdZvd���Znvme�p�rrrsrprq)rrWrErD�isdigitr")
r:r8�	diskstatsZall_read_bytesZall_written_bytesrH�fieldsZ	dev_major�dev_nameZnum_sectors_readZnum_sectors_written�
read_bytesZ
written_bytesr)r)r*r;�s2

zDiskSampler.samplerMr)r)r)r*ro�s�roc@s�eZdZUeddddd�eddddd�eddddd�eddddd�ed	d
ddd�edd
ddd�gZdZeeed<e	dd�dd�Z
dS)�
CGroupSampler�cgroup.memory.usagerPrQTr@�cgroup.memory.limit�cgroup.memory.sw-usage�cgroup.memory.sw-limit�cgroup.cpu.usager>r?�cgroup.cpu.shares�countN�
cgroups_v2r7cCs�|jdurtj�d�|_|jr�d}t�|�D]�\}}}}|�|d�}|sJq,t|dd�|d|<t|d�|d|<t|d	d�|d
|<t|d�|d|<t|d
�|d|<t|dddd�}|r,|d|d|<q,n�d}t�|�D]j\}}}}|�|d�}|s�q�t|dd�|d|<t|d�|d|<t|dd�|d
|<t|d�|d|<q�d}	t�|	�D]V\}}}}|�|	d�}|�sz�qXt|d�|d|<t|d�}
|
�rX|
d|d|<�qXdS)Nz!/sys/fs/cgroup/cgroup.controllersz/sys/fs/cgroup/�zmemory.currentrr�z
memory.maxr�zmemory.swap.currentr�zmemory.swap.maxr�z
cpu.weightr�zcpu.stats
usage_usec)rrr�z/sys/fs/cgroup/memory/zmemory.usage_in_byteszmemory.limit_in_byteszmemory.memsw.usage_in_byteszmemory.memsw.limit_in_bytesz/sys/fs/cgroup/cpu/z
cpu.sharesz
cpuacct.usagei@B)r�r�path�exists�fwalkrer+)r:r8Zcgroups_v2_pathr��_r�cgroupZ
usage_usecZmemory_pathZcpu_pathZ
usage_nsecr)r)r*r;sD

zCGroupSampler.sample)r/r0r1r,r6r�rr4r3r<r;r)r)r)r*r�s
�	r�c@szeZdZejdejd�Zeddddd�eddddd�gZe	e
ed	�d
d��Ze	e
e
e
e
fd	�dd
��Zed�dd�ZdS)�CGroupDiskIOs:\bread_bytes: (?P<read>\d+).*\nwrite_bytes: (?P<write>\d+))�flags�disk.cgroup.readrPr?Tr@�disk.cgroup.written)r$rcCsVtjdtj|d��0}t�|d�����}|dd�Wd�S1sH0YdS)Nr�ri�)r	rrrrrbrW)r$Z	cgroup_fd�cgroup_namer)r)r*�get_cgroup_nameEszCGroupDiskIO.get_cgroup_namecCs�tjdtj|d��b}t�|d�}t�tj|�}|rdt	|�
d��}t	|�
d��}||fWd�SWd�dS1sz0YdS)N�iorir�write)rr)r	rrrr�re�searchr��IO_REr"�group)r$Zio_fdr%�match�	proc_read�
proc_writer)r)r*�get_proc_ioMszCGroupDiskIO.get_proc_io)r8c
Cst�dtjtjB���}|d}|d}t�|�D]�}|ddks0|ddkrNq0zNtj|tj|d��(}|�|�}|�|�\}}	Wd�n1s�0YWnt	t
tfy�Yq0Yn0|�|d�|||<|�|d�|	||<q0Wd�n1s�0YdS)Nz/procr�r�r�0rxr)
r	rrrrjrc�O_PATHr�r�r�PermissionError�ProcessLookupError�get)
r:r8Zproc_fdZreadsZwritesr�Zpid_fdr�r�r�r)r)r*r;[s
0
zCGroupDiskIO.sampleN)r/r0r1r��compile�Sr�r,r6rnr"r2r�rr�r<r;r)r)r)r*r�>s�
r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�NetworkSampler�network.interface.txrPr?Tr@�network.interface.rxNr7cCs�td��l}|D]V}|��}|dddkr,q|ddd�}t|d�|d|<t|d�|d|<qWd�n1sz0YdS)	Nz
/proc/net/devrrzrUrVr�rwr�)rrEr")r:r8Znetwork_samplesrHrZifacer)r)r*r;vs
zNetworkSampler.samplerMr)r)r)r*r�ps�r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�MountSampler�mount.totalrPrQTr@�
mount.usedNr7c
Cs�td���}|D]�}|ddkr q|��^}}}}}d|vrJd|�d�vrJqd|vr\d|vr\qzt�|�}	Wnty�YqYn0|	j}
|
|	j}||d	|<||
|	j|d
|<qWd�n1s�0YdS)Nz/proc/mountsrrhz/loop�ro�,z
revokefs-fuseZflatpakr�r�)rrEr�statvfsr�f_frsize�f_blocks�f_bfree)r:r8ZmountsrHZfs_specZfs_fileZ_fs_vfstypeZ
fs_mntoptsZ_rest�resZfrsize�totalr)r)r*r;�s"


zMountSampler.samplerMr)r)r)r*r��s�r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�BlockSampler�block.device.readrPr?Tr@�block.device.writtenNr7c
Cs�td��d}|D]N}|����^
}}}}}}}}}}}t|�d|d|<t|�d|d|<qWd�n1sr0YdS)Nrtr|r�r�)rrWrEr")r:r8r~rHr�r�Zsectors_readZsectors_writtenr)r)r*r;�s

"zBlockSampler.samplerMr)r)r)r*r��s�r�)Nr
)'rZloggingrr��typingrrrrrrrZcockpit._vendor.systemd_ctypesr	�sysconf�
sysconf_namesZUSER_HZrFrir2r<Z	getLoggerr/rr"rPr+r,r5r=rNr]ror�r�r�r�r�ZSAMPLERSr)r)r)r*�<module>s@$
 "M2:2 �