# Gerrit Code Review - Metrics

version v3.4.4

Metrics about Gerrit’s internal state can be sent to external monitoring systems via plugins. See the plugin documentation for details of plugin implementations.

## Metrics

The following metrics are reported.

### General

- `build/label`: Version of Gerrit server software.

- `events`: Triggered events.

### Actions

- `action/retry_attempt_count`: Number of retry attempts made by RetryHelper to execute an action (0 == single attempt, no retry)

- `action/retry_timeout_count`: Number of action executions of RetryHelper that ultimately timed out

- `action/auto_retry_count`: Number of automatic retries with tracing

- `action/failures_on_auto_retry_count`: Number of failures on auto retry

### Pushes

- `receivecommits/changes`: histogram of number of changes processed in a single upload, split up by update type (change created/updated, change autoclosed).

- `receivecommits/latency`: latency per change for processing a push, split up by update type (create+replace, and autoclose)

- `receivecommits/push_latency`: total latency for processing a push, split up by update type (create+replace, autoclose, normal)

- `receivecommits/timeout`: number of timeouts during push processing.

### Process

- `proc/birth_timestamp`: Time at which the Gerrit process started.

- `proc/uptime`: Uptime of the Gerrit process.

- `proc/cpu/num_cores`: Number of processors available to the Java virtual machine.

- `proc/cpu/usage`: CPU time used by the Gerrit process.

- `proc/cpu/system_load`: System load average for the last minute.

- `proc/num_open_fds`: Number of open file descriptors.

- `proc/jvm/memory/heap_committed`: Amount of memory guaranteed for user objects.

- `proc/jvm/memory/heap_used`: Amount of memory holding user objects.

- `proc/jvm/memory/non_heap_committed`: Amount of memory guaranteed for classes, etc.

- `proc/jvm/memory/non_heap_used`: Amount of memory holding classes, etc.

- `proc/jvm/memory/object_pending_finalization_count`: Approximate number of objects needing finalization.

- `proc/jvm/gc/count`: Number of GCs.

- `proc/jvm/gc/time`: Approximate accumulated GC elapsed time.

- `proc/jvm/memory/pool/committed/<pool name>`: Committed amount of memory for pool.

- `proc/jvm/memory/pool/max/<pool name>`: Maximum amount of memory for pool.

- `proc/jvm/memory/pool/used/<pool name>`: Used amount of memory for pool.

- `proc/jvm/thread/num_live`: Current live thread count.

- `proc/jvm/thread/num_daemon_live`: Current live daemon threads count.

- `proc/jvm/thread/num_peak_live`: Peak live thread count since the Java virtual machine started or peak was reset.

- `proc/jvm/thread/num_total_started`: Total number of threads created and also started since the Java virtual machine started.

- `proc/jvm/thread/num_deadlocked_threads`: Number of threads that are deadlocked waiting for object monitors or ownable synchronizers. If deadlocks waiting for ownable synchronizers can be monitored depends on the capabilities of the used JVM.

### Caches

- `caches/memory_cached`: Memory entries.

- `caches/memory_hit_ratio`: Memory hit ratio.

- `caches/memory_eviction_count`: Memory eviction count.

- `caches/disk_cached`: Disk entries used by persistent cache.

- `caches/disk_hit_ratio`: Disk hit ratio for persistent cache.

- `caches/refresh_count`: The number of refreshes per cache with an indicator if a reload was necessary.

Cache disk metrics are expensive to compute on larger installations and are not computed by default. They can be enabled via the `cache.enableDiskStatMetrics` setting.

### Change

- `change/submit_rule_evaluation`: Latency for evaluating submit rules on a change.

- `change/submit_type_evaluation`: Latency for evaluating the submit type on a change.

### Comments

- `ported_comments/as_patchset_level`: Total number of comments ported as patchset-level comments.

- `ported_comments/as_file_level`: Total number of comments ported as file-level comments.

- `ported_comments/as_range_comments`: Total number of comments having line/range values in the ported patchset.

### HTTP

#### Jetty

- `http/server/jetty/connections/connections`: The current number of open connections

- `http/server/jetty/connections/connections_total`: The total number of connections opened

- `http/server/jetty/connections/connections_duration_max`: The max duration of a connection in ms

- `http/server/jetty/connections/connections_duration_mean`: The mean duration of a connection in ms

- `http/server/jetty/connections/connections_duration_stdev`: The standard deviation of the duration of a connection in ms

- `http/server/jetty/connections/received_messages`: The total number of messages received

- `http/server/jetty/connections/sent_messages`: The total number of messages sent

- `http/server/jetty/connections/received_bytes`: Total number of bytes received by tracked connections

- `http/server/jetty/connections/sent_bytes`: Total number of bytes sent by tracked connections"

- `http/server/jetty/threadpool/active_threads`: Active threads

- `http/server/jetty/threadpool/idle_threads`: Idle threads

- `http/server/jetty/threadpool/reserved_threads`: Reserved threads

- `http/server/jetty/threadpool/max_pool_size`: Maximum thread pool size

- `http/server/jetty/threadpool/min_pool_size`: Minimum thread pool size

- `http/server/jetty/threadpool/pool_size`: Current thread pool size

- `http/server/jetty/threadpool/queue_size`: Queued requests waiting for a thread

#### LDAP

- `ldap/login_latency`: Latency of logins.

- `ldap/user_search_latency`: Latency for searching the user account.

- `ldap/group_search_latency`: Latency for querying the group memberships of an account.

- `ldap/group_expansion_latency`: Latency for expanding nested groups.

#### REST API

- `http/server/error_count`: Rate of REST API error responses.

- `http/server/success_count`: Rate of REST API success responses.

- `http/server/rest_api/count`: Rate of REST API calls by view.

- `http/server/rest_api/change_id_type`: Rate of REST API calls by change ID type.

- `http/server/rest_api/error_count`: Rate of REST API calls by view.

- `http/server/rest_api/server_latency`: REST API call latency by view.

- `http/server/rest_api/response_bytes`: Size of REST API response on network (may be gzip compressed) by view.

- `http/server/rest_api/change_json/to_change_info_latency`: Latency for toChangeInfo invocations in ChangeJson.

- `http/server/rest_api/change_json/to_change_infos_latency`: Latency for toChangeInfos invocations in ChangeJson.

- `http/server/rest_api/change_json/format_query_results_latency`: Latency for formatQueryResults invocations in ChangeJson.

- `http/server/rest_api/ui_actions/latency`: Latency for RestView#getDescription calls.

### Query

- `query/query_latency`: Successful query latency, accumulated over the life of the process.

### Core Queues

The following queues support metrics:

- default `WorkQueue`

- index batch

- index interactive

- receive commits

- send email

- ssh batch worker

- ssh command start

- ssh interactive worker

- ssh stream worker

Each queue provides the following metrics:

- `queue/<queue_name>/pool_size`: Current number of threads in the pool

- `queue/<queue_name>/max_pool_size`: Maximum allowed number of threads in the pool

- `queue/<queue_name>/active_threads`: Number of threads that are actively executing tasks

- `queue/<queue_name>/scheduled_tasks`: Number of scheduled tasks in the queue

- `queue/<queue_name>/total_scheduled_tasks_count`: Total number of tasks that have been scheduled

- `queue/<queue_name>/total_completed_tasks_count`: Total number of tasks that have completed execution

### SSH sessions

- `sshd/sessions/connected`: Number of currently connected SSH sessions.

- `sshd/sessions/created`: Rate of new SSH sessions.

- `sshd/sessions/authentication_failures`: Rate of SSH authentication failures.

### Topics

- `topic/cross_project_submit`: number of cross-project topic submissions.

- `topic/cross_project_submit_completed`: number of cross-project topic submissions that concluded successfully.

### JGit

- `jgit/block_cache/cache_used` : Bytes of memory retained in JGit block cache.

- `jgit/block_cache/open_files` : File handles held open by JGit block cache.

- `avg_load_time` : Average time to load a cache entry for JGit block cache.

- `total_load_time` : Total time to load cache entries for JGit block cache.

- `eviction_count` : Cache evictions for JGit block cache.

- `eviction_ratio` : Cache eviction ratio for JGit block cache.

- `hit_count` : Cache hits for JGit block cache.

- `hit_ratio` : Cache hit ratio for JGit block cache.

- `load_failure_count` : Failed cache loads for JGit block cache.

- `load_failure_ratio` : Failed cache load ratio for JGit block cache.

- `load_success_count` : Successful cache loads for JGit block cache.

- `miss_count` : Cache misses for JGit block cache.

- `miss_ratio` : Cache miss ratio for JGit block cache.

- `cache_used_per_repository` : Bytes of memory retained per repository for the top N repositories having most data in the cache. The number N of reported repositories is limited to 1000.

### Git

- `git/upload-pack/request_count`: Total number of git-upload-pack requests.

- `git/upload-pack/phase_counting`: Time spent in the 'Counting…​' phase.

- `git/upload-pack/phase_compressing`: Time spent in the 'Compressing…​' phase.

- `git/upload-pack/phase_writing`: Time spent transferring bytes to client.

- `git/upload-pack/pack_bytes`: Distribution of sizes of packs sent to clients.

- `git/auto-merge/num_operations`: Number of auto merge operations and context.

- `git/auto-merge/latency`: Latency of auto merge operations and context.

### BatchUpdate

- `batch_update/execute_change_ops`: BatchUpdate change update latency, excluding reindexing

### NoteDb

- `notedb/update_latency`: NoteDb update latency for changes.

- `notedb/stage_update_latency`: Latency for staging change updates to NoteDb.

- `notedb/read_latency`: NoteDb read latency for changes.

- `notedb/parse_latency`: NoteDb parse latency for changes.

- `notedb/external_id_cache_load_count`: Total number of times the external ID cache loader was called.

- `notedb/external_id_partial_read_latency`: Latency for generating a new external ID cache state from a prior state.

- `notedb/external_id_update_count`: Total number of external ID updates.

- `notedb/read_all_external_ids_latency`: Latency for reading all external ID’s from NoteDb.

- `notedb/read_single_account_config_latency`: Latency for reading a single account config from NoteDb.

- `notedb/read_single_external_id_latency`: Latency for reading a single external ID from NoteDb.

### Permissions

- `permissions/permission_collection/filter_latency`: Latency to filter access sections by user and ref.

- `permissions/ref_filter/full_filter_count`: Rate of full ref filter operations

- `permissions/ref_filter/skip_filter_count`: Rate of ref filter operations where we skip full evaluation because the user can read all refs

### Reviewer Suggestion

- `reviewer_suggestion/query_accounts`: Latency for querying accounts for reviewer suggestion.

- `reviewer_suggestion/recommend_accounts`: Latency for recommending accounts for reviewer suggestion.

- `reviewer_suggestion/load_accounts`: Latency for loading accounts for reviewer suggestion.

- `reviewer_suggestion/query_groups`: Latency for querying groups for reviewer suggestion.

### Repo Sequences

- `sequence/next_id_latency`: Latency of requesting IDs from repo sequences.

### Plugin

- `plugin/latency`: Latency for plugin invocation.

- `plugin/error_count`: Number of plugin errors.

### Group

- `group/guess_relevant_groups_latency`: Latency for guessing relevant groups.

### Replication Plugin

- `plugins/replication/replication_latency`: Time spent pushing to remote destination.

- `plugins/replication/replication_delay`: Time spent waiting before pushing to remote destination.

- `plugins/replication/replication_retries`: Number of retries when pushing to remote destination.

### License

- `license/cla_check_count`: Total number of CLA check requests.

Part of Gerrit Code Review