You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1393 lines
54 KiB

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