Ë
    tPêj"  ã                   ó  — U d 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
mZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ  edddœ«      Zeeeef      ed<   dZeed<    G d„ de
«      Zddœdedz  defd„Zdedeeef   fd„Zdedefd„Zy)uH   New Relic preset â€” OTLP/HTTP exporter to New Relic + GenAI vocabulary.é    )ÚMapping)ÚMappingProxyType)ÚFinal)ÚField)ÚBaseSettingsÚSettingsConfigDict)Úverbose_logger)ÚExporterOwnerÚExporterSpecÚOpenTelemetryV2Config)Úensure_mappers)ÚStandardCallbackDynamicParamszhttps://otlp.nr-data.netzhttps://otlp.eu01.nr-data.net)ÚusÚeuÚ NEWRELIC_OTLP_ENDPOINT_BY_REGIONr   Ú_DEFAULT_REGIONc                   óŽ   — e Zd ZU  edd¬«      Z edd¬«      Zedz  ed<    edd¬«      Z	edz  ed	<    edd
¬«      Z
edz  ed<   y)Ú_NewRelicSettingsFÚignore)Úcase_sensitiveÚextraNÚNEW_RELIC_LICENSE_KEY)ÚdefaultÚvalidation_aliasÚlicense_keyÚNEW_RELIC_REGIONÚregionÚ.NEW_RELIC_AI_MONITORING_RECORD_CONTENT_ENABLEDÚrecord_content)Ú__name__Ú
__module__Ú__qualname__r   Úmodel_configr   r   ÚstrÚ__annotations__r   r   Úbool© ó    úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/otel/presets/newrelic.pyr   r       sR   … Ù%°UÀ(ÔK€Lñ $¨DÐCZÔ[€K��t‘Ó[Ù tÐ>PÔQ€FˆC�$‰JÓQÙ"'°ÐGwÔ"x€N�D˜4‘KÔxr(   r   N)Úconfig_overridesr*   Úreturnc           
      óÜ  — t        «       }| xs
 t        «       }t        j                  |j                  xs t
        j                  «       t        t
           «      }|j                  g |j                  ¢t        d||j                  rd|j                  › �nd t        j                  d¬«      ‘t        |j                  d«      dœ|j                  �d|j                  rdnd	i¥¬
«      S i ¥¬
«      S )NÚ	otlp_httpzapi-key=T)ÚkindÚendpointÚheadersÚownerÚrequires_headersÚgenai)Ú	exportersÚmapper_namesÚcapture_message_contentÚ	span_onlyÚ
no_content)Úupdate)r   r   r   Úgetr   r   ÚlowerÚ
model_copyr4   r   r   r
   ÚNEWRELICr   r5   r   )r*   ÚsettingsÚbaser/   s       r)   Únewrelic_presetr@   ,   s  € ô (Ó)€HØ"Ò=Ô&;Ó&=€DÜ6×:Ñ:Ø	�‰Ò	+œO×2Ñ2Ó4Ô6VÔWfÑ6gó€Hð �?‰?ð	Ø—‘ð	äØ$Ø%ØBJ×BVÒBV˜x¨×(<Ñ(<Ð'=Ñ>Ð\`Ü'×0Ñ0Ø%)ôð	ô +¨4×+<Ñ+<¸gÓFñ
ð ×*Ñ*Ð6ð +¸H×<SÒ<S©[ÐYeÐgð
ð ó ð ð" ð!
ð ó ð r(   Úparamsc                 óh   — | j                  d«      }d|ffD ��ci c]  \  }}|sŒ	||“Œ c}}S c c}}w )z@Per-request New Relic OTLP headers from team/key dynamic params.Únewrelic_api_keyzapi-key)r:   )rA   Úapi_keyÚheaderÚvalues       r)   Únewrelic_dynamic_headersrG   L   s7   € à—Z‘ZÐ 2Ó3€GØ1:¸GÐ0DÐ/F×P™m˜f eÊ%ˆF�E‰MÓPÐPùÓPs   š
.¥.c           	      óþ   — | j                  d«      }t        t           }|s|S t        j                  |j                  «       «      }|€5t	        j
                  d|dj                  t        t        «      «      «       |S |S )a  Per-request OTLP endpoint for the team's ``newrelic_region``.

    Always the team's own region endpoint, defaulting to US when the team left
    the region unset. It never falls through to the preset's endpoint, which
    follows the operator's ``NEW_RELIC_REGION`` env; a team that saved only its
    ingest key must not inherit the operator's region and have its US-account
    spans rejected by an EU-configured default (or vice versa). An unknown
    region likewise resolves to the documented US default rather than a guess.
    Únewrelic_regionz^New Relic: unknown newrelic_region %r; supported regions: %s. Using the default (US) endpoint.z, )r:   r   r   r;   r	   ÚwarningÚjoinÚsorted)rA   r   Údefault_endpointr/   s       r)   Únewrelic_dynamic_endpointrN   R   sv   € ð —J‘JÐ0Ó1€FÜ>¼ÑOÐÙØÐÜ6×:Ñ:¸6¿<¹<»>ÓJ€HØÐÜ×ÑØlØØ�I‰I”fÔ=Ó>Ó?ô	
ð
  ÐØ€Or(   )Ú__doc__Úcollections.abcr   Útypesr   Útypingr   Úpydanticr   Úpydantic_settingsr   r   Úlitellm._loggingr	   Ú&litellm.integrations.otel.model.configr
   r   r   Ú'litellm.integrations.otel.presets.utilsr   Úlitellm.types.utilsr   r   r$   r%   r   r   r@   ÚdictrG   rN   r'   r(   r)   ú<module>rZ      sË   ðÚ Nå #Ý "Ý å ß >å +÷ñ õ
 CÝ =ñ
 >Nà(Ø-ñó>Ð   %¨°°S°Ñ(9Ñ":ó ð €�Ó ô	y˜ô 	yð 6:òà+¨dÑ2ðð óð@QÐ%Bð QÀtÈCÐQTÈHÁ~ó QðÐ&Cð Èô r(   