관리-도구
편집 파일: samples.cpython-39.opt-1.pyc
a ������g�C������������������� ���@���sv��d�dl�Z�d�dlZd�dlZd�dlZd�dlmZmZmZmZm Z m Z mZ�d�dlm Z �e�ejd��Zded�krnend�ZdZeeef�Ze�e�Zd"eee e�ee e�d �d d�ZG�dd ��d e �ZG�dd��d�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�Z G�dd��de�Z!G�dd��de�Z"G�dd��de�Z#G�dd��de�Z$G�d 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�����d���z/sys/class/hwmon�����)�rootfd�statfile�default�key�returnc����������� ��� ���C���s����zt�j|t�j|�d�}W�n�ty*���Y�d�S�0�zlzt��|d�}W�nL�ty��}�z4|jtjkrht� d||��W�Y�d�}~W�t�� |��d�S�d�}~0�0�W�t�� |��nt�� |��0�|r�|�|�t|��}|�d|�}|||��}zt |�p�|W�S��t��y����Y�d�S�0�d�S�)N��dir_fd����zFailed to read %s: %s���� )�os�open�O_RDONLY�FileNotFoundError�read�OSError�errnoZENODEV�loggerZwarning�close�index�len�int� ValueError) r���r���r���r����fd�data�e�start�end��r)����3/usr/lib/python3.9/site-packages/cockpit/samples.py� read_int_file%���s*���� �r+���c�������������������@���s.���e�Zd�ZU�eed<�eed<�eed<�eed<�dS�)�SampleDescription�nameZunitsZ semantics� instancedN)�__name__� __module__�__qualname__�str�__annotations__�boolr)���r)���r)���r*���r,���C���s��� r,���c�������������������@���s*���e�Zd�ZU�ee�ed<�edd�dd�ZdS�)�Sampler�descriptionsN��samplesr���c�����������������C���s���t��d�S�)N)�NotImplementedError)�selfr8���r)���r)���r*����sampleM���s����zSampler.sample)r/���r0���r1���r���r,���r3����Samplesr;���r)���r)���r)���r*���r5���J���s��� r5���c���������������� ���@���s����e�Zd�Zeddddd�eddddd�eddddd�eddddd�ed ddd d�edddd d�edddd 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.iowaitNr7���c�����������������C���sB��t�d���"}|D��] }|�d�s"q|���d�d��\}}}}}} |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 �<�qW�d�����n1��s40����Y��d�S�)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/���r0���r1���r,���r6���r<���r;���r)���r)���r)���r*���r=���Q���s����r=���c���������������� ���@���sX���e�Zd�Zeddddd�eddddd�eddddd�eddddd�gZed d �dd�Zd S�) � MemorySampler�memory.free�bytes�instantFr@����memory.used� memory.cached�memory.swap-usedNr7���c�����������������C���s����t�d��}dd��|D��}W�d�����n1�s,0����Y��d|d��|d<�d|d�|d���|d <�d|d �|d���|d<�d|d �|d���|d<�d�S�)Nz /proc/meminfoc�����������������S���s,���i�|�]$}|��d�d�\}}|t|�d���qS�)�:����z kB )rE���r"����strip)�.0rH����k�vr)���r)���r*���� <dictcomp>}���r ���z(MemorySampler.sample.<locals>.<dictcomp>r���ZMemFreerO���ZMemTotalZMemAvailablerR���ZBuffersZCachedrS���Z SwapTotalZSwapFreerT���)r���)r:���r8���Zmeminfo�itemsr)���r)���r*���r;���{���s���� ,zMemorySampler.samplerM���r)���r)���r)���r*���rN���s���s����rN���c�������������������@���sr���e�Zd�ZU�dZeee��ed<�eddddd�gZ e eee�d�d d ��Z e ee�d�dd ��Zedd�dd�ZdS�)�CPUTemperatureSamplerN�sensors�cpu.temperatureZcelsiusrQ���Tr@���)r���r���c�������������� ���c���sJ��zJt�jdtj|�d��$}t�|d�������}W�d�����n1�s>0����Y��W�n�ty^���Y�d�S�0�|dkrrdd��}n.|dkr�d�}n |dkr�d�}n|d v�r�d�}nd�S�t�|��D�]�}|� d �s�q�|�r>zX|� d d�}t�j|tj|�d��$}t�|d�������}W�d�����n1��s0����Y��W�n�t�y0���Y�q�Y�n0�||��s>q�|V��q�d�S�)Nr-���r���r���Zatk0110c�����������������S���s���|�dkS�)NzCPU Temperaturer)���)�labelr)���r)���r*����<lambda>����r ���z:CPUTemperatureSampler.detect_cpu_sensors.<locals>.<lambda>Zcpu_thermalZcoretemp)Zk8tempZk10tempZ_inputZ_label)r ���r���r���r���r����decoderW���r����listdir�endswith�replace)r���r$���r-���� predicateZinput_filenameZlabel_filenamer`���r)���r)���r*����detect_cpu_sensors����s6����6 8 z(CPUTemperatureSampler.detect_cpu_sensors)r���c��������������� ���c���s����zt��ttjtjB��}�W�n�ty,���Y�d�S�0�|��~�t�|��D�]b}t�j|tjtjB�|�d��6}t� |�D�]}t��d|��d|���V��qfW�d�����q>1�s�0����Y��q>W�d�����n1�s�0����Y��d�S�)Nr����/) r ���r���� HWMON_PATHr���r����O_DIRECTORYr���rc���r]���rg���)Ztop_fdZ hwmon_nameZ subdir_fd�sensorr)���r)���r*����scan_sensors����s����z"CPUTemperatureSampler.scan_sensorsr7���c�������������� ���C���s����|�j�d�u�rtt����|�_�|�j�D�]f}t|��:}t|�������}|dkrVW�d������d�S�W�d�����n1�sj0����Y��|d�|d�|<�qd�S�)Nr���r���r_���)r^����listr]���rl���r���r"���r���rW���)r:���r8���Zsensor_pathrk���Ztemperaturer)���r)���r*���r;�������s���� 0zCPUTemperatureSampler.sample)r/���r0���r1���r^���r���r���r2���r3���r,���r6����staticmethodr"���r���rg���rl���r<���r;���r)���r)���r)���r*���r]�������s��� �*r]���c���������������� ���@���sX���e�Zd�Zeddddd�eddddd�eddddd�ed dddd�gZed d�dd �Zd S�)�DiskSampler� disk.all.readrP���r?���Fr@����disk.all.written� disk.dev.readT�disk.dev.writtenNr7���c����������� ������C���s��t�d���}d}d}|D�]�}|������}|d�}|d�}|d�} |d�} |dkrPq|�d�r\q|d�d��dv�rz|d ����rzq|�d �r�d|v�r�qt| �d�}t| �d�}||7�}||7�}||d �|<�||d�|<�q||d<�||d<�W�d�����n1�s�0����Y��d�S�)N�/proc/diskstatsr������������ ����9zdm-)�sdZhdZvd���Znvme�p����rr���rs���rp���rq���)r���rW���rE���rD����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.samplerM���r)���r)���r)���r*���ro�������s����ro���c�������������������@���s����e�Zd�ZU�eddddd�eddddd�eddddd�eddddd�ed d ddd�edd ddd�gZdZee�ed<�e dd�dd�Z dS�)� CGroupSampler�cgroup.memory.usagerP���rQ���Tr@����cgroup.memory.limit�cgroup.memory.sw-usage�cgroup.memory.sw-limit�cgroup.cpu.usager>���r?����cgroup.cpu.shares�countN� cgroups_v2r7���c�����������������C���s���|�j�d�u�rtj�d�|�_�|�j�r�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�|<��qXd�S�)Nz!/sys/fs/cgroup/cgroup.controllersz/sys/fs/cgroup/��zmemory.currentr���r����z memory.maxr����zmemory.swap.currentr����zmemory.swap.maxr����z cpu.weightr����zcpu.stats ���usage_usec)r���r���r����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�fwalkre���r+���)r:���r8���Zcgroups_v2_pathr�����_r����cgroupZ usage_usecZmemory_pathZcpu_pathZ usage_nsecr)���r)���r*���r;�����sD���� zCGroupSampler.sample)r/���r0���r1���r,���r6���r����r���r4���r3���r<���r;���r)���r)���r)���r*���r������s��� � r����c�������������������@���sz���e�Zd�Zejdejd�Zeddddd�eddddd�gZe e ed �d d��Ze e e e e f�d �dd ��Zed�dd�ZdS�)�CGroupDiskIOs:���\bread_bytes: (?P<read>\d+).*\nwrite_bytes: (?P<write>\d+))�flags�disk.cgroup.readrP���r?���Tr@����disk.cgroup.written)r$���r���c�����������������C���sV���t�jdtj|�d��0}t�|d�������}|dd���W��d�����S�1�sH0����Y��d�S�)Nr����r���i�������)r ���r���r���r���r���rb���rW���)r$���Z cgroup_fd�cgroup_namer)���r)���r*����get_cgroup_nameE��s����zCGroupDiskIO.get_cgroup_namec�����������������C���s����t�jdtj|�d��b}t�|d�}t�tj|�}|rdt |� d��}t |� d��}||fW��d�����S�W�d�����dS�1�sz0����Y��d�S�)N�ior���i���r����write)r���r���)r ���r���r���r���r����re�searchr�����IO_REr"����group)r$���Zio_fdr%����match� proc_read� proc_writer)���r)���r*����get_proc_ioM��s����zCGroupDiskIO.get_proc_io)r8���c����������� ������C���s��t��dtjtjB����}|d�}|d�}t�|�D�]�}|d�dk�s0|d�dkrNq0zNt�j|tj|d��(}|��|�}|��|�\}} W�d�����n1�s�0����Y��W�n�t t tfy����Y�q0Y�n0�|�|d�|�||<�|�|d�| �||<�q0W�d�����n1�s�0����Y��d�S�)Nz/procr����r����r����0rx���r���) r ���r���r���r���rj���rc����O_PATHr����r����r����PermissionError�ProcessLookupError�get) r:���r8���Zproc_fdZreadsZwritesr����Zpid_fdr����r����r����r)���r)���r*���r;���[��s���� 0 zCGroupDiskIO.sampleN)r/���r0���r1���r�����compile�Sr����r,���r6���rn���r"���r2���r����r���r����r<���r;���r)���r)���r)���r*���r����>��s���� r����c�������������������@���s<���e�Zd�Zeddddd�eddddd�gZedd�d d �ZdS�)�NetworkSampler�network.interface.txrP���r?���Tr@����network.interface.rxNr7���c�����������������C���s����t�d��l}|D�]V}|���}|d�d�dkr,q|d�d�d��}t|d��|d�|<�t|d��|d�|<�qW�d�����n1�sz0����Y��d�S�) Nz /proc/net/devr���rz���rU���rV���r����rw���r����)r���rE���r"���)r:���r8���Znetwork_samplesrH���r���Zifacer)���r)���r*���r;���v��s���� zNetworkSampler.samplerM���r)���r)���r)���r*���r����p��s����r����c�������������������@���s<���e�Zd�Zeddddd�eddddd�gZedd�d d �ZdS�)�MountSampler�mount.totalrP���rQ���Tr@���� mount.usedNr7���c�������������� ���C���s����t�d���}|D�]�}|d�dkr q|���^}}}}}d|v�rJd|�d�v�rJqd|v�r\d|v�r\qzt�|�} W�n�ty����Y�qY�n0�| j} | | j�}||d �|<�|| | j��|d �|<�qW�d�����n1�s�0����Y��d�S�)Nz/proc/mountsr���rh���z/loop�ro�,z revokefs-fuseZflatpakr����r����)r���rE���r����statvfsr����f_frsize�f_blocks�f_bfree)r:���r8���ZmountsrH���Zfs_specZfs_fileZ_fs_vfstypeZ fs_mntoptsZ_rest�resZfrsize�totalr)���r)���r*���r;������s"���� zMountSampler.samplerM���r)���r)���r)���r*���r�������s����r����c�������������������@���s<���e�Zd�Zeddddd�eddddd�gZedd�d d �ZdS�)�BlockSampler�block.device.readrP���r?���Tr@����block.device.writtenNr7���c�������������� ���C���s����t�d��d}|D�]N}|������^ }}}}}}}}}}}t|�d�|d�|<�t|�d�|d�|<�qW�d�����n1�sr0����Y��d�S�)Nrt���r|���r����r����)r���rW���rE���r"���)r:���r8���r~���rH���r����r����Zsectors_readZsectors_writtenr)���r)���r*���r;������s ���� "zBlockSampler.samplerM���r)���r)���r)���r*���r�������s����r����)Nr ���)'r���Zloggingr���r�����typingr���r���r���r���r���r���r���Zcockpit._vendor.systemd_ctypesr ����sysconf� sysconf_namesZUSER_HZrF���ri���r2���r<���Z getLoggerr/���r���r"���rP���r+���r,���r5���r=���rN���r]���ro���r����r����r����r����r����ZSAMPLERSr)���r)���r)���r*����<module>���s@���$ "M2:2 �