ShoalStack is now

platform201
Monitoring & Observability

Track Each Deployment and
Find What Broke a Build

platform201 records each deployment of your backend services with its status and its build log, so you can follow every version and trace the cause of each failure.

Status, Logs, and Settings
Inside Your Environment

platform201 keeps the deployment history, the build logs, and the graph of each environment together. The log of a failed version and the settings behind it are in one place.

Follow Each Version's Status

Watch each deployment move through pending, prebuilding, building, deploying, and configuring, until the deployment succeeds or fails.

Deployment historyVersion 1SucceededVersion 2FailedVersion 3SucceededVersion 4PendingPrebuildingBuildingDeployingConfiguringSucceededVersion 4PendingPendingPrebuildingPrebuildingBuildingBuildingDeployingDeployingConfiguringConfiguringSucceededSucceeded

Read the Log Behind a Failure

Open the log of a deployment to see its newest lines first. platform201 collapses repeated lines. Page back for earlier output on long builds.

Deployment historyVersion 1SucceededVersion 2SucceededVersion 3SucceededVersion 4FailedVersion 4 logFailedBuild failedNo Dockerfile in /apiWaiting for builderWaiting for builderWaiting for builder×3Fetching acme/apiQueued Version 4Earlier output

See the Environment You Deployed

The graph shows each container, function, database, queue, gateway, scheduler, and VM in the environment, and the connections between them.

stagingVersion 4DeployingSucceededGatewayContainerDatabaseSchedulerFunctionQueueVM

Check Settings Node by Node

Select a node to check its region, port, source, routes, schedule, or machine type, along with the names of the variables it receives.

stagingGatewayContainerSchedulerPostgresNode settingsSelect a nodeContainerRegionus-central1Port8080Sourceacme/apiVariableDATABASE_URLSchedulerSchedule0 6 * * *Regionus-central1Route/jobs/reportVariableAPI_KEY

Where to Look When a
Deployment Raises Questions

Some questions start with a failed build. Others start with a service that has errors after a release, or with an environment that a teammate built. The answers are in the same environment.

A Build That Fails

See the failed status on the version, and read the deployment output that shows where it stopped.

Errors After a Release

Compare the gateway routes and the settings of each service with the latest deployment and its log.

An Inherited Environment

Read the nodes, routes, and connections on the graph before you change anything a teammate built.

Tracing One Failed Build Back to Its Cause

Here, the latest platform201 deployment of an API failed during the build. The steps go from the failed version to its log, and then back to the graph to fix the cause and deploy again.

1

Open the Deployment History

In platform201, open the environment and its deployment history. The history lists each version by number, with a status such as building or failed.

2

Select the Failed Version

Select the version with the failed status to open its details. There you can read the deployment output that platform201 recorded for that run.

3

Read the Newest Lines First

Read the newest log lines to find the build or configuration step that failed. Page back through earlier output whenever you need more context.

4

Fix the Node and Redeploy

Correct the source, variable, or connection on the graph, and then deploy again. The new version appears in the history and moves through each of its statuses.

Deploy Your First Version and Watch Its Status

Put one container behind a gateway, and follow its first deployment to succeeded. When you add databases, queues, and schedulers, the deployment history and the logs cover them too.

FAQ

A deployment usually waits in a queue, builds a container image from the source, starts the new version, and then applies routes and settings. The status tells you which stage is running, so a failure points to one stage. A platform201 deployment moves through pending, prebuilding, building, deploying, and configuring, and it ends as succeeded or failed.