Ë
    uÀYfO  ã                   óJ   — d dl mZ d dl mZ d dlmZ d dlmZ  G d„ de«      Zy)é    )ÚDict)ÚOptional)Úagent)Úget_dogstatsd_clientc                   ó@   — e Zd ZdZd	d„Z G d„ de«      Zd„ Zd„ Zd„ Z	y)
ÚMetricsaã  Higher-level DogStatsD interface.

    This class provides automatic handling of namespaces for metrics, with the
    possibility of enabling and disabling them at runtime.

    Example::
        The following example shows how to create the counter metric
        'datadog.tracer.writer.success' and how to increment it. Note that
        metrics are emitted only while the metrics object is enabled.

            >>> tracer_metrics = Metrics(namespace='datadog.tracer')
            >>> tracer_metrics.enable()
            >>> writer_meter = dd_metrics.get_meter('writer')
            >>> writer_meter.increment('success')
            >>> tracer_metrics.disable()
            >>> writer_meter.increment('success')  # won't be emitted
    Nc                 ó~   — || _         || _        d| _        t        |xs t	        j
                  «       |¬«      | _        y )NF)Ú	namespace)Údogstats_urlr
   Úenabledr   r   Úget_stats_urlÚ_client)Úselfr   r
   s      úX/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/internal/metrics.pyÚ__init__zMetrics.__init__   s5   € à(ˆÔØ"ˆŒØˆŒä+¨LÒ,Q¼E×<OÑ<OÓ<QÐ]fÔgˆó    c                   ó2   — e Zd Zd„ Zdd„Zdd„Zdd„Zdd„Zy)úMetrics.Meterc                 ó    — || _         || _        y ©N)ÚmetricsÚname)r   r   r   s      r   r   zMetrics.Meter.__init__$   s   € à"ˆDŒLØˆDIr   Nc           
      ó(  — | j                   j                  sy | j                   j                  j                  dj	                  | j
                  |f«      ||r2|j                  «       D cg c]  }dj	                  |«      ‘Œ c}«       y d «       y c c}w ©Nú.ú:)r   r   r   Ú	incrementÚjoinr   Úitems©r   r   ÚvalueÚtagsÚ_s        r   r   zMetrics.Meter.increment)   ój   € à—<‘<×'Ò'ØàL‰L× Ñ ×*Ñ*Ø—‘˜$Ÿ)™) TÐ*Ó+¨UÑ[_È$Ï*É*Ë,Ö4WÀQ°S·X±X¸aµ[Ò4WõØeiõùÚ4Wó   Á(Bc           
      ó(  — | j                   j                  sy | j                   j                  j                  dj	                  | j
                  |f«      ||r2|j                  «       D cg c]  }dj	                  |«      ‘Œ c}«       y d «       y c c}w r   )r   r   r   Úgauger   r   r   r    s        r   r'   zMetrics.Meter.gauge2   sj   € à—<‘<×'Ò'ØàL‰L× Ñ ×&Ñ&Ø—‘˜$Ÿ)™) TÐ*Ó+¨UÑ[_È$Ï*É*Ë,Ö4WÀQ°S·X±X¸aµ[Ò4WõØeiõùÚ4Wr%   c           
      ó(  — | j                   j                  sy | j                   j                  j                  dj	                  | j
                  |f«      ||r2|j                  «       D cg c]  }dj	                  |«      ‘Œ c}«       y d «       y c c}w r   )r   r   r   Ú	histogramr   r   r   r    s        r   r)   zMetrics.Meter.histogram;   r$   r%   c           
      ó(  — | j                   j                  sy | j                   j                  j                  dj	                  | j
                  |f«      ||r2|j                  «       D cg c]  }dj	                  |«      ‘Œ c}«       y d «       y c c}w r   )r   r   r   Údistributionr   r   r   r    s        r   r+   zMetrics.Meter.distributionD   sj   € à—<‘<×'Ò'ØàL‰L× Ñ ×-Ñ-Ø—‘˜$Ÿ)™) TÐ*Ó+¨UÑ[_È$Ï*É*Ë,Ö4WÀQ°S·X±X¸aµ[Ò4WõØeiõùÚ4Wr%   )g      ð?N)Ú__name__Ú
__module__Ú__qualname__r   r   r'   r)   r+   © r   r   ÚMeterr   #   s   „ ò	ó
	ó	ó	ô	r   r0   c                 ó   — d| _         y )NT©r   ©r   s    r   ÚenablezMetrics.enableM   s	   € àˆr   c                 ó   — d| _         y )NFr2   r3   s    r   ÚdisablezMetrics.disableQ   s	   € àˆr   c                 ó&   — | j                  | |«      S r   )r0   )r   r   s     r   Ú	get_meterzMetrics.get_meterU   s   € àz‰z˜$ Ó%Ð%r   )NN)
r,   r-   r.   Ú__doc__r   Úobjectr0   r4   r6   r8   r/   r   r   r   r      s)   „ ñó$hô(ô (òTòó&r   r   N)	Útypingr   r   Úddtrace.internalr   Úddtrace.internal.dogstatsdr   r:   r   r/   r   r   ú<module>r>      s   ðÝ Ý å "Ý ;ôO&ˆfõ O&r   