B
    .l\4  ã               @   s,   d dl mZ ddlmZ edƒZdd„ ZdS )é    )Úunicode_literalsé   )ÚfloatToGoStringz:application/openmetrics-text; version=0.0.1; charset=utf-8c       
      C   sî  g }xÌ|   ¡ D ]¾}y||j}| d ||j dd¡ dd¡ dd¡¡¡ | d ||j¡¡ |jrz| d	 ||j¡¡ x|jD ]}|j	r¶d
 d 
dd„ t|j	 ¡ ƒD ƒ¡¡}nd}|jrN|jdksØ|j d¡sètd |j¡ƒ‚d
 d 
dd„ t|jj	 ¡ ƒD ƒ¡¡}|jjdk	r8d |t|jjƒ|jj¡}nd |t|jjƒ¡}nd}d}|jdk	rnd |j¡}| d |j|t|jƒ||¡¡ q„W W q tk
rÎ }	 z|	jp²d|f |	_‚ W dd}	~	X Y qX qW | d¡ d 
|¡ d¡S )zHReturns the metrics from the registry in latest text format as a string.z# HELP {0} {1}
ú\z\\Ú
z\nú"z\"z# TYPE {0} {1}
z# UNIT {0} {1}
z{{{0}}}ú,c          	   S   s4   g | ],\}}d   || dd¡ dd¡ dd¡¡‘qS )z	{0}="{1}"r   z\\r   z\nr   z\")ÚformatÚreplace)Ú.0ÚkÚv© r   úGlib/python3.7/site-packages/prometheus_client/openmetrics/exposition.pyú
<listcomp>   s   z#generate_latest.<locals>.<listcomp>Ú )Z	histogramZgaugehistogramZ_bucketz7Metric {0} has exemplars, but is not a histogram bucketc          	   S   s4   g | ],\}}d   || dd¡ dd¡ dd¡¡‘qS )z	{0}="{1}"r   z\\r   z\nr   z\")r	   r
   )r   r   r   r   r   r   r   "   s   Nz # {0} {1} {2}z
 # {0} {1}z {0}z{0}{1} {2}{3}{4}
)r   z# EOF
zutf-8)ZcollectÚnameÚappendr	   Zdocumentationr
   ÚtypeZunitZsamplesÚlabelsÚjoinÚsortedÚitemsZexemplarÚendswithÚ
ValueErrorÚ	timestampr   ÚvalueÚ	ExceptionÚargsÚencode)
ÚregistryÚoutputZmetricZmnameÚsZlabelstrr   Zexemplarstrr   Z	exceptionr   r   r   Úgenerate_latest   sX    $

r#   N)Z
__future__r   Zutilsr   ÚstrZCONTENT_TYPE_LATESTr#   r   r   r   r   Ú<module>   s   