We need to know more clear explanation for warning can critical status while checking the services.
checks = consul.Consul().agent.checks(), As per our understanding it will check by requesting api /agent/check
documentation link here
Check - Agent - HTTP API | Consul | HashiCorp Developer . Our main query is when warning comes for a service and when critical comes for a services
blake
November 2, 2023, 6:08pm
2
It depends on the type of check being used.
For script checks , healthy, warning, or critical states are determined by the program’s exit code.
Script check exit codes
The following exit codes returned by the script check determine the health check status:
Exit code 0 - Check is passing
Exit code 1 - Check is warning
Any other code - Check is failing
The author of the script check determines what exit code they want to return for specific health check scenarios.
For HTTP checks , the following response codes correspond to different health check states.
HTTP check response codes
Responses larger than 4KB are truncated. The HTTP response determines the status of the service:
A 200
-299
response code is healthy.
A 429
response code indicating too many requests is a warning.
All other response codes indicate a failure.
Refer to https://developer.hashicorp.com/consul/docs/services/usage/checks#tcp-checks for more information on the supported health checks and the conditions when they will return a specific warning state.
Thank you blake for your reply. Our check is configured to check the ping for a particular ip
like given below
check:
interval: 5s
args:
- /bin/bash
- ‘-c’
- ping -6 -c 3 $ip_address >> /dev/null , we would like to know when we can critical status .
Thanks
blake
November 7, 2023, 11:19pm
4
Under normal circumstances, I don’t think that ping
will return the right exit code to allow the service to be marked as critical.
If ping does not receive any reply packets at all it will exit with code 1. If a packet count and deadline are both specified, and fewer than count packets are received by the time the deadline has arrived, it will also exit with code 1. On other error it exits with code 2. Otherwise it exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.
source: https://linux.die.net/man/8/ping
ping
would need to exit with code 2 in order to be marked critical by Consul.