{{define "app_instances"}}{{template "top" .}} {{if .Flash}}{{end}} {{if .FlashErr}}{{end}} {{template "appnav" .}}

Instances

{{if .CanRestartApp}}
{{end}} {{if or .InstanceRows .InstanceQuery.Q .InstanceQuery.Health .InstanceQuery.Channel}}
{{if .InstanceQuery.Health}}{{end}}

All {{range .InstancePage.Links}} · {{.Word}} {{.Count}} {{end}}

{{end}} {{if .InstanceRows}}
{{if .InstanceQuery.Group}} {{range .InstanceGroups}} {{range .Rows}}{{template "instance_row" (instanceRowPage $ .)}}{{end}} {{end}} {{else}} {{range .InstanceRows}}{{template "instance_row" (instanceRowPage $ .)}}{{end}} {{end}}
AddressHealthVersionChannelCPUMemory
{{.Channel}} {{$.InstanceCopy.Target}}: {{if .TargetErr}}—{{else if .TargetVersion}}{{.TargetVersion}}{{else}}—{{end}} · Instances: {{len .Rows}} / {{.Total}}

Version is what each copy reports it is running — a dash means it hasn't reported yet. Charts cover the last 48 hours; the memory line is drawn against that copy's own peak.

{{if .InstancePage.NextURL}}

Next {{len .InstanceRows}} shown of {{.InstancePage.Total}} →

{{end}} {{else if or .InstanceQuery.Q .InstanceQuery.Health .InstanceQuery.Channel}}

No addresses match.

{{else}}

Nothing running yet. Publish a version, then give it a web address:

{{if .AttachEnable}}
{{.AttachEnable}}
{{.AttachCmd}}
{{else if .AttachCmd}}
{{.AttachCmd}}
{{end}}

The address comes live within a couple of minutes.

{{end}}

Placement

{{if .RegionLine}} {{end}} {{if .AppPlacementKnown}}

{{if .AppPlacement}}This app runs on your fleet {{fleetName .AppPlacement}}.{{else}}This app runs on the shared fleet.{{end}}

{{if and .IsOwner .OwnedFleetNames}}

Moving changes where this app serves. Data does not move: hibernated instance state stays in the old placement's bucket.

{{end}} {{else}}

Could not read where this app runs.

{{end}} {{if and .Instances .Instances.Reporting .Instances.Instances}}
Reported by the app itself ({{len .Instances.Instances}})

This app tracks its own internal workers and reports them to the platform.

{{range .Instances.Instances}} {{end}}
NameStatusRegionDetail
{{.Slug}} {{if .Status}}{{.Status}}{{else}}—{{end}} {{if .Region}}{{.Region}}{{else}}—{{end}} {{if .Detail}}{{.Detail}}{{else}}—{{end}}
{{end}} {{template "bottom" .}}{{end}} {{define "instance_row"}} {{.Row.Host}} {{icon "external-link"}} {{.Row.HealthWord}} {{if .Row.Version}}{{.Row.Version}}{{else}}—{{end}} {{.Row.Channel}} {{if .Row.Metrics.Reporting}} {{pct .Row.Metrics.CPUFrac}}{{if .Row.Metrics.SparkCPU}}{{end}} {{bytesOrDash .Row.Metrics.MemBytes}}{{if .Row.Metrics.SparkMem}}{{end}} {{else}}no data{{end}} {{end}}