Add Gitaly data to the usage ping
Gitaly data wasn't available to the team, an this change is a first iteration towards understanding what data we need and how to interpret it. Later more values will be added. For now the most important thing is the filesystem String Array, as that includes data on ext4 exposure and NFS. Part of: https://gitlab.com/gitlab-org/gitlab-ce/issues/60602
This commit is contained in:
parent
4298a28a99
commit
44528f6c44
5 changed files with 34 additions and 3 deletions
5
changelogs/unreleased/zj-gitaly-usage-data.yml
Normal file
5
changelogs/unreleased/zj-gitaly-usage-data.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Add Gitaly data to the usage ping
|
||||||
|
merge_request:
|
||||||
|
author:
|
||||||
|
type: added
|
|
@ -2,8 +2,18 @@
|
||||||
|
|
||||||
module Gitaly
|
module Gitaly
|
||||||
class Server
|
class Server
|
||||||
def self.all
|
class << self
|
||||||
Gitlab.config.repositories.storages.keys.map { |s| Gitaly::Server.new(s) }
|
def all
|
||||||
|
Gitlab.config.repositories.storages.keys.map { |s| Gitaly::Server.new(s) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def count
|
||||||
|
all.size
|
||||||
|
end
|
||||||
|
|
||||||
|
def filesystems
|
||||||
|
all.map(&:filesystem_type).compact.uniq
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :storage
|
attr_reader :storage
|
||||||
|
@ -36,6 +46,10 @@ module Gitaly
|
||||||
storage_status&.writeable
|
storage_status&.writeable
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def filesystem_type
|
||||||
|
storage_status&.fs_type
|
||||||
|
end
|
||||||
|
|
||||||
def address
|
def address
|
||||||
Gitlab::GitalyClient.address(@storage)
|
Gitlab::GitalyClient.address(@storage)
|
||||||
rescue RuntimeError => e
|
rescue RuntimeError => e
|
||||||
|
|
|
@ -136,8 +136,9 @@ module Gitlab
|
||||||
|
|
||||||
def components_usage_data
|
def components_usage_data
|
||||||
{
|
{
|
||||||
gitlab_pages: { enabled: Gitlab.config.pages.enabled, version: Gitlab::Pages::VERSION },
|
|
||||||
git: { version: Gitlab::Git.version },
|
git: { version: Gitlab::Git.version },
|
||||||
|
gitaly: { version: Gitaly::Server.all.first.server_version, servers: Gitaly::Server.count, filesystems: Gitaly::Server.filesystems },
|
||||||
|
gitlab_pages: { enabled: Gitlab.config.pages.enabled, version: Gitlab::Pages::VERSION },
|
||||||
database: { adapter: Gitlab::Database.adapter_name, version: Gitlab::Database.version }
|
database: { adapter: Gitlab::Database.adapter_name, version: Gitlab::Database.version }
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -47,6 +47,12 @@ describe Gitaly::Server do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#filesystem_type" do
|
||||||
|
subject { server.filesystem_type }
|
||||||
|
|
||||||
|
it { is_expected.to be_present }
|
||||||
|
end
|
||||||
|
|
||||||
describe 'request memoization' do
|
describe 'request memoization' do
|
||||||
context 'when requesting multiple properties', :request_store do
|
context 'when requesting multiple properties', :request_store do
|
||||||
it 'uses memoization for the info request' do
|
it 'uses memoization for the info request' do
|
||||||
|
|
|
@ -54,6 +54,7 @@ describe Gitlab::UsageData do
|
||||||
gitlab_shared_runners_enabled
|
gitlab_shared_runners_enabled
|
||||||
gitlab_pages
|
gitlab_pages
|
||||||
git
|
git
|
||||||
|
gitaly
|
||||||
database
|
database
|
||||||
avg_cycle_analytics
|
avg_cycle_analytics
|
||||||
web_ide_commits
|
web_ide_commits
|
||||||
|
@ -205,6 +206,10 @@ describe Gitlab::UsageData do
|
||||||
expect(subject[:git][:version]).to eq(Gitlab::Git.version)
|
expect(subject[:git][:version]).to eq(Gitlab::Git.version)
|
||||||
expect(subject[:database][:adapter]).to eq(Gitlab::Database.adapter_name)
|
expect(subject[:database][:adapter]).to eq(Gitlab::Database.adapter_name)
|
||||||
expect(subject[:database][:version]).to eq(Gitlab::Database.version)
|
expect(subject[:database][:version]).to eq(Gitlab::Database.version)
|
||||||
|
expect(subject[:gitaly][:version]).to be_present
|
||||||
|
expect(subject[:gitaly][:servers]).to be >= 1
|
||||||
|
expect(subject[:gitaly][:filesystems]).to be_an(Array)
|
||||||
|
expect(subject[:gitaly][:filesystems].first).to be_a(String)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue