gerrit/Documentation/metrics.txt
Han-Wen Nienhuys f7f6712cca ReceiveCommits: expose change IDs touched; add metrics
ReceiveCommits now populates the change IDs that were successfully
updated.

AsyncReceiveCommits uses this to record the following metrics:

 receivecommits/changes - number of changes uploaded in a single push.
 receivecommits/latency - average delay per updated change
 receivecommits/timeout - rate of push timeouts

Change-Id: Ibbee943ec87141e8d06cf549f40a98f0111353b0
2018-10-10 12:48:55 +02:00

199 lines
7.2 KiB
Plaintext

= Gerrit Code Review - Metrics
Metrics about Gerrit's internal state can be sent to external monitoring systems
via plugins. See the link:dev-plugins.html#metrics[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_counts`: Distribution of number of attempts made
by RetryHelper to execute an action (1 == single attempt, no retry)
* `action/retry_timeout_count`: Number of action executions of RetryHelper
that ultimately timed out
=== Pushes
* `receivecommits/changes`: histogram of number of changes processed
in a single upload, split up by update type (new change created,
existing changed updated, change autoclosed).
* `receivecommits/latency`: latency per change for processing a push,
split up by update type (create+replace, and autoclose)
* `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/usage`: CPU time used by the Gerrit process.
* `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/thread/num_live`: Current live thread count.
=== 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.
=== HTTP
* `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.
=== SQL connections
* `sql/connection_pool/connections`: SQL database connections.
=== 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.
=== 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.
=== BatchUpdate
* `batch_update/execute_change_ops`: BatchUpdate change update latency,
excluding reindexing
=== NoteDb
* `notedb/update_latency`: NoteDb update latency by table.
* `notedb/stage_update_latency`: Latency for staging updates to NoteDb by table.
* `notedb/read_latency`: NoteDb read latency by table.
* `notedb/parse_latency`: NoteDb parse latency by table.
* `notedb/auto_rebuild_latency`: NoteDb auto-rebuilding latency by table.
* `notedb/auto_rebuild_failure_count`: NoteDb auto-rebuilding attempts that
failed by table.
* `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.
=== Permissions
* `permissions/project_state/computation_latency`: Latency to compute current access
sections on a project by traversing it's parents.
* `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.
=== 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.
GERRIT
------
Part of link:index.html[Gerrit Code Review]
SEARCHBOX
---------