Check gitlab-readiness

Overview

Checks whether the GitLab instance is ready to accept traffic by querying the /-/readiness endpoint. Validates the status of all dependent services (database, Redis, Gitaly, etc.) and reports each individually. Alerts when the instance or any dependent service is not ready.

Important Notes:

Data Collection:

  • Queries the GitLab readiness endpoint (/-/readiness?all=1) via HTTP(S) to retrieve the health status of each dependent service

  • Checks the following services: cache, chat, cluster_cache, cluster_shared_state, db, db_load_balancing, feature_flag, gitaly, master, queues, rate_limiting, repository_cache, sessions, shared_state, trace_chunks

  • If any service reports a status other than „ok“, the check alerts with the configured severity and truncates the error message to 46 characters

Fact Sheet

Fact

Value

Check Plugin Download

https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/gitlab-readiness

Nagios/Icinga Check Name

check_gitlab_readiness

Check Interval Recommendation

Every minute

Can be called without parameters

Yes

Runs on

Cross-platform

Compiled for Windows

No

Help

usage: gitlab-readiness [-h] [-V] [--always-ok] [--insecure] [--no-proxy]
                        [--severity {warn,crit}] [--test TEST]
                        [--timeout TIMEOUT] [--url URL]

Checks whether the GitLab instance is ready to accept traffic by querying the
/-/readiness endpoint. Validates the status of all dependent services
(database, Redis, Gitaly, etc.) and reports each individually. Alerts when the
instance or any dependent service is not ready.

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  --always-ok           Always returns OK.
  --insecure            This option explicitly allows insecure SSL
                        connections.
  --no-proxy            Do not use a proxy.
  --severity {warn,crit}
                        Severity for alerting. Default: warn
  --test TEST           For unit tests. Needs "path-to-stdout-file,path-to-
                        stderr-file,expected-retc".
  --timeout TIMEOUT     Network timeout in seconds. Default: 8 (seconds)
  --url URL             GitLab readiness URL endpoint. Default:
                        http://localhost/-/readiness?all=1

Usage Examples

./gitlab-readiness --severity warn --timeout 3 --url http://localhost/-/readiness

Output:

There are issues with gitaly_check. Run `curl http://localhost/-/readiness?all=1` for full results.

Service           ! Message                                                     
------------------+-------------------------------------------------------------
cache             ! Running                                                     
chat              ! Running                                                     
cluster_cache     ! Running                                                     
db                ! Running                                                     
db_load_balancing ! Running                                                     
feature_flag      ! Running                                                     
gitaly            ! [WARNING] 14:connections to all backends failing; last e... 
master            ! Running                                                     
queues            ! Running                                                     
rate_limiting     ! Running                                                     
repository_cache  ! Running                                                     
sessions          ! Running                                                     
shared_state      ! Running                                                     
trace_chunks      ! Running

States

  • OK if all dependent services report status „ok“.

  • WARN (default) or CRIT (with --severity=crit) if the GitLab instance or any dependent service is not ready.

  • UNKNOWN on unexpected API responses or connection errors.

  • --always-ok suppresses all alerts and always returns OK.

Perfdata / Metrics

Name

Type

Description

gitlab-readiness

Number

The current state (0 = OK, 1 = WARN, 2 = CRIT, 3 = UNKNOWN).

Credits, License