Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
6228b9f1
Commit
6228b9f1
authored
Feb 23, 2022
by
Adam Hegyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Exclude negative values from VSA aggregation
parent
7c54b4fa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
12 deletions
+19
-12
ee/app/services/analytics/cycle_analytics/data_loader_service.rb
...services/analytics/cycle_analytics/data_loader_service.rb
+8
-3
ee/spec/services/analytics/cycle_analytics/consistency_check_service_spec.rb
...alytics/cycle_analytics/consistency_check_service_spec.rb
+6
-6
ee/spec/services/analytics/cycle_analytics/data_loader_service_spec.rb
...ces/analytics/cycle_analytics/data_loader_service_spec.rb
+5
-3
No files found.
ee/app/services/analytics/cycle_analytics/data_loader_service.rb
View file @
6228b9f1
...
@@ -101,7 +101,12 @@ module Analytics
...
@@ -101,7 +101,12 @@ module Analytics
records
.
each_value
do
|
record
|
records
.
each_value
do
|
record
|
stages
.
each
do
|
stage
|
stages
.
each
do
|
stage
|
next
if
record
[
event_column_name
(
stage
.
start_event
)].
nil?
start_event
=
record
[
event_column_name
(
stage
.
start_event
)]
end_event
=
record
[
event_column_name
(
stage
.
end_event
)]
next
if
start_event
.
nil?
# Avoid negative duration values
next
if
end_event
&&
start_event
>
end_event
data
<<
{
data
<<
{
stage_event_hash_id:
stage
.
stage_event_hash_id
,
stage_event_hash_id:
stage
.
stage_event_hash_id
,
...
@@ -111,8 +116,8 @@ module Analytics
...
@@ -111,8 +116,8 @@ module Analytics
author_id:
record
[
'author_id'
],
author_id:
record
[
'author_id'
],
milestone_id:
record
[
'milestone_id'
],
milestone_id:
record
[
'milestone_id'
],
state_id:
record
[
'state_id'
],
state_id:
record
[
'state_id'
],
start_event_timestamp:
record
[
event_column_name
(
stage
.
start_event
)]
,
start_event_timestamp:
start_event
,
end_event_timestamp:
record
[
event_column_name
(
stage
.
end_event
)]
end_event_timestamp:
end_event
}
}
if
data
.
size
==
UPSERT_LIMIT
if
data
.
size
==
UPSERT_LIMIT
...
...
ee/spec/services/analytics/cycle_analytics/consistency_check_service_spec.rb
View file @
6228b9f1
...
@@ -60,9 +60,9 @@ RSpec.describe Analytics::CycleAnalytics::ConsistencyCheckService, :aggregate_fa
...
@@ -60,9 +60,9 @@ RSpec.describe Analytics::CycleAnalytics::ConsistencyCheckService, :aggregate_fa
context
'for issue based stage'
do
context
'for issue based stage'
do
let
(
:event_model
)
{
Analytics
::
CycleAnalytics
::
IssueStageEvent
}
let
(
:event_model
)
{
Analytics
::
CycleAnalytics
::
IssueStageEvent
}
let!
(
:record1
)
{
create
(
:issue
,
:closed
,
project:
project1
)
}
let!
(
:record1
)
{
create
(
:issue
,
:closed
,
project:
project1
,
created_at:
1
.
month
.
ago
)
}
let!
(
:record2
)
{
create
(
:issue
,
:closed
,
project:
project2
)
}
let!
(
:record2
)
{
create
(
:issue
,
:closed
,
project:
project2
,
created_at:
1
.
month
.
ago
)
}
let!
(
:record3
)
{
create
(
:issue
,
:closed
,
project:
project2
)
}
let!
(
:record3
)
{
create
(
:issue
,
:closed
,
project:
project2
,
created_at:
1
.
month
.
ago
)
}
let!
(
:stage
)
{
create
(
:cycle_analytics_group_stage
,
group:
group
,
start_event_identifier: :issue_created
,
end_event_identifier: :issue_closed
)
}
let!
(
:stage
)
{
create
(
:cycle_analytics_group_stage
,
group:
group
,
start_event_identifier: :issue_created
,
end_event_identifier: :issue_closed
)
}
...
@@ -71,9 +71,9 @@ RSpec.describe Analytics::CycleAnalytics::ConsistencyCheckService, :aggregate_fa
...
@@ -71,9 +71,9 @@ RSpec.describe Analytics::CycleAnalytics::ConsistencyCheckService, :aggregate_fa
context
'for merge request based stage'
do
context
'for merge request based stage'
do
let
(
:event_model
)
{
Analytics
::
CycleAnalytics
::
MergeRequestStageEvent
}
let
(
:event_model
)
{
Analytics
::
CycleAnalytics
::
MergeRequestStageEvent
}
let!
(
:record1
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project1
)
}
let!
(
:record1
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project1
,
created_at:
2
.
months
.
ago
)
}
let!
(
:record2
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project2
)
}
let!
(
:record2
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project2
,
created_at:
2
.
months
.
ago
)
}
let!
(
:record3
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project2
)
}
let!
(
:record3
)
{
create
(
:merge_request
,
:closed_last_month
,
project:
project2
,
created_at:
2
.
months
.
ago
)
}
let!
(
:stage
)
{
create
(
:cycle_analytics_group_stage
,
group:
group
,
start_event_identifier: :merge_request_created
,
end_event_identifier: :merge_request_closed
)
}
let!
(
:stage
)
{
create
(
:cycle_analytics_group_stage
,
group:
group
,
start_event_identifier: :merge_request_created
,
end_event_identifier: :merge_request_closed
)
}
...
...
ee/spec/services/analytics/cycle_analytics/data_loader_service_spec.rb
View file @
6228b9f1
...
@@ -181,9 +181,11 @@ RSpec.describe Analytics::CycleAnalytics::DataLoaderService do
...
@@ -181,9 +181,11 @@ RSpec.describe Analytics::CycleAnalytics::DataLoaderService do
end
end
context
'when Issue data is present'
do
context
'when Issue data is present'
do
let_it_be
(
:issue1
)
{
create
(
:issue
,
project:
project1
,
closed_at:
Time
.
current
)
}
let_it_be
(
:issue1
)
{
create
(
:issue
,
project:
project1
,
closed_at:
5
.
minutes
.
from_now
)
}
let_it_be
(
:issue2
)
{
create
(
:issue
,
project:
project1
,
closed_at:
Time
.
current
)
}
let_it_be
(
:issue2
)
{
create
(
:issue
,
project:
project1
,
closed_at:
5
.
minutes
.
from_now
)
}
let_it_be
(
:issue3
)
{
create
(
:issue
,
project:
project2
,
closed_at:
Time
.
current
)
}
let_it_be
(
:issue3
)
{
create
(
:issue
,
project:
project2
,
closed_at:
5
.
minutes
.
from_now
)
}
# invalid the creation time would be later than closed_at, this should not be aggregated
let_it_be
(
:issue4
)
{
create
(
:issue
,
project:
project2
,
closed_at:
5
.
minutes
.
ago
)
}
it
'inserts stage records'
do
it
'inserts stage records'
do
expected_data
=
[
issue1
,
issue2
,
issue3
].
map
do
|
issue
|
expected_data
=
[
issue1
,
issue2
,
issue3
].
map
do
|
issue
|
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment