o
    iV                     @   sX   d dl mZ d dlZd dlZd dlmZ dZG dd deZG dd ded	Z	dgZ
dS )
    )OptionalN)telemetry_writerDD_RUNTIME_METRICS_ENABLEDc                   @   s   e Zd Zedd ZdS )_RuntimeMetricsStatusc                 C   s   t jjjjjS )zRuntime metrics enabled status.)ddtraceinternalruntimeruntime_metricsRuntimeWorkerenabled)_ r   L/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/runtime/__init__.py_enabled   s   z_RuntimeMetricsStatus._enabledN)__name__
__module____qualname__propertyr   r   r   r   r   r      s    r   c                   @   sJ   e Zd ZdZe		d
deejj dee	 ddfddZ
eddd	ZdS )RuntimeMetricsa@  
    Runtime metrics service API.

    This is normally started automatically by ``ddtrace-run`` when the
    ``DD_RUNTIME_METRICS_ENABLED`` variable is set.

    To start the service manually, invoke the ``enable`` static method::

        from ddtrace.runtime import RuntimeMetrics
        RuntimeMetrics.enable()
    Ntracerdogstatsd_urlreturnc                 C   s*   t jtddd tjjjjj| |d dS )z
        If the service has already been activated before, this method does
        nothing. Use ``disable`` to turn off the runtime metric collection
        service.

        :param tracer: The tracer instance to correlate with.
        Tcodeoriginr   r   N)	r   add_configuration TELEMETRY_RUNTIMEMETRICS_ENABLEDr   r   r   r	   r
   enabler   r   r   r   r       s   zRuntimeMetrics.enablec                   C   s$   t jtddd tjjjj  dS )z
        Disable the runtime metrics collection service.

        Once disabled, runtime metrics can be re-enabled by calling ``enable``
        again.
        Fr   r   N)	r   r   r   r   r   r   r	   r
   disabler   r   r   r   r   /   s   zRuntimeMetrics.disable)NN)r   N)r   r   r   __doc__staticmethodr   r   traceTracerstrr   r   r   r   r   r   r      s    
r   )	metaclass)typingr   r   (ddtrace.internal.runtime.runtime_metricsddtrace.internal.telemetryr   r   typer   r   __all__r   r   r   r   <module>   s    
(