Skip to content
Snippets Groups Projects
Commit 124ef7dd authored by Jarka Kadlecova's avatar Jarka Kadlecova
Browse files

Add Slack and JIRA services counts to Usage Data

parent b92d5135
No related branches found
No related tags found
No related merge requests found
---
title: Add Slack and JIRA services counts to Usage Data
merge_request:
author:
Loading
@@ -40,14 +40,13 @@ module Gitlab
Loading
@@ -40,14 +40,13 @@ module Gitlab
pages_domains: PagesDomain.count, pages_domains: PagesDomain.count,
projects: Project.count, projects: Project.count,
projects_imported_from_github: Project.where(import_type: 'github').count, projects_imported_from_github: Project.where(import_type: 'github').count,
projects_prometheus_active: PrometheusService.active.count,
protected_branches: ProtectedBranch.count, protected_branches: ProtectedBranch.count,
releases: Release.count, releases: Release.count,
snippets: Snippet.count, snippets: Snippet.count,
todos: Todo.count, todos: Todo.count,
uploads: Upload.count, uploads: Upload.count,
web_hooks: WebHook.count web_hooks: WebHook.count
} }.merge(services_usage)
} }
end end
   
Loading
@@ -64,6 +63,18 @@ module Gitlab
Loading
@@ -64,6 +63,18 @@ module Gitlab
   
usage_data usage_data
end end
def services_usage
types = {
JiraService: :projects_jira_active,
SlackService: :projects_slack_notifications_active,
SlackSlashCommandsService: :projects_slack_slash_active,
PrometheusService: :projects_prometheus_active
}
results = Service.unscoped.where(type: types.keys, active: true).group(:type).count
results.each_with_object({}) { |(key, value), response| response[types[key.to_sym]] = value }
end
end end
end end
end end
require 'spec_helper' require 'spec_helper'
   
describe Gitlab::UsageData do describe Gitlab::UsageData do
let!(:project) { create(:empty_project) } let(:projects) { create_list(:project, 3) }
let!(:project2) { create(:empty_project) } let!(:board) { create(:board, project: projects[0]) }
let!(:board) { create(:board, project: project) }
   
describe '#data' do describe '#data' do
before do
create(:jira_service, project: projects[0])
create(:jira_service, project: projects[1])
create(:prometheus_service, project: projects[1])
create(:service, project: projects[0], type: 'SlackSlashCommandsService', active: true)
create(:service, project: projects[1], type: 'SlackService', active: true)
create(:service, project: projects[2], type: 'SlackService', active: true)
end
subject { described_class.data } subject { described_class.data }
   
it "gathers usage data" do it "gathers usage data" do
Loading
@@ -25,7 +33,7 @@ describe Gitlab::UsageData do
Loading
@@ -25,7 +33,7 @@ describe Gitlab::UsageData do
count_data = subject[:counts] count_data = subject[:counts]
   
expect(count_data[:boards]).to eq(1) expect(count_data[:boards]).to eq(1)
expect(count_data[:projects]).to eq(2) expect(count_data[:projects]).to eq(3)
   
expect(count_data.keys).to match_array(%i( expect(count_data.keys).to match_array(%i(
boards boards
Loading
@@ -49,6 +57,9 @@ describe Gitlab::UsageData do
Loading
@@ -49,6 +57,9 @@ describe Gitlab::UsageData do
notes notes
projects projects
projects_imported_from_github projects_imported_from_github
projects_jira_active
projects_slack_notifications_active
projects_slack_slash_active
projects_prometheus_active projects_prometheus_active
pages_domains pages_domains
protected_branches protected_branches
Loading
@@ -59,6 +70,16 @@ describe Gitlab::UsageData do
Loading
@@ -59,6 +70,16 @@ describe Gitlab::UsageData do
web_hooks web_hooks
)) ))
end end
it 'gathers projects data correctly' do
count_data = subject[:counts]
expect(count_data[:projects]).to eq(3)
expect(count_data[:projects_prometheus_active]).to eq(1)
expect(count_data[:projects_jira_active]).to eq(2)
expect(count_data[:projects_slack_notifications_active]).to eq(2)
expect(count_data[:projects_slack_slash_active]).to eq(1)
end
end end
   
describe '#license_usage_data' do describe '#license_usage_data' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment