- Notifications
You must be signed in to change notification settings - Fork928
feat(coderd/healthcheck): add access URL error codes and healthcheck doc#10915
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
cbb09ea
to8080874
CompareWhat would be the expected shape here? Something like: {"warnings": ["code":"W001","message":"This is a warning" ],"resolutions": {"W001":"https://docs.coder.com/warning/W001" }} |
johnstcn commentedNov 29, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
I had envisioned |
@johnstcn sounds good! |
8080874
to1994ce1
Compare// CodeUnknown is a catch-all health code when something unexpected goes wrong (for example, a panic). | ||
CodeUnknown Code = "EUNKNOWN" | ||
CodeProxyUpdate Code = "EWP01" | ||
CodeProxyFetch Code = "EWP02" | ||
CodeProxyVersionMismatch Code = "EWP03" | ||
CodeProxyUnhealthy Code = "EWP04" | ||
CodeDatabasePingFailed Code = "EDB01" | ||
CodeDatabasePingSlow Code = "EDB02" | ||
CodeWebsocketDial Code = "EWS01" | ||
CodeWebsocketEcho Code = "EWS02" | ||
CodeWebsocketMsg Code = "EWS03" | ||
CodeAccessURLNotSet Code = "EACS01" | ||
CodeAccessURLInvalid Code = "EACS02" | ||
CodeAccessURLFetch Code = "EACS03" | ||
CodeAccessURLNotOK Code = "EACS04" | ||
CodeDERPNodeUsesWebsocket Code = `EDERP01` | ||
CodeDERPOneNodeUnhealthy Code = `EDERP02` |
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.
review: these all have to go in here to be generated properly
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
Uh oh!
There was an error while loading.Please reload this page.
matifali left a comment• edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
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.
A few comments but this is Awesome <3
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
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.
👍
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.
Suggestions inline
> [forced websocket connections for DERP](../cli/server.md#--derp-force-websockets). | ||
**Solution:** ensure that any configured reverse proxy does not strip the | ||
`Upgrade: derp` header. |
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.
ensure that any proxies you use allow connection upgrade with theUpgrade: derp
header.
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.
👍
performance may be impacted for clients closest to the unhealthy DERP server. | ||
**Solution:** Ensure that the DERP server is available and reachable over the | ||
network on port 443, for example: |
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.
Ensure that the DERP server is available and reachable over the network, for example:
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.
👍
network on port 443, for example: | ||
```shell | ||
curl -v "https://coder.company.com:443/derp" |
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.
:443 is redundant if you use https://
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.
👍
running Coder, using standard troubleshooting tools like `curl`: | ||
```shell | ||
curl -v "https://coder.company.com:443/" |
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.
:443 is redundant with https://
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.
👍
``` | ||
2. Ensure that any reverse proxy that is sitting in front of Coder's configured | ||
access URL is not stripping the HTTP header `Upgrade: websocket`. |
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.
Ensure that any reverse proxy that is serving Coder's configured access URL allows connection upgrade with the headerUpgrade: websocket
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.
👍
**Problem:** One or more workspace proxies are not reachable. | ||
**Solution:** Ensure that Coder can establish a connection to the configured | ||
workspace proxies on port 443. |
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.
Ensure that Coder can establish a connection to the configured
workspace proxies
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.
👍
Uh oh!
There was an error while loading.Please reload this page.
Relates to#8965
Future work:
site/src/api
to create a troubleshooting link from an error that extracts the error code prefix matching^([A-Z0-9]+):
..error
and.warnings[]
to be a shape of{ message: string, code: string}
. I started on this but realised it makes the diff too large, so will do it in a follow-up.