HEX
Server: nginx/1.24.0
System: Linux 19.178.153.160.host.secureserver.net 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: www-data (33)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //lib/fm-agent/plugins/__pycache__/process.cpython-312.pyc
�

���i�D��j�ddlZddlZddlZ	ddlZddlZGd�dej
�Zy#dZY� xYw)�Nc�0�eZdZdZdZed��Zd�Zd�Zy)�
ProcessPlugin�process�Processc�>�tj}d}dtjvrtj}d}n�dtjvrtj}d}n�dtjvrtj}d}n�t�.|j
j
d�tj}d}nNtjjd�s/|j
j
d�tj}d}iSdtjvr%d	d||d
dd�d
d||d
dd�dd||ddd�dd||ddd�d�}|Sdd||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
rrrrz%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�metadatas     �$/usr/lib/fm-agent/plugins/process.py�get_metadatazProcessPlugin.get_metadatas����%�%�����C�L�L� ��)�)�F��C�
����
%��)�)�F��C�
����
%��)�)�F��C�
�^��H�H�M�M�O�
� �+�+�F�X�C�������(��H�H�M�M�+�,��+�+�F�"�C��I��s�|�|�#�:�#�$�%(�'�%)�
(�G�#�$�%(�'�%)�
-�2�#�$�%(�%�%)�
#�F�#�$�%(�%�%)�
(�3!�H�J��;�#�$�%(�'�*�:�#�$�%(�'�%)�
(�E�#�$�%(�%�%)�
4�B�#�$�%(�%�%)�
1�2�#�$�%(�%�%)�
#�K�#�$�%(�%�%)�
)�G�#�$�%(�'�%)�
-�R�#�$�%(�%�%)�
9�R�#�$�%(� �%)�
5�O�#�$�%(�%�%)�
6�F�#�$�%(�%�%)�
(�O�#�$�%(�%�%)�
.�q`�H�B��c	��dtjvsdtjv�r�dtjvrd}ndtjvrd}tj�\}}|j	d�}|jd�r|j
d�}|dk(rt|�dz
Sd	}g}|ddD].}	||	vs�|dz
}|j|	j	�d	��0|d
k(r|S|dk(r|ryy	|dvr�d	}
d	}d	}|D]�}
dtjvrd
|
z}ndtjvrd
|
z}tj�\}}|j�j	d�}t|�dkr�x|dj	�}t|d	�}t|d�}t|d�}|
|z
}
||z
}||z
}��|dk(r|S|dk(rt|�dzS|
Sydtjvr�tjd�}d}|s|jjd�y|jd�rd|z}n
d|z}|d|zz
}tj|�\}}|j	d�}|jd
�rt|�dz
S|jd�rt|�dz
d	kDryy	t�|jj!d�yd}|jd�r|j
d�}d}tj"�}g}t%|�}|jd�rU|dk(rP|D]J}	t'j(||j+��r#|j|j-gd�����Ln�|jd�rd|dk(r_|D]Y}	t'j(|d j3|j5���r#|j|j-gd�����[n+|D]&}	|j|j-gd!�����(|D]$}|d"sd|d<�d j3|d"�|d<�&|jj7d#|z�|dk(s|d$k(rttj8��S|d
k(r~g}|jj!d%|z�|D]3}||��	t'j(|||�s�#|j|��5|jj7|�t|�S|dk(rwg}|jj!d%|z�|D]3}||��	t'j(|||�s�#|j|��5|jj7|�|ryy	|d&v�rDg}|jj!d%|z�|D]3}||��	t'j(|||�s�#|j|��5|jj7|�|jj7d'|D�cgc]}||��	c}z�|sy	d	}
d	}d	}d	}d(tjk(r&|j;|�}|d)}
|d*}|d+}|d,}nG|D]4}
|
d)}|
d*}|
d+j<} |
d,}!|
|z
}
||z
}|| z
}||!z
}�6t|�d-z}|dk(r|S|dk(r|S|d.k(r|S|
S|d/vr�|rOt?|D�cgc]9}|jAd0�jB|jAd0�jDz��;c}�}"ny1|jG||�}#|#s|jI|||"�y|#d	\}$}%|"|%z
|$z}&|jI|||"�tjJ�}'|'sd}'|&|'zd2zSy	#tj.$r|jj1d�Y���wxYw#tj.$r|jj1d�Y��fwxYw#tj.$r|jj1d�Y��<wxYwcc}wcc}w)3Nr�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�cmdliner<�	cpu_times)�attrszUnable to get process.� )r>r?r<�cpu_percent�memory_percent�memory_info�num_threadsr?zAll running processes:
%s
�countzSearching processes for '%s')rr8rzFound matching processes: %sr	rCrDrErFir)rrr@g�d)&r"r#r �execute_command�split�endswith�rstrip�len�append�strip�float�whichr%�error�
startswithr$r&�process_iter�str�re�searchr<�as_dict�
NoSuchProcess�	exception�joinr?�debug�pids�findDarwinProcInfo�rss�sum�get�user�system�get_cache_results�cache_result�	cpu_count)(r+�textkey�datar,�ps_cmd�retcode�outputrGr]�line�all_cpu�all_mem�
all_raw_kbr>�ps�ret�fields�cpu�mem�raw_kbr:�cmd�outrW�process_objsr�proc�found_procs�p�all_raw_mem�all_thread_count�rv�mem_raw�thread_count�user_sum�last_result�delta�previous�time_used_result�number_of_coress(                                        r/�checkzProcessPlugin.check�s����C�L�L� �G�s�|�|�$;�����$�"���C�L�L�(�,��(�8�8��@�O�G�V��\�\�$�'�F�����(�!�.�.��1���1�1��6�{�Q��&�����"�1�2�J�5�D��t�|���
�����D�J�J�L��O�4�5�
�3�3� �L�� 0�0�� � ��!��
 �G��G�!"�J�#�-�� �C�L�L�0�!=��!C�B�$����4�!=��!C�B�&0�&@�&@��&D���V�!'����!5�!5�d�!;���v�;��?�$�!'�����!2��#�F�1�I�.��#�F�1�I�.��!&�v�a�y�!1���3����3���"�f�,�
�-� �"C�C�&���"?�?�$�Z�0�4�7�7�&���
����
%��$�$�W�-�E��C�������V�W������(���'���e�n���u�t�|�#��$�4�4�S�9�K�C���,�,�t�$�C��!�!�"7�8��3�x�!�|�#��!�!�"2�3��s�8�a�<�!�#����>��H�H�M�M�O�
�������G�$��n�n�W�-�G�"�F��*�*�,���	��4�y�����<�=�&�F�BR�$�
����y�y��t�y�y�{�3�!�(�(� �L�L�/V�L�W���
�
���=�>��-�'�$�
����y�y��s�x�x�����'?�@�!�(�(� �L�L�/V�L�W���
�%�
����$�$����#�%�
��
�&�	<�D��	�?�&(��]�#��"%�(�(�4�	�?�";�D���		<�
	
�����5�	�A�B��-�-��G�1C��v�{�{�}�%�%��+�+��K��H�H�M�M�8�4�?�@�!�
-����<�+��	�	�$��V��0M��&�&�t�,�
-�
�H�H�N�N�;�'��{�#�#�
�(�
(��K��H�H�M�M�8�4�?�@�!�
-����<�+��	�	�$��V��0M��&�&�t�,�
-�
�H�H�N�N�;�'����
�
�
�
�K��H�H�M�M�8�4�?�@�!�
-����<�+��	�	�$��V��0M��&�&�t�,�
-�
�H�H�N�N�;�'��H�H�N�N�.�[�1Q��!�F�)�1Q�Q�
����G��G��K� ���3�<�<�'��,�,�[�9���]�+���-�.�� ��/��#%�m�#4� �'�	5�C��m�,�C��.�/�C�!�-�0�4�4�G�#&�}�#5�L��s�N�G��s�N�G��7�*�K�$��4�$�	5�$�K�0�K�@���;�;����7�7�"�"��0�0�'�'���
�
�
���"+������k�*�/�/�!�%�%��2D�2K�2K�K������0�0��$�?�K���!�!�'�4��:��)�!�n�O�E�8� (�8� 3�u�<�����g�t�X�6�$�.�.�0�O�"�"#��$��6�#�=�=���a�+�+���H�H�&�&�'?�@�����+�+���H�H�&�&�'?�@����(�+�+���H�H�&�&�'?�@����^2R��ZsD�A^$�(A_�#`�+a
�1>a�$._�_�.`�
`�.a�?ac�N�g}|D]}|jt|d���!tjdj	dj|���\}}|j
d�}|dd}td�td�td�t|�d�}|D]l}	|	j
�}
t|
�d	k(s�"|d
xxt|
d�z
cc<|dxxt|
d
�z
cc<|dxxt|
d�z
cc<�n|d}t|�dz|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 {}�,r4r5Nr)rCrDrErF�rCr7rD�rE�r9)	rNrUr rI�formatr[rJrPrM)r+rzr]�fp�rcrk�lines�	procLinesr~�lr&�ms            r/r^z ProcessPlugin.findDarwinProcInfo�s$�����	(�B��K�K��B�u�I��'�	(� �/�/�
�0D�0D�S�X�X�d�^�0T�U�
��F����T�"���!�"�I�	� ��8�#�A�h� ��8��y�>�	
���	4�A��7�7�9�D��4�y�B���=�!�U�4��7�^�3�!��#�$��d�1�g��6�$��=�!�U�4��7�^�3�!�
	4�
�}���!�!�H�t�O��=���	r1N)	�__name__�
__module__�__qualname__rgr
�classmethodr0r�r^�r1r/rrs-���G��E��_��_�B}�~r1r)r(r"r r$rV�Pluginrr�r1r/�<module>r�s;��	�
����
�B�J�%�%�B���
�F�s�,�2