
    Fi                     ^    d dl Z d dlmZ d dlmZ d dlT  G d dej        j                  Z	dS )    N)Path)Response)*c                   X    e Zd ZdZedefd            Zej        j	        d             Z
dS )CmfMetricsViewz/metricsreturnc                     t                                           } d}d}d}d}i }i }g }t          j                    }t          d                                          D ]}	|	j                                        s	 |	dz                                                                  }
n# t          $ r Y Sw xY w|
d         t          |           k    rq|                    |	           |t          |
d                   z  }t          |
d                   ||	j        <   t          |
d                   ||	j        <   t          j        d           t          j                    }|D ]}		 |	dz                                                                  }
n# t          $ r Y 9w xY w|d	z  }|t          |
d                   ||	j                 z
  z  }|t          |
d                   ||	j                 z
  z  }t                               d
          }|}|dz  dz  }|||z
  z  |z  }|||z
  z  |z  }d|dd|dd|dd|dgddddddddddddddddddS )Nr   z/procstat            g      ?   
SC_CLK_TCKi   eva_app_process)namevalueeva_app_user_cpuseva_app_sys_cpus eva_app_memory_consumption_bytesgaugezEva App process quantityprocess)TYPEHELPUNITz"Eva App CPU units user utilizationcpusz!Eva App CPU units sys utilizationzEva App memory utilizationbytes)r   r   r   r   )recordsmeta)osgetpgrptimer   iterdirr   isdigit	read_textsplitFileNotFoundErrorstrappendintsleepsysconf)pgrouptotal_proccess	total_rsstotal_user_ticstotal_sys_ticks
user_times	sys_timessub_path_liststart_timestampproc_sub_pathr
   stop_timestampticksr   r   r   r   s                    $./cmf/modules/index/views/metrics.py_get_metricszCmfMetricsView._get_metrics   s   
 	
	)++!(^^3355 	: 	:M %--// %.99;;AACC$    Aw#f++%%  ///T"X&I-0b]]J})*,/RMMIm())
3* 	M 	MM%.99;;AACC$    aNs48}}z-:L/MMMOs48}}y9K/LLLOO

<(((+4q=4+?(+~/OPSXX*n.NORWW
 ., 
 0. 
 /- 
 ?= ( $6%$ $ $@"& & $?"% % $8#5 5! ')
 )
 )	
s$   9)B##
B0/B0!)F
FFc           
         d}|                                  }|d         D ]P}|d         }|d         |                                         D ]\  }}|d| d| d| dz  }|| d|d          dz  }Q|d	z  }t          |d
          S )N r   r   r   z#  
r   z# EOF
z:application/openmetrics-text; version=1.0.0; charset=utf-8)content_type)r:   itemsr   )selfbodymetricsrecordr   	meta_name
meta_values          r9   getzCmfMetricsView.getp   s     ##%%i( 	2 	2F&>D+26?4+@+F+F+H+H ? ?'J>Y>>>>
>>>>t11fWo1111DD	+ghhhh    N)__name__
__module____qualname____url__staticmethoddictr:   cmfviewsactionrG    rH   r9   r   r   
   sj        G`
$ `
 `
 `
 \`
D 	Yi i i i irH   r   )
r"   pathlibr   flaskr   cmf.includerO   rP   BaseViewr   rR   rH   r9   <module>rW      s                    ri ri ri ri riSY' ri ri ri ri rirH   