:title: Metrics Metrics ======= Event Overview -------------- The following table illustrates the event and pipeline processing sequence as it relates to some of the metrics described in :ref:`statsd`. This is intended as general guidance only and is not an exhaustive list. +----------------------------------------+------+------+------+--------------------------------------+ | Event | Metrics | Attribute | +========================================+======+======+======+======================================+ | Event generated by source | | | | event.timestamp | +----------------------------------------+------+ + +--------------------------------------+ | Enqueued into driver queue | | | | | +----------------------------------------+------+ + +--------------------------------------+ | Enqueued into tenant trigger queue | | | | event.arrived_at_scheduler_timestamp | +----------------------------------------+ + [8] + +--------------------------------------+ | Forwarded to matching pipelines | [1] | | | | +----------------------------------------+ + + +--------------------------------------+ | Changes enqueued ahead | | | | | +----------------------------------------+ + + +--------------------------------------+ | Change enqueued | | | | item.enqueue_time | +----------------------------------------+------+------+ +--------------------------------------+ | Changes enqueued behind | | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Set item configuration | | | | build_set.configured_time | +----------------------------------------+------+------+ +--------------------------------------+ | Request files changed (if needed) | | | | | +----------------------------------------+ +------+ +--------------------------------------+ | Request merge | [2] | | | | +----------------------------------------+ +------+ +--------------------------------------+ | Wait for merge (and files if needed) | | | [9] | | +----------------------------------------+------+------+ +--------------------------------------+ | Generate dynamic layout (if needed) | [3] | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Freeze job graph | [4] | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Request global repo state (if needed) | | | | build_set.repo_state_request_time | +----------------------------------------+ [5] +------+ +--------------------------------------+ | Wait for global repo state (if needed) | | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Deduplicate jobs | | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Acquire semaphore (non-resources-first)| | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Request nodes | | | | request.created_time | +----------------------------------------+ [6] +------+ +--------------------------------------+ | Wait for nodes | | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Acquire semaphore (resources-first) | | | | | +----------------------------------------+------+------+ +--------------------------------------+ | Enqueue build request | | | | build.execute_time | +----------------------------------------+ [7] +------+ +--------------------------------------+ | Executor starts job | | | | build.start_time | +----------------------------------------+------+------+------+--------------------------------------+ ====== ============================= Metric Name ====== ============================= 1 event_enqueue_processing_time 2 merge_request_time 3 layout_generation_time 4 job_freeze_time 5 repo_state_time 6 node_request_time 7 job_wait_time 8 event_enqueue_time 9 event_job_time ====== =============================