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
96bc0929
Commit
96bc0929
authored
Jan 30, 2018
by
Pawel Chojnacki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
address code review remarks, cleanup testacases
parent
c952aa52
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
22 additions
and
26 deletions
+22
-26
app/controllers/projects/prometheus/metrics_controller.rb
app/controllers/projects/prometheus/metrics_controller.rb
+1
-10
app/models/prometheus_metric.rb
app/models/prometheus_metric.rb
+3
-3
app/serializers/prometheus_metric_entity.rb
app/serializers/prometheus_metric_entity.rb
+3
-0
lib/gitlab/prometheus/metric_group.rb
lib/gitlab/prometheus/metric_group.rb
+1
-1
spec/ee/fixtures/api/schemas/prometheus/metrics.json
spec/ee/fixtures/api/schemas/prometheus/metrics.json
+6
-0
spec/ee/spec/controllers/projects/prometheus/metrics_controller_spec.rb
...ontrollers/projects/prometheus/metrics_controller_spec.rb
+0
-1
spec/lib/gitlab/import_export/all_models.yml
spec/lib/gitlab/import_export/all_models.yml
+0
-1
spec/lib/gitlab/prometheus/queries/validate_query_spec.rb
spec/lib/gitlab/prometheus/queries/validate_query_spec.rb
+2
-0
spec/models/prometheus_metric_spec.rb
spec/models/prometheus_metric_spec.rb
+6
-10
No files found.
app/controllers/projects/prometheus/metrics_controller.rb
View file @
96bc0929
...
...
@@ -2,11 +2,8 @@ module Projects
module
Prometheus
class
MetricsController
<
Projects
::
ApplicationController
before_action
:authorize_admin_project!
before_action
:require_prometheus_metrics!
def
active_common
render_404
unless
prometheus_service
.
present?
respond_to
do
|
format
|
format
.
json
do
matched_metrics
=
prometheus_service
.
matched_metrics
||
{}
...
...
@@ -21,8 +18,6 @@ module Projects
end
def
validate_query
render_404
unless
prometheus_service
.
present?
respond_to
do
|
format
|
format
.
json
do
result
=
prometheus_service
.
validate_query
(
params
[
:query
])
...
...
@@ -87,7 +82,7 @@ module Projects
respond_to
do
|
format
|
format
.
html
do
redirect_to
edit_project_service_path
(
project
,
prometheus_s
ervice
),
status:
303
redirect_to
edit_project_service_path
(
project
,
PrometheusS
ervice
),
status:
303
end
format
.
json
do
head
:ok
...
...
@@ -104,10 +99,6 @@ module Projects
def
prometheus_service
@prometheus_service
||=
project
.
find_or_initialize_service
(
'prometheus'
)
end
def
require_prometheus_metrics!
render_404
unless
prometheus_service
.
present?
end
end
end
end
app/models/prometheus_metric.rb
View file @
96bc0929
...
...
@@ -6,14 +6,14 @@ class PrometheusMetric < ActiveRecord::Base
validates
:query
,
presence:
true
validates
:group
,
presence:
true
GROUP_
NAM
ES
=
{
GROUP_
TITL
ES
=
{
business:
'Business metrics'
,
response:
'Response metrics'
,
system:
'System metrics'
}.
freeze
def
group_t
ext
GROUP_
NAM
ES
[
group
.
to_sym
]
def
group_t
itle
GROUP_
TITL
ES
[
group
.
to_sym
]
end
def
to_query_metric
...
...
app/serializers/prometheus_metric_entity.rb
View file @
96bc0929
...
...
@@ -4,6 +4,9 @@ class PrometheusMetricEntity < Grape::Entity
expose
:id
expose
:title
expose
:group
expose
:group_title
expose
:edit_path
do
|
prometheus_metric
|
edit_project_prometheus_metric_path
(
prometheus_metric
.
project
,
prometheus_metric
)
end
...
...
lib/gitlab/prometheus/metric_group.rb
View file @
96bc0929
...
...
@@ -15,7 +15,7 @@ module Gitlab
end
def
self
.
custom_metrics
(
project
)
project
.
prometheus_metrics
.
all
.
group_by
(
&
:group_t
ext
).
map
do
|
name
,
metrics
|
project
.
prometheus_metrics
.
all
.
group_by
(
&
:group_t
itle
).
map
do
|
name
,
metrics
|
MetricGroup
.
new
(
name:
name
,
priority:
0
,
metrics:
metrics
.
map
(
&
:to_query_metric
))
end
end
...
...
spec/ee/fixtures/api/schemas/prometheus/metrics.json
View file @
96bc0929
...
...
@@ -12,6 +12,12 @@
"title"
:
{
"type"
:
"string"
},
"group"
:
{
"type"
:
"string"
},
"group_title"
:
{
"type"
:
"string"
},
"edit_path"
:
{
"type"
:
"string"
}
...
...
spec/ee/spec/controllers/projects/prometheus/metrics_controller_spec.rb
View file @
96bc0929
...
...
@@ -45,7 +45,6 @@ describe Projects::Prometheus::MetricsController do
describe
'GET #index'
do
context
'with custom metric present'
do
let!
(
:prometheus_metric
)
{
create
(
:prometheus_metric
,
project:
project
)
}
let
(
:metrics_list_repsonse
)
{
}
it
'returns a list of metrics'
do
get
:index
,
project_params
(
format: :json
)
...
...
spec/lib/gitlab/import_export/all_models.yml
View file @
96bc0929
...
...
@@ -324,4 +324,3 @@ issue_assignees:
epic_issues
:
-
issue
-
epic
spec/lib/gitlab/prometheus/queries/validate_query_spec.rb
View file @
96bc0929
...
...
@@ -25,6 +25,8 @@ describe Gitlab::Prometheus::Queries::ValidateQuery do
it
'passes query to prometheus'
do
expect
(
subject
.
query
(
query
)).
to
eq
(
valid:
false
,
error:
message
)
expect
(
client
).
to
have_received
(
:query
).
with
(
query
)
end
end
end
spec/models/prometheus_metric_spec.rb
View file @
96bc0929
...
...
@@ -11,17 +11,17 @@ describe PrometheusMetric, type: :model do
describe
'#group_text'
do
let!
(
:metric
)
{
create
(
:prometheus_metric
)
}
shared_examples
'group_t
ext
'
do
|
group
,
text
|
subject
{
build
(
:prometheus_metric
,
group:
group
)
}
shared_examples
'group_t
itle
'
do
|
group
,
text
|
subject
{
build
(
:prometheus_metric
,
group:
group
)
.
group_title
}
it
"returns text
#{
text
}
for group
#{
group
}
"
do
expect
(
subject
.
group_text
).
to
eq
(
text
)
expect
(
subject
).
to
eq
(
text
)
end
end
it_behaves_like
'group_t
ext
'
,
:business
,
'Business metrics'
it_behaves_like
'group_t
ext
'
,
:response
,
'Response metrics'
it_behaves_like
'group_t
ext
'
,
:system
,
'System metrics'
it_behaves_like
'group_t
itle
'
,
:business
,
'Business metrics'
it_behaves_like
'group_t
itle
'
,
:response
,
'Response metrics'
it_behaves_like
'group_t
itle
'
,
:system
,
'System metrics'
end
describe
'#to_query_metric'
do
...
...
@@ -45,10 +45,6 @@ describe PrometheusMetric, type: :model do
expect
(
subject
.
to_query_metric
.
weight
).
to
eq
(
0
)
end
it
'queryable metric has weight 0'
do
expect
(
subject
.
to_query_metric
.
weight
).
to
eq
(
0
)
end
it
'queryable metrics has query description'
do
queries
=
[
{
...
...
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