o
    tBh!                     @   s  d dl mZ d dlmZmZmZmZmZmZ d dl	Z
d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlm Z  ee!Z"dZ#G dd dZ$G dd dZ%G dd de$eZG dd de$eZG dd de%eZG dd de%eZG dd de$eZG dd de$eZ&G d d! d!e%eZG d"d# d#eZ'G d$d% d%eZ(G d&d' d'eZ)G d(d) d)eZ*G d*d+ d+eZ+G d,d- d-e&ZG d.d/ d/eZ,dS )0    )	getLogger)Dict	GeneratorIterableListOptionalUnionN)	CallbackT)Counter)	Histogram)ObservableCounter)ObservableGauge)ObservableUpDownCounter)UpDownCounter)_Gauge)CallbackOptions)Measurement)InstrumentationScopez@Expected ASCII string of maximum length 63 characters but got {}c                       s8   e Zd Z		d
dededddedef
 fdd	Z  ZS )_Synchronous nameinstrumentation_scopemeasurement_consumer-opentelemetry.sdk.metrics.MeasurementConsumerunitdescriptionc                    s   |  |||}|d d u rtt||d d u r!tt||d }|d }|d }| | _|| _|| _|| _|| _	t
 j|||d d S )Nr   r   r   r   r   )_check_name_unit_description	Exception_ERROR_MESSAGEformatlowerr   r   r   r   _measurement_consumersuper__init__)selfr   r   r   r   r   result	__class__ /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/opentelemetry/sdk/metrics/_internal/instrument.pyr$   -   s   	
z_Synchronous.__init__)r   r   )__name__
__module____qualname__strr   r$   __classcell__r)   r)   r'   r*   r   ,   s    r   c                       s\   e Zd Z			ddededddeee  ded	ef fd
dZde	dee
 fddZ  ZS )_AsynchronousNr   r   r   r   r   	callbacksr   r   c           
         s   |  |||}|d d u rtt||d d u r!tt||d }|d }|d }| | _|| _|| _|| _|| _	t
 j||||d g | _|d urw|D ]'}t|trpt| |fdtdtt fdd}	| j|	 qQ| j| qQd S d S )	Nr   r   r   r   optionsreturnc                 S   s$   z| | W S  ty   g  Y S w N)sendStopIteration)r2   callbackr)   r)   r*   innerw   s
   z%_Asynchronous.__init__.<locals>.inner)r   r   r   r    r!   r   r   r   r   r"   r#   r$   
_callbacks
isinstancer   nextr   r   r   append)
r%   r   r   r   r1   r   r   r&   r7   r8   r'   r)   r*   r$   M   s:   



	z_Asynchronous.__init__callback_optionsr3   c              	   c   sX    | j D ]%}z||D ]}t|j| |jdV  qW q ty)   td| j Y qw d S )N)
instrument
attributesz"Callback failed for instrument %s.)r9   r   valuer?   r   _logger	exceptionr   )r%   r=   r7   api_measurementr)   r)   r*   r7      s    

z_Asynchronous.callback)Nr   r   )r+   r,   r-   r.   r   r   r   r	   r$   r   r   r7   r/   r)   r)   r'   r*   r0   L   s,    
7r0   c                       B   e Zd Z fddZ	ddeeef deeef fddZ	  Z
S )	r
   c                       | t u rtdt | S )Nz)Counter must be instantiated via a meter.)r
   	TypeErrorr#   __new__clsargskwargsr'   r)   r*   rG         zCounter.__new__Namountr?   c                 C   2   |dk rt d| j d S | jt|| | d S )Nr   z.Add amount must be non-negative on Counter %s.rA   warningr   r"   consume_measurementr   r%   rM   r?   r)   r)   r*   add   s   
zCounter.addr4   r+   r,   r-   rG   r   intfloatr   r.   rS   r/   r)   r)   r'   r*   r
          

r
   c                       rD   )	r   c                    rE   )Nz/UpDownCounter must be instantiated via a meter.)r   rF   r#   rG   rH   r'   r)   r*   rG      rL   zUpDownCounter.__new__NrM   r?   c                 C      | j t|| | d S r4   r"   rQ   r   rR   r)   r)   r*   rS         
zUpDownCounter.addr4   rT   r)   r)   r'   r*   r      rW   r   c                          e Zd Z fddZ  ZS )r   c                    rE   )Nz3ObservableCounter must be instantiated via a meter.)r   rF   r#   rG   rH   r'   r)   r*   rG      
   zObservableCounter.__new__r+   r,   r-   rG   r/   r)   r)   r'   r*   r          r   c                       r[   )r   c                    rE   )Nz9ObservableUpDownCounter must be instantiated via a meter.)r   rF   r#   rG   rH   r'   r)   r*   rG      r\   zObservableUpDownCounter.__new__r]   r)   r)   r'   r*   r      r^   r   c                       rD   )	r   c                    rE   )Nz+Histogram must be instantiated via a meter.)r   rF   r#   rG   rH   r'   r)   r*   rG      rL   zHistogram.__new__NrM   r?   c                 C   rN   )Nr   z3Record amount must be non-negative on Histogram %s.rO   rR   r)   r)   r*   record   s   
zHistogram.recordr4   )r+   r,   r-   rG   r   rU   rV   r   r.   r_   r/   r)   r)   r'   r*   r      rW   r   c                       rD   )	Gaugec                    rE   )Nz'Gauge must be instantiated via a meter.)r`   rF   r#   rG   rH   r'   r)   r*   rG      rL   zGauge.__new__NrM   r?   c                 C   rX   r4   rY   rR   r)   r)   r*   set   rZ   z	Gauge.setr4   )r+   r,   r-   rG   r   rU   rV   r   r.   ra   r/   r)   r)   r'   r*   r`      rW   r`   c                       r[   )r   c                    rE   )Nz1ObservableGauge must be instantiated via a meter.)r   rF   r#   rG   rH   r'   r)   r*   rG      r\   zObservableGauge.__new__r]   r)   r)   r'   r*   r      r^   r   c                   @      e Zd ZdS )_CounterNr+   r,   r-   r)   r)   r)   r*   rc          rc   c                   @   rb   )_UpDownCounterNrd   r)   r)   r)   r*   rf      re   rf   c                   @   rb   )_ObservableCounterNrd   r)   r)   r)   r*   rg      re   rg   c                   @   rb   )_ObservableUpDownCounterNrd   r)   r)   r)   r*   rh      re   rh   c                   @   rb   )
_HistogramNrd   r)   r)   r)   r*   ri     re   ri   c                   @   rb   )r   Nrd   r)   r)   r)   r*   r     re   r   c                   @   rb   )_ObservableGaugeNrd   r)   r)   r)   r*   rj     re   rj   )-loggingr   typingr   r   r   r   r   r   opentelemetry.sdk.metricsopentelemetryopentelemetry.metricsr	   r
   
APICounterr   APIHistogramr   APIObservableCounterr   APIObservableGauger   APIObservableUpDownCounterr   APIUpDownCounterr   APIGauge*opentelemetry.metrics._internal.instrumentr   /opentelemetry.sdk.metrics._internal.measurementr   &opentelemetry.sdk.util.instrumentationr   r+   rA   r   r   r0   r`   rc   rf   rg   rh   ri   rj   r)   r)   r)   r*   <module>   sB     I		
