Package registry
Summary
Section titled “Summary”The package registry is used as a private or public registry for a variety of supported package managers.
The following package types are supported:
- Maven (Generally available)
- npm (Generally available)
- Nuget (Generally available)
- PyPI (Generally available)
- Terraform (Generally available)
- Generic packages (Generally available)
- Composer (Beta)
- Helm (Beta)
- Conan 1 (Experiment)
- Conan 2 (Experiment)
- Debian (Experiment)
- Go (Experiment)
- Ruby gems (Experiment)
Runbooks
Section titled “Runbooks”Dependencies
Section titled “Dependencies”- GitLab Rails Console (authentication, API, GraphQL)
- PostgreSQL database (package metadata storage)
- Redis (session management)
- Google Cloud (object storage)
- Workhorse
- Sidekiq
Observability
Section titled “Observability”Troubleshooting
Section titled “Troubleshooting”Historically, package registry issues have been related to code changes or performance issues (for example, HTTP response times or slow database queries).
Below are some steps to diagnose common issues.
Identify code changes
Section titled “Identify code changes”To check the latest commits from package registry related files, including EE code, run the following command:
git log -10 --pretty=format:"%h %ad %an: %s" --date=short -- "lib/**/*package*" "app/graphql/**/*package*" "app/helpers/**/*package*" "app/policies/**/*package*" "app/policies/group_policy.rb" "app/policies/project_policy.rb" "ee/**/*package*"
Monitor performance issues
Section titled “Monitor performance issues”Check the main package registry Grafana dashboard for an overview of metrics for each supported package endpoint.
Metrics include:
- API request rates
- API latency
- PostgreSQL latency per query
- Sidekiq completion and error rates
Use Kibana to dig deeper by running queries based on the correlation_id
.
If there is a Sentry alert, the correlation_id
can be found under Tags
.
Alternatively you can identify the correlation_id
for a request in Kibana using the column json.correlation_id
.
The correlation_id
links the request to services involved in processing the request (like GitLab Rails, PostgreSQL, Redis, Workhorse, and Sidekiq).
Alerts
Section titled “Alerts”References
Section titled “References”Primary Contacts
Section titled “Primary Contacts”- Primary Owner: Package registry team
- Slack Channel:
#g_package-registry
(GitLab internal) - Issue Tracker: Package registry issues