-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ui, deployments] Promote Canary and Unhealthy Allocations in the deployment status panel #17547
Conversation
a001188
to
86dd18f
Compare
Ember Test Audit comparison
|
1c131fd
to
53d3b7c
Compare
@@ -39,6 +39,8 @@ | |||
<span class="alloc-health-indicator"> | |||
{{#if (eq @health "healthy")}} | |||
<FlightIcon @name="check" @color="#25ba81" /> | |||
{{else if (eq @health "unhealthy")}} | |||
<FlightIcon @name="x" @color="#c84034" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the little top-right-corner status indicator that shows up when enough of an alloc exist to summarize it in a "+N" block
@@ -19,6 +19,8 @@ | |||
<span class="alloc-health-indicator"> | |||
{{#if (eq @health "healthy")}} | |||
<FlightIcon @name="check" @color="white" /> | |||
{{else if (eq @health "unhealthy")}} | |||
<FlightIcon @name="x" @color="white" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the indicator for when an allocation is un-aggregated/summarized, in say a small enough cluster that each allocation gets its own square.
{{else}} | ||
<Hds::Alert @type="inline" @color="highlight" as |A|> | ||
<A.Title>Checking Canary health</A.Title> | ||
{{#if this.deploymentIsAutoPromoted}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deploymentIsAutoPromoted is a new property for the UI, and slightly changes our messaging during the "checking your allocs' health" phase.
{{else}} | ||
<FlightIcon @name="running" @color="black" class="not-animated" /> | ||
{{/if}} | ||
</span> | ||
</span> | ||
{{count}} {{capitalize health}} | ||
{{count}} {{humanize health}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
humanize
to drop the _
in health_unknown
.
(in case you were wondering: we don't use unknown
here because that has a dedicated orange colour associated on elements from "Node status unknown" / max client disconnect stuff.)
: alloc.isUnhealthy | ||
? 'unhealthy' | ||
: 'health_unknown' | ||
: 'health_unknown'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not thrilled that I'm nesting a ternary here but it is only causing me mild discomfort
@@ -90,12 +110,14 @@ | |||
<span class="alloc-health-indicator"> | |||
{{#if (eq health "healthy")}} | |||
<FlightIcon @name="check" @color="#25ba81" /> | |||
{{else if (eq health "unhealthy")}} | |||
<FlightIcon @name="x" @color="black" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the change to the <legend>
beneath the allocations themselves.
53d3b7c
to
26db164
Compare
26db164
to
5804048
Compare
4b6a224
to
8f62e7b
Compare
8f62e7b
to
ef8995f
Compare
This PR upgrades the importance of the "Promote Canary" functionality and adopts conventions around unhealthy allocations during a deployment.
A big side-effect here is the realization that
allocation.deploymentStatus.Healthy
isn't always justnull
ortrue
; it can befalse
as well. This adds an explicitunhealthy
status into the UI for when an allocation is running but fails its health checks.Screenshots
Canary health being checked:
![image](https://private-user-images.githubusercontent.com/713991/246197983-c8a3c33d-00e5-4296-96b5-e23ec69ac0a2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxOTU3OTIsIm5iZiI6MTcyMDE5NTQ5MiwicGF0aCI6Ii83MTM5OTEvMjQ2MTk3OTgzLWM4YTNjMzNkLTAwZTUtNDI5Ni05NmI1LWUyM2VjNjlhYzBhMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNVQxNjA0NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yZWIzNTFhYmZkZDc2MmVmMTEyY2VmNGU3ZGFiYWQ4ZDI5OGI4MGU4NzQzOTgxYzRmYzM5NjBjOTYzMWY5MDk3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.wks-cWmxTV-BwtqD-9Ym-JSCyVNsnd-HuHDUMXuRUUU)
Canaries are running, but some have failed their health checks:
![image](https://private-user-images.githubusercontent.com/713991/246195560-a50dff44-000c-4db4-9685-52cb534d967c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxOTU3OTIsIm5iZiI6MTcyMDE5NTQ5MiwicGF0aCI6Ii83MTM5OTEvMjQ2MTk1NTYwLWE1MGRmZjQ0LTAwMGMtNGRiNC05Njg1LTUyY2I1MzRkOTY3Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNVQxNjA0NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04ZjRjZDg2NjMyMGVlNTZhOTZhZmMzZDI5NzQ1ZWU5NmM3ODBhYmY2YjA2MTc5NWNhMzBkNDllNjAyNDgxNjIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.MFgIAJCTuebfpmKv4Ebh3hZvGShoHXHuhy23LuNWG2I)
Some canaries have gone into a failed clientState:
![image](https://private-user-images.githubusercontent.com/713991/246197786-9b0c889c-d234-4fcd-bfe4-3bfa67f12050.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxOTU3OTIsIm5iZiI6MTcyMDE5NTQ5MiwicGF0aCI6Ii83MTM5OTEvMjQ2MTk3Nzg2LTliMGM4ODljLWQyMzQtNGZjZC1iZmU0LTNiZmE2N2YxMjA1MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNVQxNjA0NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MzgyNjY2OTFhZmYxOWM5NjViZmY4YWEwNGMyZGE2YTBkOGEwM2Y5YmFhOTlkNzdlNWY0OGMwNzVkYzhiZGIzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.14XiLJ-_x4gHnIfXnwmlqq2YhAtJVSUrbKQWOojhTM0)
Canaries have passed their health checks, require manual promotion:
![image](https://private-user-images.githubusercontent.com/713991/246197335-520caf6f-6775-4195-bf2c-a409a4266f9d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxOTU3OTIsIm5iZiI6MTcyMDE5NTQ5MiwicGF0aCI6Ii83MTM5OTEvMjQ2MTk3MzM1LTUyMGNhZjZmLTY3NzUtNDE5NS1iZjJjLWE0MDlhNDI2NmY5ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNVQxNjA0NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ODc0NzAwMTM3ZjVjNzQ1Njk5NDgxNjk5OTY0ZWY1OGI1NDc0OWIxODQ2MDA5ZGI2MTUwOTIwYTQ2MzI2NGI4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.55HG5sCztL1otqsfjPpDcufZ_kxK5cDu-uq1vAnxovE)
Resolves #17525