This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed @vyaklushin @andrewn @grzesiek @ofernandez2 @sean_carroll group source_code 2023-09-07

Repository egress

Users generate Repository egress events for every fetch operation in Git. It includes commands like git clone, git fetch and git pull, because all of them request data from Gitaly that needs to be delivered to the end user.

Two main clients of Gitaly traffic are GitLab Shell(for SSH traffic) and Workhorse (for HTTP traffic).

Both clients send git-upload-pack command to Gitaly and stream back the Git response that contains requested changes.

Current metrics

Service Number of git-upload-pack events (per day)
Workhorse ~80 million
GitLab Shell ~85 million
Gitaly ~165 million (combined traffic)

Kibana links to see current metrics for each service:

Total number of events:

  • 165 million per day
  • 7.5 million per hour
  • 120 thousand per minute

Logs structure

HTTP traffic

Captured in Workhorse logs.

Fields Description
written_bytes number of bytes transferred
uri namespace and project name
timestamp timestamp of Egress event

SSH traffic

Captured in GitLab Shell logs.

Fields Description
written_bytes number of bytes transferred
project full project name
root_namspace root namespace
timestamp timestamp of Egress event