zabbix_export: version: '7.0' template_groups: - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Templates/Applications templates: - uuid: f445dac89ff74deabaae9dcb84815998 template: 'GitLab by HTTP' name: 'GitLab by HTTP' description: | Get GitLab metrics by HTTP agent from Prometheus metrics endpoint. To access the metrics, the client IP address must be explicitly allowed. See https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html. Or second method, using token variable from http://your.gitlab.address/admin/health_check (fill {$GITLAB.HEALTH.TOKEN} macro with variable path like "?token=your_token"). Don't forget change macros {$GITLAB.URL}. Some metrics may not be collected depending on your Gitlab instance version and configuration. See (Gitlab's documentation[)https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html] for further information about its metric collection. You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback Generated by official Zabbix template tool "Templator" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: Templates/Applications items: - uuid: 43a26551b0a6460cac3c43138ec5fd33 name: 'GitLab: Cache: Misses rate, total' type: DEPENDENT key: gitlab.cache.misses_total.rate delay: '0' history: 7d value_type: FLOAT description: 'The cache read miss count.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_cache_misses_total")].value.sum()' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: cache - uuid: 9c507412d4544a37bdad49ba47c48302 name: 'GitLab: Cache: Operations rate, total' type: DEPENDENT key: gitlab.cache.operations_total.rate delay: '0' history: 7d value_type: FLOAT description: 'The count of cache operations.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_cache_operations_total")].value.sum()' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: cache - uuid: 2d46dc855ca741839cfe1a19e0dc892f name: 'GitLab: Database: Connection pool, busy' type: DEPENDENT key: gitlab.database.connection_pool_busy delay: '0' history: 7d description: 'Connections to the main database in use where the owner is still alive.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_busy" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: 6ee7a1d3ab20463d83602b751381d821 name: 'GitLab: Database: Connection pool, current' type: DEPENDENT key: gitlab.database.connection_pool_connections delay: '0' history: 7d description: 'Current connections to the main database in the pool.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_connections" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: 561a1f54c98d4a2b828fe644961404be name: 'GitLab: Database: Connection pool, dead' type: DEPENDENT key: gitlab.database.connection_pool_dead delay: '0' history: 7d description: 'Connections to the main database in use where the owner is not alive.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_dead" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: 3a0b5c8de88b41fa9ebf6f3fca63833e name: 'GitLab: Database: Connection pool, idle' type: DEPENDENT key: gitlab.database.connection_pool_idle delay: '0' history: 7d description: 'Connections to the main database not in use.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_idle" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: fd1458232de34981a9a00be820e123f1 name: 'GitLab: Database: Connection pool, size' type: DEPENDENT key: gitlab.database.connection_pool_size delay: '0' history: 7d description: 'Total connection to the main database pool capacity.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_size" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: 501a2f646ced4207a32a24e900310440 name: 'GitLab: Database: Connection pool, waiting' type: DEPENDENT key: gitlab.database.connection_pool_waiting delay: '0' history: 7d description: 'Threads currently waiting on this queue.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_database_connection_pool_waiting" && @.labels.class == "ActiveRecord::Base")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: database - uuid: 71a5f82d11914b12a86008bfd488fb1e name: 'GitLab: Version' type: DEPENDENT key: gitlab.deployments.version delay: '0' history: 7d trends: '0' value_type: CHAR description: 'Version of the GitLab instance.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="deployments")].labels.version.first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h master_item: key: gitlab.get_metrics tags: - tag: component value: application triggers: - uuid: 88d7ceb3a683436da666e8802b2d29b5 expression: 'last(/GitLab by HTTP/gitlab.deployments.version,#1)<>last(/GitLab by HTTP/gitlab.deployments.version,#2) and length(last(/GitLab by HTTP/gitlab.deployments.version))>0' name: 'GitLab: Version has changed' event_name: 'GitLab: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'The GitLab version has changed. Acknowledge to close the problem manually.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: 3e409938aba24445a11012bcbf8aa113 name: 'GitLab: User CAPTCHA logins failed, total' type: DEPENDENT key: gitlab.failed_login_captcha_total delay: '0' history: 7d description: 'Counter of failed CAPTCHA attempts during login.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="failed_login_captcha_total")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: sessions - uuid: 2aa509b84dc14026b8ff8ed473add2d2 name: 'GitLab: Get instance metrics' type: HTTP_AGENT key: gitlab.get_metrics history: '0' trends: '0' value_type: TEXT preprocessing: - type: CHECK_NOT_SUPPORTED parameters: - '' - type: PROMETHEUS_TO_JSON parameters: - '' url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}' tags: - tag: component value: raw - uuid: 3ff4d9793af94d339ca225aaf9200554 name: 'GitLab: HTTP requests rate, 4xx' type: DEPENDENT key: gitlab.http.requests.4xx.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of handle failures of requests with code 4XX.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="http_requests_total" && @.labels.status =~ ''4..'' )].value.sum()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: requests - tag: http-code value: 4xx - uuid: d0fa18012d6a4b0ba6620b0ef6cb9aef name: 'GitLab: HTTP requests rate, 5xx' type: DEPENDENT key: gitlab.http.requests.5xx.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of handle failures of requests with HTTP-code 5xx.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="http_requests_total" && @.labels.status =~ ''5..'' )].value.sum()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: requests - tag: http-code value: 5xx triggers: - uuid: 7021e3b0b49a4990a1d8ce356b7ae130 expression: 'min(/GitLab by HTTP/gitlab.http.requests.5xx.rate,5m)>{$GITLAB.HTTP.FAIL.MAX.WARN}' name: 'GitLab: Too many HTTP requests failures' event_name: 'GitLab: Too many HTTP requests failures (over {$GITLAB.HTTP.FAIL.MAX.WARN} for 5m)''' priority: WARNING description: '"Too many requests failed on GitLab instance with 5xx HTTP code"' tags: - tag: scope value: availability - uuid: 2d739e4bedb24b50ab6adfdfdeb39da9 name: 'GitLab: HTTP requests rate, total' type: DEPENDENT key: gitlab.http.requests.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of requests received into the system.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="http_requests_total")].value.sum()' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: requests - uuid: c48920e302ff4b9ab16f45b67775b440 name: 'GitLab: Application server status' type: HTTP_AGENT key: gitlab.liveness history: 7d description: 'Checks whether the application server is running. This probe is used to know if Rails Controllers are not deadlocked due to a multi-threading.' valuemap: name: 'GitLab healthcheck' preprocessing: - type: CHECK_NOT_SUPPORTED parameters: - '' error_handler: CUSTOM_VALUE error_handler_params: '{"status": "failed"}' - type: JSONPATH parameters: - $.status - type: BOOL_TO_DECIMAL parameters: - '' error_handler: CUSTOM_VALUE error_handler_params: '0' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 30m url: '{$GITLAB.URL}/-/liveness{$GITLAB.HEALTH.TOKEN}' tags: - tag: component value: health triggers: - uuid: 2f1eb8d6c89a4d8cbda0e951d3f6a109 expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' name: 'GitLab: Liveness check was failed' priority: HIGH description: 'The application server is not running or Rails Controllers are deadlocked.' tags: - tag: scope value: availability - uuid: 7ef7142babfd4bc2b5b25be541c0511f name: 'GitLab: Pipelines: Auto DevOps pipelines, total' type: DEPENDENT key: gitlab.pipeline.auto_devops_completed.total delay: '0' history: 7d description: 'Counter of completed Auto DevOps pipelines.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="auto_devops_pipelines_completed_total")].value.sum()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: 0ffa0a5c108644508252a03469e4f394 name: 'GitLab: Pipelines: Auto DevOps pipelines, failed' type: DEPENDENT key: gitlab.pipeline.auto_devops_completed_total.failed delay: '0' history: 7d description: 'Counter of completed Auto DevOps pipelines with status "failed".' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="auto_devops_pipelines_completed_total" && @.labels.status == "failed")].value.sum()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: f4265a3167a245c4998958106f6ee265 name: 'GitLab: Pipelines: Created, total' type: DEPENDENT key: gitlab.pipeline.created_total delay: '0' history: 7d description: 'Counter of pipelines created.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="pipelines_created_total")].value.sum()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: 23cb22f8f81e461c86f72a92cdfde7a5 name: 'GitLab: Pipelines: CI/CD creation duration' type: DEPENDENT key: gitlab.pipeline.pipeline_creation delay: '0' history: 7d value_type: FLOAT units: s description: 'The sum of the time in seconds it takes to create a CI/CD pipeline.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_ci_pipeline_creation_duration_seconds_sum")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: 91c3acbb82524244a1ac400587641ffa name: 'GitLab: Pipelines: Pipelines: CI/CD creation count' type: DEPENDENT key: gitlab.pipeline.pipeline_creation.count delay: '0' history: 7d value_type: FLOAT description: 'The count of the time it takes to create a CI/CD pipeline.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_ci_pipeline_creation_duration_seconds_count")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: c80453c338814951a9e97d9f37e7d68f name: 'GitLab: Pipelines: Processing events, total' type: DEPENDENT key: gitlab.pipeline.processing_events_total delay: '0' history: 7d description: 'Total amount of pipeline processing events.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_ci_pipeline_processing_events_total")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: pipelines - uuid: 794a8d7f474d490c96e714dac810140d name: 'GitLab: Instance readiness check' type: HTTP_AGENT key: gitlab.readiness history: 7d description: 'The readiness probe checks whether the GitLab instance is ready to accept traffic via Rails Controllers.' valuemap: name: 'GitLab healthcheck' preprocessing: - type: CHECK_NOT_SUPPORTED parameters: - '' error_handler: CUSTOM_VALUE error_handler_params: '{"master_check":[{"status":"failed"}]}' - type: JSONPATH parameters: - '$.master_check[0].status' - type: BOOL_TO_DECIMAL parameters: - '' error_handler: CUSTOM_VALUE error_handler_params: '0' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 30m url: '{$GITLAB.URL}/-/readiness{$GITLAB.HEALTH.TOKEN}' tags: - tag: component value: health triggers: - uuid: 11ff325698534dcd8bbaa12c86704069 expression: 'last(/GitLab by HTTP/gitlab.readiness)=0' name: 'GitLab: Gitlab instance is not able to accept traffic' priority: HIGH dependencies: - name: 'GitLab: Liveness check was failed' expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' tags: - tag: scope value: availability - uuid: 173b8d5e108f471fbf4c1267dcb9cc37 name: 'GitLab: Redis: Client exceptions rate, cache' type: DEPENDENT key: gitlab.redis.client_exceptions.cache.rate delay: '0' history: 7d value_type: FLOAT description: 'Number of Redis client exceptions per second. (Instance: cache)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_exceptions_total" && @.labels.storage == "cache")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis triggers: - uuid: a7e460f174fd4e16b2358fd3867390b4 expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.cache.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis cache client exceptions' event_name: 'GitLab: Too many Redis cache client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during the requests to Redis instance cache."' tags: - tag: scope value: availability - uuid: 0bff591252dc4cc497527afb1f7d96b2 name: 'GitLab: Redis: Client exceptions rate, queues' type: DEPENDENT key: gitlab.redis.client_exceptions.queues.rate delay: '0' history: 7d value_type: FLOAT description: 'Number of Redis client exceptions per second. (Instance: queues)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_exceptions_total" && @.labels.storage == "queues")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis triggers: - uuid: 36ec79901f324f27992ea68274eedb71 expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.queues.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis queues client exceptions' event_name: 'GitLab: Too many Redis queues client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during the requests to Redis instance queues."' tags: - tag: scope value: availability - uuid: 800b429ea1d044e6a685bc51706f8547 name: 'GitLab: Redis: client exceptions rate, shared_state' type: DEPENDENT key: gitlab.redis.client_exceptions.shared_state.rate delay: '0' history: 7d value_type: FLOAT description: 'Number of Redis client exceptions per second. (Instance: shared_state)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_exceptions_total" && @.labels.storage == "shared_state")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis triggers: - uuid: b475d6ecbc564f9b8f7fe9b24bcdf013 expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.shared_state.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis shared_state client exceptions' event_name: 'GitLab: Too many Redis shared_state client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during the requests to Redis instance shared_state."' tags: - tag: scope value: availability - uuid: 7dcc638e1c174dd5975f85551211a3ba name: 'GitLab: Redis: Client requests rate, cache' type: DEPENDENT key: gitlab.redis.client_requests.cache.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of Redis client requests per second. (Instance: cache)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_requests_total" && @.labels.storage == "cache")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis - uuid: f613303925db46958d181c379e22f942 name: 'GitLab: Redis: Client requests rate, queues' type: DEPENDENT key: gitlab.redis.client_requests.queues.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of Redis client requests per second. (Instance: queues)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_requests_total" && @.labels.storage == "queues")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis - uuid: 3ae46654b46e4c769a7308879bc64890 name: 'GitLab: Redis: Client requests rate, shared_state' type: DEPENDENT key: gitlab.redis.client_requests.shared_state.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Number of Redis client requests per second. (Instance: shared_state)' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_redis_client_requests_total" && @.labels.storage == "shared_state")].value.first()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: redis - uuid: 950d48c3b5034e769b2bf6a7110ece02 name: 'GitLab: Ruby: File descriptors opened, avg' type: DEPENDENT key: gitlab.ruby.file_descriptors.avg delay: '0' history: 7d value_type: FLOAT description: 'Average number of opened file descriptors.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_file_descriptors")].value.avg()' master_item: key: gitlab.get_metrics tags: - tag: component value: fds - uuid: 67ed35c3f5f444b2b10fb462838758ac name: 'GitLab: Ruby: File descriptors opened, max' type: DEPENDENT key: gitlab.ruby.file_descriptors.max delay: '0' history: 7d value_type: FLOAT description: 'Maximum number of opened file descriptors.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_file_descriptors")].value.max()' master_item: key: gitlab.get_metrics tags: - tag: component value: fds - uuid: b1576e2b47bd448293c3e88885bfc87e name: 'GitLab: Ruby: File descriptors opened, min' type: DEPENDENT key: gitlab.ruby.file_descriptors.min delay: '0' history: 7d value_type: FLOAT description: 'Minimum number of opened file descriptors.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_file_descriptors")].value.min()' master_item: key: gitlab.get_metrics tags: - tag: component value: fds - uuid: 98feff3bfe0d4a9ea88733ae8fef8769 name: 'GitLab: Ruby: CPU usage per second' type: DEPENDENT key: gitlab.ruby.process_cpu_seconds.rate delay: '0' history: 7d value_type: FLOAT units: s description: 'Average CPU time util in seconds.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_cpu_seconds_total")].value.avg()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: cpu - uuid: 91ed44c1738745119e892eadb88b417f name: 'GitLab: Ruby: File descriptors, max' type: DEPENDENT key: gitlab.ruby.process_max_fds delay: '0' history: 7d value_type: FLOAT description: 'Maximum number of open file descriptors per process.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_max_fds")].value.avg()' master_item: key: gitlab.get_metrics tags: - tag: component value: fds - uuid: 8de84a159b864ed791c07835aa0ec39a name: 'GitLab: Ruby: RSS memory, avg' type: DEPENDENT key: gitlab.ruby.process_resident_memory_bytes.avg delay: '0' history: 7d value_type: FLOAT units: B description: 'Average RSS Memory usage in bytes.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_resident_memory_bytes")].value.avg()' master_item: key: gitlab.get_metrics tags: - tag: component value: memory - uuid: 27285f7d3c344d68b7945edde3cb8ecf name: 'GitLab: Ruby: RSS memory, max' type: DEPENDENT key: gitlab.ruby.process_resident_memory_bytes.max delay: '0' history: 7d value_type: FLOAT units: B description: 'Maximum RSS Memory usage in bytes.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_resident_memory_bytes")].value.max()' master_item: key: gitlab.get_metrics tags: - tag: component value: memory - uuid: 0cf8d21bcb8d4fb7880784dc82ba8229 name: 'GitLab: Ruby: RSS memory, min' type: DEPENDENT key: gitlab.ruby.process_resident_memory_bytes.min delay: '0' history: 7d value_type: FLOAT units: B description: 'Minimum RSS Memory usage in bytes.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_resident_memory_bytes")].value.min()' master_item: key: gitlab.get_metrics tags: - tag: component value: memory - uuid: 68267621a5e14494bf57225e71e05ff4 name: 'GitLab: Ruby: First process start time' type: DEPENDENT key: gitlab.ruby.process_start_time_seconds.first delay: '0' history: 7d units: unixtime description: 'Minimum UNIX timestamp of ruby processes start time.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_start_time_seconds")].value.min()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h master_item: key: gitlab.get_metrics tags: - tag: component value: application - uuid: be88084e9b544af68f78c013caf6b59a name: 'GitLab: Ruby: Last process start time' type: DEPENDENT key: gitlab.ruby.process_start_time_seconds.last delay: '0' history: 7d units: unixtime description: 'Maximum UNIX timestamp ruby processes start time.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="ruby_process_start_time_seconds")].value.max()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h master_item: key: gitlab.get_metrics tags: - tag: component value: application - uuid: f23849bd9716444f8bf65d3964e3be15 name: 'GitLab: Ruby: Running_threads' type: DEPENDENT key: gitlab.ruby.threads_running delay: '0' history: 7d description: 'Number of running Ruby threads.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="gitlab_ruby_threads_running_threads")].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: system triggers: - uuid: e24496a9499447b2bbdf70f85bbf2113 expression: 'nodata(/GitLab by HTTP/gitlab.ruby.threads_running,30m)=1' name: 'GitLab: Failed to fetch info data' event_name: 'GitLab: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received a metrics data for the last 30 minutes' manual_close: 'YES' dependencies: - name: 'GitLab: Liveness check was failed' expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' tags: - tag: scope value: availability - uuid: 56af56ccc23d44bcb636871229fbcde2 name: 'GitLab: User CAPTCHA logins, total' type: DEPENDENT key: gitlab.successful_login_captcha_total delay: '0' history: 7d description: 'Counter of successful CAPTCHA attempts during login.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="successful_login_captcha_total")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: sessions - uuid: 95deb1dc93d34935930b154d1222c8a4 name: 'GitLab: Transactions per second' type: DEPENDENT key: gitlab.transactions.rate delay: '0' history: 7d value_type: FLOAT units: rps description: 'Transactions per second (gitlab_transaction_* metrics).' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=~"gitlab_transaction_.*_count_total")].value.sum()' error_handler: DISCARD_VALUE - type: CHANGE_PER_SECOND parameters: - '' master_item: key: gitlab.get_metrics tags: - tag: component value: transactions - uuid: d1a346edc81d487da115105333e8992d name: 'GitLab: Upload file does not exist' type: DEPENDENT key: gitlab.upload_file_does_not_exist delay: '0' history: 7d description: 'Number of times an upload record could not find its file.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="upload_file_does_not_exist")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: application - uuid: 62c9c5a8886e431bb04c40a8045fe207 name: 'GitLab: User logins, total' type: DEPENDENT key: gitlab.user_session_logins_total delay: '0' history: 7d description: 'Counter of how many users have logged in since GitLab was started or restarted.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name=="user_session_logins_total")].value.first()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: sessions discovery_rules: - uuid: acd3e31daa8f497bb1ce0f91d104d928 name: 'Puma metrics discovery' type: HTTP_AGENT key: gitlab.puma.discovery delay: 3h description: 'Discovery of Puma specific metrics when Puma is used.' item_prototypes: - uuid: 6b6ebfe9326247c8a57fb8c96125bcee name: 'GitLab: Active connections' type: DEPENDENT key: 'gitlab.puma.active_connections[{#SINGLETON}]' delay: '0' history: 7d description: 'Number of puma threads processing a request.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_active_connections'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 14194f273b4e47d98cfdcbefff64cc68 name: 'GitLab: Idle threads' type: DEPENDENT key: 'gitlab.puma.idle_threads[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of spawned puma threads which are not processing a request.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_idle_threads'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 33a1be2938e24ce2a3fb650efa4f98d6 name: 'GitLab: Killer terminations, total' type: DEPENDENT key: 'gitlab.puma.killer_terminations_total[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of workers terminated by PumaWorkerKiller.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_killer_terminations_total'')].value.sum()' error_handler: DISCARD_VALUE master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 7d93438afd73422d90b03e78b1c0f998 name: 'GitLab: Max threads' type: DEPENDENT key: 'gitlab.puma.max_threads[{#SINGLETON}]' delay: '0' history: 7d description: 'The maximum number of puma worker threads.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_max_threads'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: fe381c99c2464e95bac63da2df994b8a name: 'GitLab: Pool capacity' type: DEPENDENT key: 'gitlab.puma.pool_capacity[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of requests the puma worker is capable of taking right now.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_pool_capacity'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 8c375d8323f9459a8b2a6254b7afed5b name: 'GitLab: Queued connections' type: DEPENDENT key: 'gitlab.puma.queued_connections[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of connections in that puma worker''s "todo" set waiting for a worker thread.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_queued_connections'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma trigger_prototypes: - uuid: 356c8dc915d84382b3f8dfe45b901f46 expression: 'min(/GitLab by HTTP/gitlab.puma.queued_connections[{#SINGLETON}],15m)>{$GITLAB.PUMA.QUEUE.MAX.WARN}' name: 'GitLab: Puma is queueing requests' event_name: 'GitLab: Puma is queueing requests (over {$GITLAB.PUMA.QUEUE.MAX.WARN}% for 15m)' priority: WARNING tags: - tag: scope value: performance - uuid: 02b27e8a68884f399a8359ed6967d614 name: 'GitLab: Running threads' type: DEPENDENT key: 'gitlab.puma.running[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of running puma threads.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_running'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: b43e4275dd64427bb6eb4890c556c513 name: 'GitLab: Running workers' type: DEPENDENT key: 'gitlab.puma.running_workers[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of booted puma workers.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_running_workers'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 0169db2581ba48579edc911cad4b41d7 name: 'GitLab: Stale workers' type: DEPENDENT key: 'gitlab.puma.stale_workers[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of old puma workers.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_stale_workers'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma - uuid: 19e0149a6de846c7a39b305037469ecb name: 'GitLab: Workers' type: DEPENDENT key: 'gitlab.puma.workers[{#SINGLETON}]' delay: '0' history: 7d description: 'Total number of puma workers.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''puma_workers'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: puma trigger_prototypes: - uuid: b69fe81449bd4b6cb6dfddeb333e8898 expression: 'min(/GitLab by HTTP/gitlab.puma.active_connections[{#SINGLETON}],5m)/last(/GitLab by HTTP/gitlab.puma.max_threads[{#SINGLETON}])*100>{$GITLAB.PUMA.UTILIZATION.MAX.WARN}' name: 'GitLab: Puma instance thread utilization is too high' event_name: 'GitLab: Puma instance thread utilization is too high (over {$GITLAB.PUMA.UTILIZATION.MAX.WARN}% for 5m)' priority: WARNING tags: - tag: scope value: capacity url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - puma_workers - type: JAVASCRIPT parameters: - 'return JSON.stringify(value != "[]" ? [{''{#SINGLETON}'': ''''}] : []);' - uuid: 912723d1837641cf9b84996788bd6b54 name: 'Unicorn metrics discovery' type: HTTP_AGENT key: gitlab.unicorn.discovery delay: 3h description: 'DiscoveryUnicorn specific metrics, when Unicorn is used.' item_prototypes: - uuid: 7461ee7fad7f4597825644b80cce2ec2 name: 'GitLab: Unicorn: Active connections' type: DEPENDENT key: 'gitlab.unicorn.active_connections[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of active Unicorn connections.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''unicorn_active_connections'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: unicorn - uuid: 31e0f545c6c6428c8f9f46426cb97ca7 name: 'GitLab: Unicorn: Queued connections' type: DEPENDENT key: 'gitlab.unicorn.queued_connections[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of queued Unicorn connections.' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''unicorn_queued_connections'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: unicorn trigger_prototypes: - uuid: 84142d0996c0420c8b07c7e17d1b9a47 expression: 'min(/GitLab by HTTP/gitlab.unicorn.queued_connections[{#SINGLETON}],5m)>{$GITLAB.UNICORN.QUEUE.MAX.WARN}' name: 'GitLab: Unicorn is queueing requests' event_name: 'GitLab: Unicorn is queueing requests (over {$GITLAB.UNICORN.QUEUE.MAX.WARN}% for 5m)' priority: WARNING tags: - tag: scope value: performance - uuid: 44a12fd548b742069cae53a78f7f8ab0 name: 'GitLab: Unicorn: Workers' type: DEPENDENT key: 'gitlab.unicorn.unicorn_workers[{#SINGLETON}]' delay: '0' history: 7d description: 'The number of Unicorn workers' preprocessing: - type: JSONPATH parameters: - '$[?(@.name==''unicorn_workers'')].value.sum()' master_item: key: gitlab.get_metrics tags: - tag: component value: unicorn trigger_prototypes: - uuid: 731bf8eb456c49739a3fcd7aec24c7d7 expression: 'min(/GitLab by HTTP/gitlab.unicorn.active_connections[{#SINGLETON}],5m)/last(/GitLab by HTTP/gitlab.unicorn.unicorn_workers[{#SINGLETON}])*100>{$GITLAB.UNICORN.UTILIZATION.MAX.WARN}' name: 'GitLab: Unicorn worker utilization is too high' event_name: 'GitLab: Unicorn worker utilization is too high (over {$GITLAB.UNICORN.UTILIZATION.MAX.WARN}% for 5m)' priority: WARNING tags: - tag: scope value: capacity url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - unicorn_workers error_handler: DISCARD_VALUE - type: JAVASCRIPT parameters: - 'return JSON.stringify(value != "[]" ? [{''{#SINGLETON}'': ''''}] : []);' tags: - tag: class value: application - tag: target value: gitlab macros: - macro: '{$GITLAB.HEALTH.TOKEN}' description: 'The token path for Gitlab health check. Example `?token=your_token`' - macro: '{$GITLAB.HTTP.FAIL.MAX.WARN}' value: '2' description: 'The maximum number of HTTP request failures for a trigger expression.' - macro: '{$GITLAB.OPEN.FDS.MAX.WARN}' value: '90' description: 'The maximum percentage of used file descriptors for a trigger expression.' - macro: '{$GITLAB.PUMA.QUEUE.MAX.WARN}' value: '1' description: 'The maximum number of Puma queued requests for a trigger expression.' - macro: '{$GITLAB.PUMA.UTILIZATION.MAX.WARN}' value: '90' description: 'The maximum percentage of Puma thread utilization for a trigger expression.' - macro: '{$GITLAB.REDIS.FAIL.MAX.WARN}' value: '2' description: 'The maximum number of Redis client exceptions for a trigger expression.' - macro: '{$GITLAB.UNICORN.QUEUE.MAX.WARN}' value: '1' description: 'The maximum number of Unicorn queued requests for a trigger expression.' - macro: '{$GITLAB.UNICORN.UTILIZATION.MAX.WARN}' value: '90' description: 'The maximum percentage of Unicorn workers utilization for a trigger expression.' - macro: '{$GITLAB.URL}' value: 'http://localhost' description: 'URL of a GitLab instance.' valuemaps: - uuid: 3b40391bb8b6472e9c3fd8e1f001fe04 name: 'GitLab healthcheck' mappings: - value: '0' newvalue: Failed - value: '1' newvalue: Ok triggers: - uuid: 4ac37991b2ca4edd9329fff1e752b05b expression: 'min(/GitLab by HTTP/gitlab.ruby.file_descriptors.max,5m)/last(/GitLab by HTTP/gitlab.ruby.process_max_fds)*100>{$GITLAB.OPEN.FDS.MAX.WARN}' name: 'GitLab: Current number of open files is too high' event_name: 'GitLab: Current number of open files is too high (over {$GITLAB.OPEN.FDS.MAX.WARN}% for 5m)' priority: WARNING tags: - tag: scope value: capacity graphs: - uuid: f6c30e56b54e478ea2708e302197b83b name: 'GitLab: Database: Connection pool' graph_items: - color: 199C0D item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_busy - sortorder: '1' color: F63100 item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_connections - sortorder: '2' color: 00611C item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_dead - sortorder: '3' color: F7941D item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_idle - sortorder: '4' color: FC6EA3 item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_waiting - sortorder: '5' drawtype: BOLD_LINE color: 6C59DC item: host: 'GitLab by HTTP' key: gitlab.database.connection_pool_size - uuid: ebffb6f63cf5400ab6a518612c5e857f name: 'GitLab: HTTP requests rate' graph_items: - color: 199C0D item: host: 'GitLab by HTTP' key: gitlab.http.requests.4xx.rate - sortorder: '1' color: F63100 item: host: 'GitLab by HTTP' key: gitlab.http.requests.5xx.rate - sortorder: '2' color: 00611C item: host: 'GitLab by HTTP' key: gitlab.http.requests.rate - uuid: 14d4a4cc843e4c15bd72b680c18ffdd6 name: 'GitLab: Redis requests rate' graph_items: - drawtype: BOLD_LINE color: 199C0D item: host: 'GitLab by HTTP' key: gitlab.redis.client_requests.shared_state.rate - sortorder: '1' drawtype: BOLD_LINE color: F63100 item: host: 'GitLab by HTTP' key: gitlab.redis.client_requests.cache.rate - sortorder: '2' drawtype: BOLD_LINE color: 00611C item: host: 'GitLab by HTTP' key: gitlab.redis.client_requests.queues.rate - sortorder: '3' color: F7941D yaxisside: RIGHT item: host: 'GitLab by HTTP' key: gitlab.redis.client_exceptions.shared_state.rate - sortorder: '4' color: FC6EA3 yaxisside: RIGHT item: host: 'GitLab by HTTP' key: gitlab.redis.client_exceptions.cache.rate - sortorder: '5' color: 6C59DC yaxisside: RIGHT item: host: 'GitLab by HTTP' key: gitlab.redis.client_exceptions.queues.rate - uuid: 2eafabff82a240258c50a77655f77fd9 name: 'GitLab: Ruby: File descriptors' graph_items: - color: 199C0D item: host: 'GitLab by HTTP' key: gitlab.ruby.file_descriptors.avg - sortorder: '1' color: F63100 item: host: 'GitLab by HTTP' key: gitlab.ruby.file_descriptors.max - sortorder: '2' color: 00611C item: host: 'GitLab by HTTP' key: gitlab.ruby.file_descriptors.min - sortorder: '3' drawtype: BOLD_LINE color: F7941D item: host: 'GitLab by HTTP' key: gitlab.ruby.process_max_fds - uuid: 1c6b8a24e76f4b7390e8e8742afbedec name: 'GitLab: Ruby: RSS memory' graph_items: - color: 199C0D item: host: 'GitLab by HTTP' key: gitlab.ruby.process_resident_memory_bytes.avg - sortorder: '1' color: F63100 item: host: 'GitLab by HTTP' key: gitlab.ruby.process_resident_memory_bytes.min - sortorder: '2' color: 00611C item: host: 'GitLab by HTTP' key: gitlab.ruby.process_resident_memory_bytes.max