probe is an API service that performs active healthchecks of any http/https service.
It provides a UI of status tiles to provide real-time visualisation of configured probes.
Suitable for quickly validating microservice health or configured firewall rules.
Probes can be configured via either the included CLI or the REST API.
Builds a shell command that links to the docker container.
Requires docker installed on your system.
docker run apnex/probe shell > probe-cli
chmod +x probe-cli
mv probe-cli /usr/bin/
PROBE_SERVER_PORT is the server listening TCP port
Defaults to 4040 if not specified
export PROBE_SERVER_PORT=4040
Once shell integration installed, probe can be controlled directly via the probe-cli shell command.
See Usage below
This is where we manually start the container using docker run
This is not required if you have performed Shell Integration
Subsequent commands are then issued using docker exec commands.
Start the container in background:
docker run -d -P --net host \
--name probe \
-e PROBE_SERVER_PORT=4040 \
apnex/probe
NOTE: It is preferable to use --net host so that the UI reports the correct hostname of the server
Where:
PROBE_SERVER_PORTis the server listening TCP port. Defaults to4040if not specified
Then issue one or more docker exec commands:
docker exec -t probe cli <cmd>
Clean up docker container when done:
docker rm -f probe
Generates a HTTP HEAD request to the configured probe endpoint
Default polling interval = 5 seconds
Default retries on failure = 2
probe includes a CLI for terminal access to probe configuration
The following examples assume you have configured Shell Integration
If you are using docker exec - append the <cmd> to the docker exec -t probe cli command
CLI format is probe-cli <cmd>
API examples use CURL + JQ and assume server listening at locahost:4040
Get available commands
probe-cli list
Create a new probe
probe-cli probes.create probe0 https://labops.sh
API
read -r -d "" BODY <<EOF
{
"name": "probe0",
"endpoint": "https://labops.sh"
}
EOF
curl -s -X POST \
-H "Content-Type: application/json" \
-d "${BODY}" \
http://localhost:4040/probesList all probes
probe-cli probes.list
API
curl -s http://localhost:4040/probes | jq --tab .Get a specific probe
probe-cli probes.get probe0
API
curl -s http://localhost:4040/probes/probe0 | jq --tab .Delete an existing probe
probe-cli probes.delete probe0
API
curl -s -X DELETE http://localhost:4040/probes/probe0Stops the server
probe-cli stop
