|
Server : Apache System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64 User : njnconst ( 1116) PHP Version : 8.4.18 Disable Function : NONE Directory : /opt/alt/python37/lib/python3.7/site-packages/lvestats/snapshots/__pycache__/ |
Upload File : |
B
a��b�= � @ s� d dl mZ d dl mZ d dlmZ d dlZd dlZd dlZd dlm Z d dl
mZ d dlZ
d dlmZmZ d dlmZ d d lmZ d d
lmZ d dlmZ d dlmZ d
ZdZdZdd� Ze
jj j!j"ddd��Z#dd� Z$G dd� de%�Z&dS )� )�print_function)�absolute_import)�mapN)�or_)�sessionmaker)�dbengine�uidconverter)�dateutil)�prepare_data_json)�lve_read_snapshot_parser)�Snapshot)�incidentz?Snapshots collected starting from %s to %s for lve id %d @ %s:
zDone..
Z localhostc C sv | j r| j \}}n\| jr(| j}|d }nFy(t�d�| j��}t�d�| j��}W n tk
rl td� dS X ||fS )Ng�!��?� z:please use [YY]YY-MM-DD[ HH:MM] format for --from and --to)NN) ZperiodZ timestampr Z
parse_date�joinZffrom�to�
ValueError�print)�opts�start�end� r �J/opt/alt/python37/lib/python3.7/site-packages/lvestats/snapshots/reader.py�_calculate_period s
r c
C s" t � }|�|�}|js0|js0|�� td� dS yt�| �}W n, tjk
rj } zt|� dS d }~X Y nX | � dt
�}|jr�t�|j|||�}|d kr�td|j|f � dS n|j}t
|�\}} |d kr�| d kr�dS t||| |||j|j�}
|j�r |
�� n|j�r|
�|j� n|
�� d S )Nz/One of -u --user or -i --id should be specified� � server_idzUser %s@%s not found)r �
parse_args�id�user�
print_helpr r Zmake_db_engineZMakeDbException�get�DEFAULT_SERVER_IDr Zusername_to_uidr �LVEReadSnaphot�outputZjson�list�statsZunit�run)�configZargv_�parserr �engine�er �uidr r Zlve_read_snapshotr r r �snapshot_reader_main/ sD
r+ c C s t | tj�rt�t�| ��S | S )z�
Convert local datetime to unix timestamp, or just passes
unix timestamp as output if specified.
:param o:
:return:
)�
isinstance�datetimer Zgm_datetime_to_unixtimestampZlocal_to_gm)�or r r �_try_convert_to_timestamp\ s r/ c @ s� e Zd Zdd� Zdd� Zdd� Zedejfdd ��Z ed
d� �Z
dd
� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zedd� �Zdd� Zd S )!r! c C sL || _ || _|| _|| _t|�| _t|�| _|| _dddddddd�| _d S )
z�
:param start: datetime.datetime | int (unix timestamp)
:param end: datetime.datetime | int (unix timestamp)
:param uid:
:param server_id:
:param output_file: filename
:param do_json: boolean
�CPUzVirtual memoryZEPzPhysical memoryZNPROCZIOZIOPS)Z cpu_faultZ mem_faultZ mep_faultZmemphy_faultZnproc_faultZio_faultZ
iops_faultN) r( �do_json�output_filer* r/ r r r �fault_names)�selfr( r r r* r r2 r1 r r r �__init__j s
zLVEReadSnaphot.__init__c
C sR |� t��tj| jktj| jkttj�| j| j �tj
�| j| j ����tj��� S )N)
Zqueryr
�filterr* r r �incident_start_timeZbetweenr r �incident_end_timeZorder_by�all)r4 �sessionr r r �
get_incidents� s
zLVEReadSnaphot.get_incidentsc
C sJ g }x@| � |�D ]2}|�|jt|j|jp*d�d|j| �|�d�� qW |S )Nr r )�fromr � incidents� snapshots�duration)r; �appendr7 �max� dump_timer8 Zsnapshot_count�get_duration)r4 r: �result�ir r r �stats_by_incident� s z LVEReadSnaphot.stats_by_incidentr c C s, t | j|�}tt | j| jpd�|�}|| S )Nr )rA r7 �minrB r8 )rE Zfrom_Zto_r r r rC � s zLVEReadSnaphot.get_durationc C s� d}d}xZ|t | �k rb| | }|j|k r2|d7 }q
|j|kr>P |d7 }|d7 }|t�|||�7 }q
W |dkrvdd|fS |||d fS d S )Nr r )�lenrB r7 r! rC )r= �pos�from_ts�to_ts�countr? rE r r r �get_incident_count� s
z!LVEReadSnaphot.get_incident_countc C s� | � |�}tt| jd���� }g }| j}d}x�|| jk r�t|| | j�}| �||||�\} }
}| dkrl|}q.t� |||�}t
|�dkr�|�d� |�||| t
|�|
d�� |}q.W |S )N)r* r )r<