o
    ci$B                  
   @   s  U d dl Z d dlmZ dZdZdZdZe jddZ	e
e jd	d
ZdZe
e jddZdZe
dZee ddZed ksHJ de ddZe
e jddZe
e jddZg dZdededefddZee dd eZee d!d eZd"Zd#Zd$Ze
e d%d&Zed ksJ de d'e
e d(d)Z e d ksJ de  d*d+Z!d,Z"d-Z#d.Z$d/Z%d,Z&ee jd0d1pd-Z'ee jd2d1pd-Z(ee jd3d4pd/Z)d5Z*ee jd6d7pd.Z+d/Z,d5Z-d8Z.ee/d9< dZ0ee/d:< ee jd;d1Z1ee jd<d=p	dZ2d>Z3d?Z4dZ5d@Z6e jdAdBZ7e jdCdDkZ8e jdEdDdDkZ9dFZ:dGZ;dHZ<dIZ=dJZ>dKZ?dLZ@dMZAdNZBdOZCe:dPe<dQeAdReBdSeCdTiZDh dUZEe
e jdVd ZFee jdWd plee jdXd pldZGdYZHdZZId[ZJe jd\dDdDkZKe jd]dDdDkZLe jd^dZMe jd_dZNd`ZOd`ZPee jdadDZQe jdbd=dDkZRe jdcd=dDkZSd&ZTddZUe jded=dDkZVee jdfdZWee jdgdhZXee jdid?ZYdjZZe jdkdDdDkZ[ee jdld?Z\e jdmdDdDkZ]e
e jdndoZ^dpe^fdqe^fgZ_d-Z`e jdrd=dDkZae jdsd=dDkZbdtedee fdudvZcece jdwd Zdee e/dw< e jdxd=dDkZee jdyd=dDkZfdzZge jd{dDdDkZhe
e jd|d}Zie
e jd~dZjdZkd-Zld.ZmdZne jddDdDkZoe
e jddDZpdS )    N)Listz	ray.serveSERVE_CONTROLLER_ACTORSERVE_PROXY_ACTORserveRAY_SERVE_DEFAULT_HTTP_HOSTz	127.0.0.1RAY_SERVE_DEFAULT_HTTP_PORTi@  Z   RAY_SERVE_DEFAULT_GRPC_PORTi(#  defaultg    .A!RAY_SERVE_CONTROL_LOOP_INTERVAL_Sg?zGot unexpected value zr for RAY_SERVE_CONTROL_LOOP_INTERVAL_S environment variable. RAY_SERVE_CONTROL_LOOP_INTERVAL_S cannot be negative.<   &MAX_DEPLOYMENT_CONSTRUCTOR_RETRY_COUNT20MAX_PER_REPLICA_RETRY_COUNT3)         
      2   d      i,  i  i  i  i  i  i'  i`  i i i'	 
bucket_strdefault_bucketsreturnc              
   C   s   |   dkr|S z,dd | dD }|stdtdd |D r&tdtt||kr2td	|W S  tyL } ztd
|  dt| d }~ww )N c                 S   s   g | ]}t | qS  )floatstrip.0xr   r   P/home/ubuntu/.local/lib/python3.10/site-packages/ray/serve/_private/constants.py
<listcomp>b   s    z)parse_latency_buckets.<locals>.<listcomp>,zEmpty bucket listc                 s   s    | ]}|d kV  qdS )r   Nr   r    r   r   r#   	<genexpr>e   s    z(parse_latency_buckets.<locals>.<genexpr>zBucket values must be positivez1Bucket values must be in strictly ascending orderzInvalid format for zG. Expected comma-separated positive numbers in ascending order. Error: )r   split
ValueErroranysortedset	Exceptionstr)r   r   bucketser   r   r#   parse_latency_buckets]   s&   r0   REQUEST_LATENCY_BUCKETS_MSr   MODEL_LOAD_LATENCY_BUCKETS_MScheck_healthreconfigureRAY_SERVE_ROOT_URLMAX_CACHED_HANDLESr   zR for MAX_CACHED_HANDLES environment variable. MAX_CACHED_HANDLES must be positive.CONTROLLER_MAX_CONCURRENCYi:  zb for CONTROLLER_MAX_CONCURRENCY environment variable. CONTROLLER_MAX_CONCURRENCY must be positive.r   r   r      r   &RAY_SERVE_PROXY_HEALTH_CHECK_TIMEOUT_S10%RAY_SERVE_PROXY_HEALTH_CHECK_PERIOD_S%RAY_SERVE_PROXY_READY_CHECK_TIMEOUT_S5   %RAY_SERVE_PROXY_MIN_DRAINING_PERIOD_S30r   CLIENT_POLLING_INTERVAL_S(CLIENT_CHECK_CREATION_POLLING_INTERVAL_S'RAY_SERVE_HANDLE_METRIC_PUSH_INTERVAL_SRAY_SERVE_KV_TIMEOUT_S0g      @g      $@zHSee https://docs.ray.io/en/latest/serve/index.html for more information.RAY_SERVE_LOG_ENCODINGTEXTRAY_SERVE_ENABLE_JSON_LOGGING1RAY_SERVE_LOG_TO_STDERR
request_idrouteapplication
deploymentreplicacomponent_namecomponent_idmessage	levelnameasctimez%(request_id)sz%(application)sz-- %(message)sz%(levelname)sz%(asctime)s>   job_idtask_idserve_access_log#RAY_SERVE_HTTP_KEEP_ALIVE_TIMEOUT_S&RAY_SERVE_REQUEST_PROCESSING_TIMEOUT_S"SERVE_REQUEST_PROCESSING_TIMEOUT_Sray_serve_extra_fieldsserve_multiplexed_model_idzx-request-id)RAY_SERVE_PROXY_PREFER_LOCAL_NODE_ROUTING'RAY_SERVE_PROXY_PREFER_LOCAL_AZ_ROUTING)RAY_SERVE_HTTP_PROXY_CALLBACK_IMPORT_PATH)RAY_SERVE_CONTROLLER_CALLBACK_IMPORT_PATHg      ?1RAY_SERVE_MULTIPLEXED_MODEL_ID_MATCHING_TIMEOUT_S!RAY_SERVE_ENABLE_MEMORY_PROFILINGRAY_SERVE_ENABLE_CPU_PROFILINGgrpc_context'RAY_SERVE_FORCE_STOP_UNHEALTHY_REPLICAS*RAY_SERVE_QUEUE_LENGTH_RESPONSE_DEADLINE_S.RAY_SERVE_MAX_QUEUE_LENGTH_RESPONSE_DEADLINE_Sg      ?&RAY_SERVE_QUEUE_LENGTH_CACHE_TIMEOUT_Sz7ray.serve.autoscaling_policy:default_autoscaling_policy/RAY_SERVE_COLLECT_AUTOSCALING_METRICS_ON_HANDLE&RAY_SERVE_MIN_HANDLE_METRICS_TIMEOUT_S'RAY_SERVE_ALWAYS_RUN_PROXY_ON_HEAD_NODERAY_SERVE_GRPC_MAX_MESSAGE_SIZEizgrpc.max_send_message_lengthzgrpc.max_receive_message_lengthRAY_SERVE_ENABLE_TASK_EVENTS)RAY_SERVE_USE_COMPACT_SCHEDULING_STRATEGYsc                 C   s   dd |  dD S )z`Return a list from a comma-separated string.

    Trims whitespace and skips empty entries.
    c                 S   s   g | ]
}|  r|  qS r   )r   )r!   rr   r   r#   r$     s    zstr_to_list.<locals>.<listcomp>r%   )r'   )ro   r   r   r#   str_to_list  s   rq   (RAY_SERVE_HIGH_PRIORITY_CUSTOM_RESOURCES"RAY_SERVE_FORCE_LOCAL_TESTING_MODE RAY_SERVE_RUN_SYNC_IN_THREADPOOLa7  Calling sync method '{method_name}' directly on the asyncio loop. In a future version, sync methods will be run in a threadpool by default. Ensure your sync methods are thread safe or keep the existing behavior by making them `async def`. Opt into the new behavior by setting RAY_SERVE_RUN_SYNC_IN_THREADPOOL=1.'RAY_SERVE_ENABLE_PROXY_GC_OPTIMIZATIONSRAY_SERVE_PROXY_GC_THRESHOLD10000$RAY_SERVE_METRICS_EXPORT_INTERVAL_MS100z@ray.serve._private.request_router:PowerOfTwoChoicesRequestRouterrecord_routing_stats*RAY_SERVE_RUN_USER_CODE_IN_SEPARATE_THREAD&RAY_SERVE_REQUEST_PATH_LOG_BUFFER_SIZE)qostypingr   SERVE_LOGGER_NAMESERVE_CONTROLLER_NAMESERVE_PROXY_NAMESERVE_NAMESPACEenvirongetDEFAULT_HTTP_HOSTintDEFAULT_HTTP_PORT$DEFAULT_UVICORN_KEEP_ALIVE_TIMEOUT_SDEFAULT_GRPC_PORTSERVE_DEFAULT_APP_NAMEASYNC_CONCURRENCYr   getenvCONTROL_LOOP_INTERVAL_SHTTP_PROXY_TIMEOUTr   r   DEFAULT_LATENCY_BUCKET_MSr-   listr0   r1   r2   HEALTH_CHECK_METHODRECONFIGURE_METHODSERVE_ROOT_URL_ENV_KEYr6   r7   #DEFAULT_GRACEFUL_SHUTDOWN_TIMEOUT_S%DEFAULT_GRACEFUL_SHUTDOWN_WAIT_LOOP_SDEFAULT_HEALTH_CHECK_PERIOD_SDEFAULT_HEALTH_CHECK_TIMEOUT_SDEFAULT_MAX_ONGOING_REQUESTSDEFAULT_TARGET_ONGOING_REQUESTSPROXY_HEALTH_CHECK_TIMEOUT_SPROXY_HEALTH_CHECK_PERIOD_SPROXY_READY_CHECK_TIMEOUT_S&PROXY_HEALTH_CHECK_UNHEALTHY_THRESHOLDPROXY_MIN_DRAINING_PERIOD_SPROXY_DRAIN_CHECK_PERIOD_S(REPLICA_HEALTH_CHECK_UNHEALTHY_THRESHOLDrA   __annotations__rB   HANDLE_METRIC_PUSH_INTERVAL_SrD   RAY_GCS_RPC_TIMEOUT_S(RECOVERING_LONG_POLL_BROADCAST_TIMEOUT_S%PUSH_MULTIPLEXED_MODEL_IDS_INTERVAL_SMIGRATION_MESSAGErF   rH   rJ   SERVE_LOG_REQUEST_IDSERVE_LOG_ROUTESERVE_LOG_APPLICATIONSERVE_LOG_DEPLOYMENTSERVE_LOG_REPLICASERVE_LOG_COMPONENTSERVE_LOG_COMPONENT_IDSERVE_LOG_MESSAGESERVE_LOG_LEVEL_NAMESERVE_LOG_TIMESERVE_LOG_RECORD_FORMATSERVE_LOG_UNWANTED_ATTRSrX   rY   SERVE_LOG_EXTRA_FIELDSSERVE_MULTIPLEXED_MODEL_IDSERVE_HTTP_REQUEST_ID_HEADERr]   r^   r_   r`   4RAY_SERVE_REPLICA_AUTOSCALING_METRIC_RECORD_PERIOD_S3RAY_SERVE_HANDLE_AUTOSCALING_METRIC_RECORD_PERIOD_Sra   rb   rc   MAX_REPLICAS_PER_NODE_MAX_VALUEGRPC_CONTEXT_ARG_NAMEre   rf   rg   rh   DEFAULT_AUTOSCALING_POLICYri   rj   rk   rl   DEFAULT_GRPC_SERVER_OPTIONS*METRICS_PUSHER_GRACEFUL_SHUTDOWN_TIMEOUT_Srm   rn   rq   rr   rs   rt   (RAY_SERVE_RUN_SYNC_IN_THREADPOOL_WARNINGru   rv   rx   DEFAULT_REQUEST_ROUTER_PATH&DEFAULT_REQUEST_ROUTING_STATS_PERIOD_S'DEFAULT_REQUEST_ROUTING_STATS_TIMEOUT_SREQUEST_ROUTING_STATS_METHODr{   r|   r   r   r   r#   <module>   sd  
 

	




	
