
    F-i                     $    d dl  d dlZddZd Zy)    )*Nc                 T   t         j                  syt        |dz        }d|  d| dt         j                   }t        j
                  j                  j                  d||       d|  d| dt         j                   d}t        j
                  j                  j                  d|d       y)u/  
    Считает время выполнения API-методов
    В additional_label можно записывать имя доп.метки (например, какое поле обновляли у заначи или в каком формате запросили выгрузку)
    N  api_time_time______EVA_METRICS#count   )configMETRICS_API_STATS_COLLECTintHOSTNAME_FQDNAPPREDIS_DBredishincrby)methoddurationadditional_labelmsecskeys        ./cmf/util/metrics.pywrite_api_timer      s    
 ++EVHC(8'9V=Q=Q<R
SCLL}c59VHC(8'9V=Q=Q<RRX
YCLL}c15    c                  l   t         j                  syt        j                  } d}t        j                  j
                  j                  dd      D ci c]  \  }}|j                         t        |      ! }}}|dz  }|dz  }|j                         D cg c](  }|j                  d      s|j                  d      r'|* c}D ]r  }|j                  d	      \  }}}}	||   }
||= |dz   |vrt        j                  d
|        A||dz      }||dz   = |d| d|	 d| d|
 d	z  }|d| d|	 d| d| d	z  }t d| vs| d   t        j                         dz
  k  r8t        j                         | d<   t         j"                  j%                         | d<   |dz  }|dz  }|d| d    dz  }|S c c}}w c c}w )N r   r   )countz<# HELP eva_api_durations Number and dutrations of API calls
z!# TYPE eva_api_durations summary
r   r	   r   uR   Metrics. Error. Нет записи с количеством API вызовов: z'eva_api_durations_mseconds_sum{method="z",hostname="z
",addlbl="z"} 
z)eva_api_durations_mseconds_count{method="relation_cache_countrelation_cache_count_timei  u]   # HELP eva_relation_cache_records_total Количество записей в RelationCache
z.# TYPE eva_relation_cache_records_total gauge
z!eva_relation_cache_records_total )r   r   r   metrics_cacher   r   
hscan_iterdecoder   keys
startswithendswithsplitgdebugtimemodelsRelationCacher   )	app_cachereskvall_datainamer   r   hostnametotal_durationtotal_counts               r   get_metrics_textr7      s.   ++!!I
C-0\\-?-?-J-J=`d-J-efca
3q6!fHf JJC//C"--/kAQ\\:L-MVWV`V`aiVjak 
J34775>0f&!!QKX:X%GGhijhklmqz*QxZ 9&hZWabrassw  yG  xH  HJ  K  	K;F8<PXzYcdtcuuy  {F  zG  GI  J  	J
J Y.)<W2X[_[d[d[fim[m2m15	-.,2,@,@,F,F,H	()kkC<<C.y9O/P.QQSTTCJ9 g
 ls   $F+F1,F1>F1)N)cmf.includer*   r   r7    r   r   <module>r:      s     6!r   