diff options
Diffstat (limited to 'spec/lib/gitlab/usage_data_spec.rb')
-rw-r--r-- | spec/lib/gitlab/usage_data_spec.rb | 72 |
1 files changed, 50 insertions, 22 deletions
diff --git a/spec/lib/gitlab/usage_data_spec.rb b/spec/lib/gitlab/usage_data_spec.rb index 602f6640d72..b1581bf02a6 100644 --- a/spec/lib/gitlab/usage_data_spec.rb +++ b/spec/lib/gitlab/usage_data_spec.rb @@ -382,14 +382,15 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do describe 'usage_activity_by_stage_monitor' do it 'includes accurate usage_activity_by_stage data' do for_defined_days_back do - user = create(:user, dashboard: 'operations') + user = create(:user, dashboard: 'operations') cluster = create(:cluster, user: user) - create(:project, creator: user) + project = create(:project, creator: user) create(:clusters_applications_prometheus, :installed, cluster: cluster) create(:project_tracing_setting) create(:project_error_tracking_setting) create(:incident) create(:incident, alert_management_alert: create(:alert_management_alert)) + create(:alert_management_http_integration, :active, project: project) end expect(described_class.usage_activity_by_stage_monitor({})).to include( @@ -399,10 +400,12 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do projects_with_tracing_enabled: 2, projects_with_error_tracking_enabled: 2, projects_with_incidents: 4, - projects_with_alert_incidents: 2 + projects_with_alert_incidents: 2, + projects_with_enabled_alert_integrations_histogram: { '1' => 2 } ) - expect(described_class.usage_activity_by_stage_monitor(described_class.last_28_days_time_period)).to include( + data_28_days = described_class.usage_activity_by_stage_monitor(described_class.last_28_days_time_period) + expect(data_28_days).to include( clusters: 1, clusters_applications_prometheus: 1, operations_dashboard_default_dashboard: 1, @@ -411,6 +414,8 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do projects_with_incidents: 2, projects_with_alert_incidents: 1 ) + + expect(data_28_days).not_to include(:projects_with_enabled_alert_integrations_histogram) end end @@ -528,14 +533,14 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do expect(subject.keys).to include(*UsageDataHelpers::USAGE_DATA_KEYS) end - it 'gathers usage counts' do + it 'gathers usage counts', :aggregate_failures do count_data = subject[:counts] expect(count_data[:boards]).to eq(1) expect(count_data[:projects]).to eq(4) - expect(count_data.values_at(*UsageDataHelpers::SMAU_KEYS)).to all(be_an(Integer)) expect(count_data.keys).to include(*UsageDataHelpers::COUNTS_KEYS) expect(UsageDataHelpers::COUNTS_KEYS - count_data.keys).to be_empty + expect(count_data.values).to all(be_a_kind_of(Integer)) end it 'gathers usage counts correctly' do @@ -1129,12 +1134,40 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do end end + describe ".operating_system" do + let(:ohai_data) { { "platform" => "ubuntu", "platform_version" => "20.04" } } + + before do + allow_next_instance_of(Ohai::System) do |ohai| + allow(ohai).to receive(:data).and_return(ohai_data) + end + end + + subject { described_class.operating_system } + + it { is_expected.to eq("ubuntu-20.04") } + + context 'when on Debian with armv architecture' do + let(:ohai_data) { { "platform" => "debian", "platform_version" => "10", 'kernel' => { 'machine' => 'armv' } } } + + it { is_expected.to eq("raspbian-10") } + end + end + describe ".system_usage_data_settings" do + before do + allow(described_class).to receive(:operating_system).and_return('ubuntu-20.04') + end + subject { described_class.system_usage_data_settings } it 'gathers settings usage data', :aggregate_failures do expect(subject[:settings][:ldap_encrypted_secrets_enabled]).to eq(Gitlab::Auth::Ldap::Config.encrypted_secrets.active?) end + + it 'populates operating system information' do + expect(subject[:settings][:operating_system]).to eq('ubuntu-20.04') + end end end @@ -1325,7 +1358,7 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do let(:categories) { ::Gitlab::UsageDataCounters::HLLRedisCounter.categories } let(:ineligible_total_categories) do - %w[source_code ci_secrets_management incident_management_alerts snippets terraform pipeline_authoring] + %w[source_code ci_secrets_management incident_management_alerts snippets terraform epics_usage] end it 'has all known_events' do @@ -1347,25 +1380,20 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do end end - describe '.aggregated_metrics_weekly' do - subject(:aggregated_metrics_payload) { described_class.aggregated_metrics_weekly } + describe '.aggregated_metrics_data' do + it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate methods', :aggregate_failures do + expected_payload = { + counts_weekly: { aggregated_metrics: { global_search_gmau: 123 } }, + counts_monthly: { aggregated_metrics: { global_search_gmau: 456 } }, + counts: { aggregate_global_search_gmau: 789 } + } - it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate#weekly_data', :aggregate_failures do expect_next_instance_of(::Gitlab::Usage::Metrics::Aggregates::Aggregate) do |instance| expect(instance).to receive(:weekly_data).and_return(global_search_gmau: 123) + expect(instance).to receive(:monthly_data).and_return(global_search_gmau: 456) + expect(instance).to receive(:all_time_data).and_return(global_search_gmau: 789) end - expect(aggregated_metrics_payload).to eq(aggregated_metrics: { global_search_gmau: 123 }) - end - end - - describe '.aggregated_metrics_monthly' do - subject(:aggregated_metrics_payload) { described_class.aggregated_metrics_monthly } - - it 'uses ::Gitlab::Usage::Metrics::Aggregates::Aggregate#monthly_data', :aggregate_failures do - expect_next_instance_of(::Gitlab::Usage::Metrics::Aggregates::Aggregate) do |instance| - expect(instance).to receive(:monthly_data).and_return(global_search_gmau: 123) - end - expect(aggregated_metrics_payload).to eq(aggregated_metrics: { global_search_gmau: 123 }) + expect(described_class.aggregated_metrics_data).to eq(expected_payload) end end |