Commit 44528f6c authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg

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
parent 4298a28a
---
title: Add Gitaly data to the usage ping
merge_request:
author:
type: added
...@@ -2,8 +2,18 @@ ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment