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: //proc/self/root/lib/fm-agent/plugins/__pycache__/process.cpython-39.pyc
a

��i�D�@sTddlZddlZddlZzddlZWndZYn0ddlZGdd�dej�ZdS)�Nc@s0eZdZdZdZedd��Zdd�Zdd�Zd	S)
�
ProcessPlugin�process�ProcesscCs�tj}d}dtjvr tj}d}nrdtjvr6tj}d}n\dtjvrLtj}d}nFtdurl|j�d�tj}d}n&tj	�
d�s�|j�d�tj}d}iSdtjvr�d	d||d
dd�d
d||d
dd�dd||ddd�dd||ddd�d�}n�dd||d
d�d	d||d
dd�dd||ddd�dd||ddd�dd||ddd�dd||ddd�d
d||d
dd�dd||ddd�dd||ddd�dd||ddd�dd||ddd�dd||ddd�d�}|S)N�aix�darwin�vmware�=Unable to import psutil library, no process metrics availablezDUnable to import psutil library, please install and rebuild metadataz/procz/proc not foundzEnable procfs.zNumber of processes - name�	processesT)�label�options�status�
error_message�unit�
option_stringz'Number of processes - full command linezProcess is running�booleanz&Process is running - full command line)�process.named_count�process.named_count.full�process.exists�process.exists.fullzNumber of processes running)r
rrr
rz%Memory percentage of processes - name�percentz"CPU percentage of processes - namez+Process Thread Count - executable name only�threadsz2Memory percentage of processes - full command linez2MB of memory used by processes - full command line�MBz/CPU percentage of processes - full command linez/Process Thread Count - executable name and args)�process.running_countr�process.named_memory_percentage�process.named_cpu_percentager�process.thread_countrz$process.named_memory_percentage.fullz process.named_memory_raw_mb.full�!process.named_cpu_percentage.fullrzprocess.thread_count.full)�
agent_util�	SUPPORTED�sys�platform�psutil�log�info�UNSUPPORTED�os�path�exists)�self�configr�msg�metadata�r,�$/usr/lib/fm-agent/plugins/process.py�get_metadatas


�
�	�	�	��&��	�	�	�	�	�	�	�	�	�	��azProcessPlugin.get_metadatac&	s.dtjvsdtjv�r�dtjvr&d}ndtjvr4d}t�|�\}}|�d�}|�d�r`|�d�}|dkrtt|�dSd	}g}|dd�D]&}	||	vr�|d7}|�|	��d	�q�|d
kr�|S|dkr�|r�dSd	Sn�|dv�r�d	}
d	}d	}|D]�}
dtjv�rd
|
}ndtjv�rd
|
}t�|�\}}|�	��d�}t|�dk�rFq�|d��}t
|d	�}t
|d�}t
|d�}|
|7}
||7}||7}q�|dk�r�|S|dk�r�t
|�dS|
SdSdtjv�rlt�d�}d}|�s�|j�
d�dS|�d��rd|}nd|}|d|7}t�|�\}}|�d�}|�d
��rFt|�dS|�d��rlt|�dd	k�rhdSd	Stdu�r�|j�d�dSd�|�d��r�|�d�}d�t��}g}t|�}|�d��r2�dk�r2|D]\}z,t�||����r|�|jgd�d��Wn(tj�y*|j�d�Y�q�Yn0�q�n�|�d��r��dk�r�|D]b}z2t�|d �|�����r�|�|jgd�d��Wn(tj�y�|j�d�Y�qLYn0�qLnP|D]J}z|�|jgd!�d��Wn(tj�y�|j�d�Y�q�Yn0�q�|D].}|d"�s d|d<�qd �|d"�|d<�q|j�d#|�|dk�sZ|d$k�rftt���S|d
k�r�g}|j�d%|�|D]0}|�du�r�t�||���r�|�|��q�|j�|�t|�S|dk�r@g}|j�d%|�|D]0}|�du�r�t�||���r�|�|��q�|j�|�|�r8dSd	S�n�|d&v�r�g}|j�d%|�|D]0}|�du�rbt�||���rb|�|��qb|j�|�|j�d'�fd(d)�|D��|�s�d	Sd	}
d	}d	}d	}d*tjk�r|�|�}|d+}
|d,}|d-}|d.}nZ|D]H}
|
d+}|
d,}|
d-j}|
d.}|
|7}
||7}||7}||7}�qt
|�d/}|dk�rx|S|dk�r�|S|d0k�r�|S|
Sn�|d1v�r*|�r�td2d)�|D��} nd3S|� ||�}!|!�s�|�!||| �dS|!d	\}"}#| |#|"}$|�!||| �t�"�}%|%�sd}%|$|%d4Sd	S)5Nr�sunoszps axwwzps -eo pid' 'args�
z.fullr�rrr)rr�named_memory_raw_mbzps -fp %s -o pcpu,pmem,rss�r�process.named_memory_raw_mb�r�pgrep�z5Unable to find 'pgrep'! Unable to check for processesz%s -fz%sz %sr�name�cmdline_strr)�pid�cmdliner8�	cpu_times)�attrszUnable to get process.� )r:r;r8�cpu_percent�memory_percent�memory_info�num_threadsr;zAll running processes:
%s
�countzSearching processes for '%s')rr4rzFound matching processes: %scsg|]}|��qSr,r,��.0�p��searchr,r-�
<listcomp>o�z'ProcessPlugin.check.<locals>.<listcomp>rr?r@rArBir)rrcSs$g|]}|�d�j|�d�j�qS)r<)�get�user�systemrDr,r,r-rI�s�g�d)#rr r�execute_command�split�endswith�rstrip�len�append�strip�float�whichr"�error�
startswithr!r#�process_iter�str�rerHr8�as_dict�
NoSuchProcess�	exception�joinr;�debug�pids�findDarwinProcInfo�rss�sum�get_cache_results�cache_result�	cpu_count)&r(�textkey�datar)�ps_cmd�retcode�outputrCrb�line�all_cpu�all_mem�
all_raw_kbr:�ps�ret�fields�cpu�mem�raw_kbr6�cmd�out�process_objsr	�proc�found_procs�all_raw_mem�all_thread_count�rv�mem_raw�thread_count�user_sum�last_result�delta�previous�time_used_result�number_of_coresr,rGr-�check�s�













�
������


 
 
 �






��zProcessPlugin.checkcCs�g}|D]}|�t|d��qt�d�d�|���\}}|�d�}|dd�}td�td�td�t|�d�}|D]`}	|	��}
t|
�d	krr|d
t|
d�7<|dt|
d
�7<|dt|
d�7<qr|d}t|�d|d<|S)z�
        On OSX, psutil will not report process information on processes
        belonging to other users, unless the requesting process is privileged.
        https://github.com/giampaolo/psutil/issues/883
        r:zps uM -p {}�,r0r1Nr)r?r@rArB�r?r3r@�rA�r5)	rTr[rrO�formatr`rPrVrS)r(r|rb�fp�rcrm�lines�	procLinesr�lr#�mr,r,r-rc�s(
�z ProcessPlugin.findDarwinProcInfoN)	�__name__�
__module__�__qualname__rir
�classmethodr.r�rcr,r,r,r-rs
"r)r%rrr!r\�Pluginrr,r,r,r-�<module>s