| @PLUGIN@ configuration |
| ====================== |
| |
| The @PLUGIN@ |
| ------------ |
| |
| The plugin does not require any configuration at all and exposes an HTTP |
| endpoint for querying the service status. |
| |
| ``` |
| GET /config/server/healthcheck~status |
| |
| )]}' |
| { |
| "ts": 139402910202, |
| "elapsed": 120, |
| "blockedthreads": { |
| "ts": 139402910202, |
| "elapsed": 30, |
| "result": "passed" |
| }, |
| "querychanges": { |
| "ts": 139402910202, |
| "elapsed": 20, |
| "result": "passed" |
| }, |
| "projectslist": { |
| "ts": 139402910202, |
| "elapsed": 40, |
| "result": "passed" |
| }, |
| "auth": { |
| "ts": 139402910202, |
| "elapsed": 30, |
| "result": "passed" |
| } |
| } |
| ``` |
| |
| Settings |
| -------- |
| |
| The plugin allows to customize its behaviour through a specific |
| `healthcheck.config` file in the `$GERRIT_SITE/etc` directory. |
| |
| Each section of the form `[healthcheck "<checkName>"]` can tailor the |
| behaviour of an individual `<checkName>`. The section `[healthcheck]` |
| defines the global defaults valid for all checks. |
| |
| The following check names are available: |
| |
| - `querychanges`: check the ability to query changes |
| - `jgit` : check connectivity to the filesystem and ability to open a JGit ref and object |
| - `projectslist` : check the ability to list projects with their descriptions |
| - `auth`: check the ability to authenticate with username and password |
| - `activeworkers`: check the number of active worker threads and the ability to create a new one |
| - `httpactiveworkers`: check the number of active HTTP worker threads and the ability |
| to create a new one |
| - `deadlock` : check if Java deadlocks are reported by the JVM |
| - `blockedthreads` : check the number of blocked threads |
| - `changesindex` : check if the lucene based changes indexes (open and closed) are operable |
| (examines index lock files) |
| |
| Each check name can be disabled by setting the `enabled` parameter to **false**, |
| by default this parameter is set to **true** |
| |
| The following parameters are available: |
| |
| - `healthcheck.<checkName>.timeout` : Specific timeout (msec) for the |
| healthcheck to complete. Zero means that there is no timeout. |
| |
| Default: 500 |
| |
| - `healthcheck.<checkName>.query` : Query to be executed for extracting |
| elements from the check. |
| |
| Default: status:open |
| |
| - `healthcheck.<checkName>.limit` : Maximum number of elements to retrieve from |
| the the check results. |
| |
| Default: 10 |
| |
| - `healthcheck.jgit.project` : A project name to check for accessibility of its refs/meta/config. |
| Multiple occurrences are allowed to configure more projects, in addition |
| to the default ones that are always included. |
| |
| Default: All-Projects, All-Users |
| |
| - `healthcheck.auth.username` : Username to use for authentication |
| |
| Default: healthcheck |
| |
| - `healthcheck.auth.password` : Password to use for authentication |
| |
| Default: no password |
| |
| - `healthcheck.activeworkers.threshold` : Percent of queue occupancy above which queue is |
| considered as full. |
| |
| Default: 80 |
| |
| - `healthcheck.blockedthreads.threshold` : Percent of all threads that are blocked above which instance |
| is considered as unhealthy. |
| |
| Default: 50 |
| |
| By default `healthcheck.blockedthreads` is calculated as ratio of BLOCKED threads against the all |
| Gerrit threads. It might be not sufficient for instance in case of `SSH-Interactive-Worker` threads |
| that could be all blocked making effectively a Gerrit instance unhealthy (neither fetch nor push |
| would succeed) but the threshold could be still not reached. Therefore one can fine tune the check |
| by putting detailed configuration for one or more thread groups (all threads that have the name |
| starting with a given prefix) to be checked according to the following template: |
| |
| ``` |
| [healthcheck "blockedthreads"] |
| threshold = [prefix]=[XX] |
| ``` |
| |
| Note that in case when specific thread groups are configured all threads are no longer checked. |
| |
| * **Example 1:** _check if BLOCKED threads are above the limit of 70_ |
| |
| ``` |
| [healthcheck "blockedthreads"] |
| threshold = 70 |
| ``` |
| |
| * **Example 2:** _check if BLOCKED `foo` threads are above the 33 limit_ |
| |
| ``` |
| [healthcheck "blockedthreads"] |
| threshold = foo=45 |
| ``` |
| |
| * **Example 3:** _check if BLOCKED `foo` threads are above the 33 limit and if BLOCKED `bar`_ |
| _threads are above the the 60 limit_ |
| |
| ``` |
| [healthcheck "blockedthreads"] |
| threshold = foo=33 |
| threshold = bar=60 |
| ``` |