Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions python/ray/serve/_private/application_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,17 @@ def _set_target_state(

self._target_state = target_state

# Log the resulting declarative + imperative version of the deployment config
# after each update to the application
if deployment_infos is not None and not deleting:
deployment_configs = {
name: info.to_dict() for name, info in deployment_infos.items()
}
logger.info(
f"Application '{self._name}' updated. Deployment configs (declarative + imperative): "
f"{json.dumps(deployment_configs, indent=2, default=str)}"
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think the log in deploy is sufficient. this one is going to be too noisy since it get called on every autoscaling decision.


def _set_target_state_deleting(self):
"""Set target state to deleting.

Expand Down
10 changes: 10 additions & 0 deletions python/ray/serve/_private/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -807,6 +807,16 @@ def to_proto(self):
def to_proto_bytes(self):
return self.to_proto().SerializeToString()

def to_dict(self):
# only use for logging purposes
return {
"deployment_def_name": self.deployment_def_name,
"ray_actor_options": self.ray_actor_options,
"placement_group_bundles": self.placement_group_bundles,
"placement_group_strategy": self.placement_group_strategy,
"max_replicas_per_node": self.max_replicas_per_node,
}


def prepare_imperative_http_options(
proxy_location: Union[None, str, ProxyLocation],
Expand Down
11 changes: 11 additions & 0 deletions python/ray/serve/_private/deployment_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,3 +167,14 @@ def to_proto(self):
else:
data["target_capacity_direction"] = self.target_capacity_direction.name
return DeploymentInfoProto(**data)

def to_dict(self):
# only use for logging purposes
return {
"deployment_config": self.deployment_config.model_dump(),
"replica_config": self.replica_config.to_dict(),
"start_time_ms": self.start_time_ms,
"actor_name": self.actor_name,
"version": self.version,
"end_time_ms": self.end_time_ms,
}
6 changes: 6 additions & 0 deletions python/ray/serve/_private/deployment_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -2340,6 +2340,12 @@ def deploy(self, deployment_info: DeploymentInfo) -> bool:
bool: Whether the target state has changed.
"""

logger.info(f"Deploying deployment '{self._id}': {deployment_info.to_dict()}")
logger.info(
f"Current target state for deployment '{self._id}': "
f"{self._target_state.info.to_dict() if self._target_state.info is not None else None}"
)

curr_deployment_info = self._target_state.info
if curr_deployment_info is not None:
# Redeploying should not reset the deployment's start time.
Expand Down