mirror of
https://github.com/tiennm99/litellm.git
synced 2026-08-05 10:24:03 +00:00
Merge remote-tracking branch 'origin' into litellm_key_alias_spend_usage_report
This commit is contained in:
@@ -144,6 +144,7 @@ class OpenTelemetry(CustomLogger):
|
||||
self.OTEL_EXPORTER = self.config.exporter
|
||||
self.OTEL_ENDPOINT = self.config.endpoint
|
||||
self.OTEL_HEADERS = self.config.headers
|
||||
self._tracer_provider_cache: Dict[str, Any] = {}
|
||||
self._init_tracing(tracer_provider)
|
||||
|
||||
_debug_otel = str(os.getenv("DEBUG_OTEL", "False")).lower()
|
||||
@@ -615,12 +616,20 @@ class OpenTelemetry(CustomLogger):
|
||||
"""Create a temporary tracer with dynamic headers for this request only."""
|
||||
from opentelemetry.sdk.trace import TracerProvider
|
||||
|
||||
# Prevents thread exhaustion by reusing providers for the same credential sets (e.g. per-team keys)
|
||||
cache_key = str(sorted(dynamic_headers.items()))
|
||||
if cache_key in self._tracer_provider_cache:
|
||||
return self._tracer_provider_cache[cache_key].get_tracer(LITELLM_TRACER_NAME)
|
||||
|
||||
# Create a temporary tracer provider with dynamic headers
|
||||
temp_provider = TracerProvider(resource=self._get_litellm_resource(self.config))
|
||||
temp_provider.add_span_processor(
|
||||
self._get_span_processor(dynamic_headers=dynamic_headers)
|
||||
)
|
||||
|
||||
# Store in cache for reuse
|
||||
self._tracer_provider_cache[cache_key] = temp_provider
|
||||
|
||||
return temp_provider.get_tracer(LITELLM_TRACER_NAME)
|
||||
|
||||
def construct_dynamic_otel_headers(
|
||||
|
||||
@@ -849,7 +849,7 @@ def get_vertex_model_id_from_url(url: str) -> Optional[str]:
|
||||
|
||||
`https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent`
|
||||
"""
|
||||
match = re.search(r"/models/([^/:]+)", url)
|
||||
match = re.search(r"/models/([^:]+)", url)
|
||||
return match.group(1) if match else None
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-cf5ca766ac8f493f.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
||||
@@ -1 +0,0 @@
|
||||
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1979],{15143:function(e,n,r){Promise.resolve().then(r.bind(r,37492))},25512:function(e,n,r){"use strict";r.d(n,{P:function(){return t.Z},Q:function(){return u.Z}});var t=r(27281),u=r(57365)},37492:function(e,n,r){"use strict";r.r(n);var t=r(57437),u=r(66600),l=r(39760);n.default=()=>{let{token:e,accessToken:n,userRole:r,userId:o,premiumUser:i}=(0,l.Z)();return(0,t.jsx)(u.Z,{accessToken:n,token:e,userRole:r,userID:o,premiumUser:i})}},90246:function(e,n,r){"use strict";function t(e){let n=[e];return{all:n,lists:()=>[...n,"list"],list:e=>[...n,"list",{params:e}],details:()=>[...n,"detail"],detail:e=>[...n,"detail",e]}}r.d(n,{n:function(){return t}})},76191:function(e,n,r){"use strict";r.d(n,{p:function(){return o}});var t=r(19250),u=r(11713);let l=(0,r(90246).n)("uiConfig"),o=()=>(0,u.a)({queryKey:l.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})},39760:function(e,n,r){"use strict";var t=r(19250),u=r(3914),l=r(97060),o=r(14474),i=r(99376),a=r(2265),s=r(76191);n.Z=()=>{var e,n,r,c,d,f;let m=(0,i.useRouter)(),{data:p,isLoading:_}=(0,s.p)(),v="undefined"!=typeof document?(0,u.e)("token"):null;(0,a.useEffect)(()=>{(!v||v&&(0,l.v)(v))&&(v&&(0,u.b)(),m.replace("".concat((0,t.getProxyBaseUrl)(),"/ui/login")))},[v,m]),(0,a.useEffect)(()=>{!_&&(null==p?void 0:p.admin_ui_disabled)&&m.replace("".concat((0,t.getProxyBaseUrl)(),"/ui/login"))},[m,_,p]);let g=(0,a.useMemo)(()=>{if(!v)return null;try{return(0,o.o)(v)}catch(e){return(0,u.b)(),m.replace("".concat((0,t.getProxyBaseUrl)(),"/ui/login")),null}},[v,m]);return{token:v,accessToken:null!==(e=null==g?void 0:g.key)&&void 0!==e?e:null,userId:null!==(n=null==g?void 0:g.user_id)&&void 0!==n?n:null,userEmail:null!==(r=null==g?void 0:g.user_email)&&void 0!==r?r:null,userRole:function(e){if(!e)return"Undefined Role";switch(e.toLowerCase()){case"app_owner":case"demo_app_owner":return"App Owner";case"app_admin":case"proxy_admin":return"Admin";case"proxy_admin_viewer":return"Admin Viewer";case"org_admin":return"Org Admin";case"internal_user":return"Internal User";case"internal_user_viewer":case"internal_viewer":return"Internal Viewer";case"app_user":return"App User";default:return"Unknown Role"}}(null!==(c=null==g?void 0:g.user_role)&&void 0!==c?c:null),premiumUser:null!==(d=null==g?void 0:g.premium_user)&&void 0!==d?d:null,disabledPersonalKeyCreation:null!==(f=null==g?void 0:g.disabled_non_admin_personal_key_creation)&&void 0!==f?f:null,showSSOBanner:(null==g?void 0:g.login_method)==="username_password"}}},10703:function(e,n,r){"use strict";r.d(n,{p:function(){return u}});var t=r(19250);let u=async e=>{try{let n=await (0,t.modelHubCall)(e);if(console.log("model_info:",n),(null==n?void 0:n.data.length)>0){let e=n.data.map(e=>({model_group:e.model_group,mode:null==e?void 0:e.mode}));return e.sort((e,n)=>e.model_group.localeCompare(n.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}}},24199:function(e,n,r){"use strict";r.d(n,{Z:function(){return l}});var t=r(57437);r(2265);var u=r(30150),l=e=>{let{step:n=.01,style:r={width:"100%"},placeholder:l="Enter a numerical value",min:o,max:i,onChange:a,...s}=e;return(0,t.jsx)(u.Z,{onWheel:e=>e.currentTarget.blur(),step:n,style:r,placeholder:l,min:o,max:i,onChange:a,...s})}},97060:function(e,n,r){"use strict";r.d(n,{v:function(){return u}});var t=r(14474);function u(e){try{let n=(0,t.o)(e);if(n&&"number"==typeof n.exp)return 1e3*n.exp<=Date.now();return!1}catch(e){return!0}}}},function(e){e.O(0,[1047,9028,9409,1713,4865,2926,6736,1108,5733,4817,8049,6600,2971,2117,1744],function(){return e(e.s=15143)}),_N_E=e.O()}]);
|
||||
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6061],{38997:function(n,t,u){Promise.resolve().then(u.bind(u,21933))},9513:function(n,t,u){"use strict";u.d(t,{Ct:function(){return r.Z},JO:function(){return c.Z},RM:function(){return o.Z},SC:function(){return a.Z},iA:function(){return i.Z},pj:function(){return f.Z},ss:function(){return s.Z},xs:function(){return Z.Z},xv:function(){return l.Z},zx:function(){return e.Z}});var r=u(41649),e=u(78489),c=u(47323),i=u(21626),o=u(97214),f=u(28241),s=u(58834),Z=u(69552),a=u(71876),l=u(84264)},45822:function(n,t,u){"use strict";u.d(t,{JO:function(){return i.Z},JX:function(){return e.Z},rj:function(){return c.Z},xv:function(){return o.Z},zx:function(){return r.Z}});var r=u(78489),e=u(49804),c=u(67101),i=u(47323),o=u(84264)},21933:function(n,t,u){"use strict";u.r(t);var r=u(57437),e=u(39145),c=u(39760);t.default=()=>{let{accessToken:n,userId:t,userRole:u}=(0,c.Z)();return(0,r.jsx)(e.Z,{accessToken:n,userID:t,userRole:u})}}},function(n){n.O(0,[1047,9028,9409,1713,4865,337,2652,2926,2409,1850,5869,353,3709,7971,6894,7138,3178,5319,6736,8582,6609,4105,3634,8049,5144,7914,1098,9145,2971,2117,1744],function(){return n(n.s=38997)}),_N_E=n.O()}]);
|
||||
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user