mirror of https://github.com/status-im/consul.git
Merge pull request #1356 from hashicorp/docker-check-docs
Added some docs for the docker check
This commit is contained in:
commit
9258dc496a
|
@ -15,7 +15,7 @@ service. If not associated with a service, the check monitors the health of the
|
||||||
A check is defined in a configuration file or added at runtime over the HTTP interface. Checks
|
A check is defined in a configuration file or added at runtime over the HTTP interface. Checks
|
||||||
created via the HTTP interface persist with that node.
|
created via the HTTP interface persist with that node.
|
||||||
|
|
||||||
There are three different kinds of checks:
|
There are four different kinds of checks:
|
||||||
|
|
||||||
* Script + Interval - These checks depend on invoking an external application
|
* Script + Interval - These checks depend on invoking an external application
|
||||||
that performs the health check, exits with an appropriate exit code, and potentially
|
that performs the health check, exits with an appropriate exit code, and potentially
|
||||||
|
@ -60,6 +60,16 @@ There are three different kinds of checks:
|
||||||
last known status of the check across restarts. Persisted check status is
|
last known status of the check across restarts. Persisted check status is
|
||||||
valid through the end of the TTL from the time of the last check.
|
valid through the end of the TTL from the time of the last check.
|
||||||
|
|
||||||
|
* Docker + Interval - These checks depend on invoking an external application which
|
||||||
|
is packaged within a Docker Container. The application is triggered within the running
|
||||||
|
container via the Docker Exec API. We expect that the Consul agent user has access
|
||||||
|
to either the Docker HTTP API or the unix socket. Consul uses ```$DOCKER_HOST``` to
|
||||||
|
determine the Docker API endpoint. The application is expected to run, perform a health
|
||||||
|
check of the service running inside the container, and exit with an appropriate exit code.
|
||||||
|
The check should be paired with an invocation interval. The shell on which the check
|
||||||
|
has to be performed is configurable which makes it possible to run containers which
|
||||||
|
have different shells on the same host.
|
||||||
|
|
||||||
## Check Definition
|
## Check Definition
|
||||||
|
|
||||||
A script check:
|
A script check:
|
||||||
|
@ -116,6 +126,20 @@ A TTL check:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
A Docker check:
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
"check": {
|
||||||
|
"id": "mem-util",
|
||||||
|
"name": "Memory utilization",
|
||||||
|
"docker_container_id": "f972c95ebf0e",
|
||||||
|
"shell": "/bin/bash",
|
||||||
|
"script": "/usr/local/bin/check_mem.py",
|
||||||
|
"interval": "10s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Each type of definition must include a `name` and may optionally
|
Each type of definition must include a `name` and may optionally
|
||||||
provide an `id` and `notes` field. The `id` is set to the `name` if not
|
provide an `id` and `notes` field. The `id` is set to the `name` if not
|
||||||
provided. It is required that all checks have a unique ID per node: if names
|
provided. It is required that all checks have a unique ID per node: if names
|
||||||
|
@ -130,7 +154,7 @@ Checks may also contain a `token` field to provide an ACL token. This token is
|
||||||
used for any interaction with the catalog for the check, including
|
used for any interaction with the catalog for the check, including
|
||||||
[anti-entropy syncs](/docs/internals/anti-entropy.html) and deregistration.
|
[anti-entropy syncs](/docs/internals/anti-entropy.html) and deregistration.
|
||||||
|
|
||||||
Script, TCP and HTTP checks must include an `interval` field. This field is
|
Script, TCP, Docker and HTTP checks must include an `interval` field. This field is
|
||||||
parsed by Go's `time` package, and has the following
|
parsed by Go's `time` package, and has the following
|
||||||
[formatting specification](http://golang.org/pkg/time/#ParseDuration):
|
[formatting specification](http://golang.org/pkg/time/#ParseDuration):
|
||||||
> A duration string is a possibly signed sequence of decimal numbers, each with
|
> A duration string is a possibly signed sequence of decimal numbers, each with
|
||||||
|
|
Loading…
Reference in New Issue