Skip to content

Hide logs during compose up unless there is a problem #1749

@jordanstephens

Description

@jordanstephens

We want to refurbish the defang deployment"ui". Right now the interface is a list of progress updates, followed by the live tailed log stream from pulumi, service builds, and service runtime.

For example:

 * Using AWS provider from environment variable
 * Packaging the project files for elysia at /home/runner/work/defang-mvp/defang-mvp/samples/samples/elysia/elysia
 * Uploading the project files for elysia
 * Tailing logs for deployment ID t5qfwuxa8n76 ; press Ctrl+C to detach:
2026-01-06T05:30:01.340Z cd pulumi  ** Update started for stack beta
2026-01-06T05:30:01.345Z cd pulumi Initializing stack...
2026-01-06T05:30:02.717Z cd pulumi Running update...
2026-01-06T05:30:03.147Z cd pulumi Updating (beta):
# ... etc ...

The log outputs can be quite long and while they can be helpful in some cases, we think they are often noisier than necessary as a default. Instead, we would like to print a list of compose services, each with their current "service state" from this list:

BUILD_QUEUED
BUILD_PROVISIONING
BUILD_PENDING
BUILD_ACTIVATING
BUILD_RUNNING
BUILD_STOPPING
BUILD_FAILED
UPDATE_QUEUED
DEPLOYMENT_PENDING
DEPLOYMENT_COMPLETED
DEPLOYMENT_FAILED

For example, if I have the following services:

  • web
  • worker
  • db
  • cache

I would like to see something similar to this:

defang compose up
* [web] BUILD_RUNNING
* [worker] DEPLOYMENT_COMPLETED
* [db] UPDATE_QUEUED
* [cache] DEPLOYMENT_COMPLETED

And I would like the statuses to be live-updated in real time until all services reach a terminal status.

If a service fails to deploy, then we should print the specific logs related to the failed service. For example:

  • If a service fails to build, we should print the build logs for that service.
  • If a service is built successfully but fails to deploy, we should not see the build logs at all, we should only see the pulumi logs.
  • If a service deploys successfully, but healthchecks do not succeed, we should see runtime logs for that service.

And finally, if the user does wish to see complete log output during deployment, they should be able to use defang compose up --tail and the experience should be more or less like it is currently.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions