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
18183f40
Commit
18183f40
authored
Apr 16, 2019
by
syasonik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use existing common metrics
parent
7eb796e6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1 addition
and
276 deletions
+1
-276
app/controllers/projects/environments_controller.rb
app/controllers/projects/environments_controller.rb
+0
-1
app/services/metrics_dashboard_service.rb
app/services/metrics_dashboard_service.rb
+1
-1
config/prometheus/system_dashboard.yml
config/prometheus/system_dashboard.yml
+0
-274
No files found.
app/controllers/projects/environments_controller.rb
View file @
18183f40
...
@@ -13,7 +13,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
...
@@ -13,7 +13,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
before_action
only:
[
:metrics
,
:additional_metrics
]
do
before_action
only:
[
:metrics
,
:additional_metrics
]
do
push_frontend_feature_flag
(
:metrics_time_window
)
push_frontend_feature_flag
(
:metrics_time_window
)
push_frontend_feature_flag
(
:environment_metrics_use_prometheus_endpoint
)
push_frontend_feature_flag
(
:environment_metrics_use_prometheus_endpoint
)
push_frontend_feature_flag
(
:environment_metrics_show_multiple_dashboards
)
end
end
def
index
def
index
...
...
app/services/metrics_dashboard_service.rb
View file @
18183f40
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
# Fetches the metrics dashboard layout and supplemented the output with DB info.
# Fetches the metrics dashboard layout and supplemented the output with DB info.
class
MetricsDashboardService
class
MetricsDashboardService
SYSTEM_DASHBOARD_NAME
=
'
system_dashboard
'
SYSTEM_DASHBOARD_NAME
=
'
common_metrics
'
SYSTEM_DASHBOARD_PATH
=
Rails
.
root
.
join
(
'config'
,
'prometheus'
,
"
#{
SYSTEM_DASHBOARD_NAME
}
.yml"
)
SYSTEM_DASHBOARD_PATH
=
Rails
.
root
.
join
(
'config'
,
'prometheus'
,
"
#{
SYSTEM_DASHBOARD_NAME
}
.yml"
)
def
initialize
(
project
)
def
initialize
(
project
)
...
...
config/prometheus/system_dashboard.yml
deleted
100644 → 0
View file @
7eb796e6
dashboard
:
'
System
Metrics'
order
:
0
panel_groups
:
# NGINX Ingress metrics for pre-0.16.0 versions
-
group
:
Response metrics (NGINX Ingress VTS)
priority
:
10
panels
:
-
type
:
area-chart
title
:
"
Throughput"
y_label
:
"
Requests
/
Sec"
metrics
:
-
id
:
response_metrics_nginx_ingress_throughput_status_code
query_range
:
'
sum(rate(nginx_upstream_responses_total{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m]))
by
(status_code)'
unit
:
req / sec
label
:
Status Code
required_metrics
:
-
nginx_upstream_responses_total
series
:
-
label
:
status_code
when
:
-
value
:
2xx
color
:
green
-
value
:
4xx
color
:
orange
-
value
:
5xx
color
:
red
-
type
:
area-chart
title
:
"
Latency"
y_label
:
"
Latency
(ms)"
metrics
:
-
id
:
response_metrics_nginx_ingress_latency_pod_average
query_range
:
'
avg(nginx_upstream_response_msecs_avg{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"})'
label
:
Pod average
unit
:
ms
required_metrics
:
-
nginx_upstream_response_msecs_avg
-
type
:
area-chart
title
:
"
HTTP
Error
Rate"
y_label
:
"
HTTP
Errors"
metrics
:
-
id
:
response_metrics_nginx_ingress_http_error_rate
query_range
:
'
sum(rate(nginx_upstream_responses_total{status_code="5xx",
upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m]))
/
sum(rate(nginx_upstream_responses_total{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m]))
*
100'
label
:
5xx Errors
unit
:
"
%"
required_metrics
:
-
nginx_upstream_responses_total
# NGINX Ingress metrics for post-0.16.0 versions
-
group
:
Response metrics (NGINX Ingress)
priority
:
10
panels
:
-
type
:
area-chart
title
:
"
Throughput"
y_label
:
"
Requests
/
Sec"
metrics
:
-
id
:
response_metrics_nginx_ingress_16_throughput_status_code
query_range
:
'
sum(label_replace(rate(nginx_ingress_controller_requests{namespace="%{kube_namespace}",ingress=~".*%{ci_environment_slug}.*"}[2m]),
"status_code",
"${1}xx",
"status",
"(.).."))
by
(status_code)'
unit
:
req / sec
required_metrics
:
-
nginx_ingress_controller_requests
label
:
Status Code
series
:
-
label
:
status_code
when
:
-
value
:
2xx
color
:
green
-
value
:
3xx
color
:
blue
-
value
:
4xx
color
:
orange
-
value
:
5xx
color
:
red
-
type
:
area-chart
title
:
"
Latency"
y_label
:
"
Latency
(ms)"
metrics
:
-
id
:
response_metrics_nginx_ingress_16_latency_pod_average
query_range
:
'
sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_sum{namespace="%{kube_namespace}",ingress=~".*%{ci_environment_slug}.*"}[2m]))
/
sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_count{namespace="%{kube_namespace}",ingress=~".*%{ci_environment_slug}.*"}[2m]))
*
1000'
label
:
Pod average
unit
:
ms
required_metrics
:
-
nginx_ingress_controller_ingress_upstream_latency_seconds_sum
-
type
:
area-chart
title
:
"
HTTP
Error
Rate"
y_label
:
"
HTTP
Errors"
metrics
:
-
id
:
response_metrics_nginx_ingress_16_http_error_rate
query_range
:
'
sum(rate(nginx_ingress_controller_requests{status=~"5.*",namespace="%{kube_namespace}",ingress=~".*%{ci_environment_slug}.*"}[2m]))
/
sum(rate(nginx_ingress_controller_requests{namespace="%{kube_namespace}",ingress=~".*%{ci_environment_slug}.*"}[2m]))
*
100'
label
:
5xx Errors
unit
:
"
%"
required_metrics
:
-
nginx_ingress_controller_requests
-
group
:
Response metrics (HA Proxy)
priority
:
10
panels
:
-
type
:
area-chart
title
:
"
Throughput"
y_label
:
"
Requests
/
Sec"
metrics
:
-
id
:
response_metrics_ha_proxy_throughput_status_code
query_range
:
'
sum(rate(haproxy_frontend_http_requests_total{%{environment_filter}}[2m]))
by
(code)'
unit
:
req / sec
label
:
Status Code
required_metrics
:
-
haproxy_frontend_http_requests_total
series
:
-
label
:
status_code
when
:
-
value
:
2xx
color
:
green
-
value
:
4xx
color
:
yellow
-
value
:
5xx
color
:
red
-
type
:
area-chart
title
:
"
HTTP
Error
Rate"
y_label
:
"
Error
Rate
(%)"
metrics
:
-
id
:
response_metrics_ha_proxy_http_error_rate
query_range
:
'
sum(rate(haproxy_frontend_http_responses_total{code="5xx",%{environment_filter}}[2m]))
/
sum(rate(haproxy_frontend_http_responses_total{%{environment_filter}}[2m]))'
label
:
HTTP Errors
unit
:
"
%"
required_metrics
:
-
haproxy_frontend_http_responses_total
-
group
:
Response metrics (AWS ELB)
priority
:
10
panels
:
-
type
:
area-chart
title
:
"
Throughput"
y_label
:
"
Requests
/
Sec"
metrics
:
-
id
:
response_metrics_aws_elb_throughput_requests
query_range
:
'
sum(aws_elb_request_count_sum{%{environment_filter}})
/
60'
label
:
Total
unit
:
req / sec
required_metrics
:
-
aws_elb_request_count_sum
-
type
:
area-chart
title
:
"
Latency"
y_label
:
"
Latency
(ms)"
metrics
:
-
id
:
response_metrics_aws_elb_latency_average
query_range
:
'
avg(aws_elb_latency_average{%{environment_filter}})
*
1000'
label
:
Average
unit
:
ms
required_metrics
:
-
aws_elb_latency_average
-
type
:
area-chart
title
:
"
HTTP
Error
Rate"
y_label
:
"
Error
Rate
(%)"
metrics
:
-
id
:
response_metrics_aws_elb_http_error_rate
query_range
:
'
sum(aws_elb_httpcode_backend_5_xx_sum{%{environment_filter}})
/
sum(aws_elb_request_count_sum{%{environment_filter}})'
label
:
HTTP Errors
unit
:
"
%"
required_metrics
:
-
aws_elb_request_count_sum
-
aws_elb_httpcode_backend_5_xx_sum
-
group
:
Response metrics (NGINX)
priority
:
10
panels
:
-
type
:
area-chart
title
:
"
Throughput"
y_label
:
"
Requests
/
Sec"
metrics
:
-
id
:
response_metrics_nginx_throughput_status_code
query_range
:
'
sum(rate(nginx_server_requests{server_zone!="*",
server_zone!="_",
%{environment_filter}}[2m]))
by
(code)'
unit
:
req / sec
required_metrics
:
-
nginx_server_requests
label
:
Status Code
series
:
-
label
:
status_code
when
:
-
value
:
2xx
color
:
green
-
value
:
4xx
color
:
orange
-
value
:
5xx
color
:
red
-
type
:
area-chart
title
:
"
Latency"
y_label
:
"
Latency
(ms)"
metrics
:
-
id
:
response_metrics_nginx_latency
query_range
:
'
avg(nginx_server_requestMsec{%{environment_filter}})'
label
:
Upstream
unit
:
ms
required_metrics
:
-
nginx_server_requestMsec
-
type
:
area-chart
title
:
"
HTTP
Error
Rate"
y_label
:
"
HTTP
500
Errors
/
Sec"
metrics
:
-
id
:
response_metrics_nginx_http_error_rate
query_range
:
'
sum(rate(nginx_server_requests{code="5xx",
%{environment_filter}}[2m]))'
label
:
HTTP Errors
unit
:
"
errors
/
sec"
required_metrics
:
-
nginx_server_requests
-
group
:
System metrics (Kubernetes)
priority
:
5
panels
:
-
type
:
area-chart
title
:
"
Memory
Usage
(Total)"
y_label
:
"
Total
Memory
Used"
metrics
:
-
id
:
system_metrics_kubernetes_container_memory_total
query_range
:
'
avg(sum(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-(.*)",namespace="%{kube_namespace}"})
by
(job))
without
(job)
/1024/1024/1024'
label
:
Total
unit
:
GB
required_metrics
:
-
container_memory_usage_bytes
-
type
:
area-chart
title
:
"
Core
Usage
(Total)"
y_label
:
"
Total
Cores"
metrics
:
-
id
:
system_metrics_kubernetes_container_cores_total
query_range
:
'
avg(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-(.*)",namespace="%{kube_namespace}"}[15m]))
by
(job))
without
(job)'
label
:
Total
unit
:
"
cores"
required_metrics
:
-
container_cpu_usage_seconds_total
-
type
:
area-chart
title
:
"
Memory
Usage
(Pod
Average)"
y_label
:
"
Memory
Used
per
Pod"
metrics
:
-
id
:
system_metrics_kubernetes_container_memory_average
query_range
:
'
avg(sum(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)",namespace="%{kube_namespace}"})
by
(job))
without
(job)
/
count(avg(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)",namespace="%{kube_namespace}"})
without
(job))
/1024/1024'
label
:
Pod average
unit
:
MB
required_metrics
:
-
container_memory_usage_bytes
-
type
:
area-chart
title
:
"
Canary:
Memory
Usage
(Pod
Average)"
y_label
:
"
Memory
Used
per
Pod"
metrics
:
-
id
:
system_metrics_kubernetes_container_memory_average_canary
query_range
:
'
avg(sum(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"})
by
(job))
without
(job)
/
count(avg(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"})
without
(job))
/1024/1024'
label
:
Pod average
unit
:
MB
required_metrics
:
-
container_memory_usage_bytes
track
:
canary
-
type
:
area-chart
title
:
"
Core
Usage
(Pod
Average)"
y_label
:
"
Cores
per
Pod"
metrics
:
-
id
:
system_metrics_kubernetes_container_core_usage
query_range
:
'
avg(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)",namespace="%{kube_namespace}"}[15m]))
by
(job))
without
(job)
/
count(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)",namespace="%{kube_namespace}"}[15m]))
by
(pod_name))'
label
:
Pod average
unit
:
"
cores"
required_metrics
:
-
container_cpu_usage_seconds_total
-
type
:
area-chart
title
:
"
Canary:
Core
Usage
(Pod
Average)"
y_label
:
"
Cores
per
Pod"
metrics
:
-
id
:
system_metrics_kubernetes_container_core_usage_canary
query_range
:
'
avg(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}[15m]))
by
(job))
without
(job)
/
count(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}[15m]))
by
(pod_name))'
label
:
Pod average
unit
:
"
cores"
track
:
canary
required_metrics
:
-
container_cpu_usage_seconds_total
-
type
:
area-chart
title
:
"
Knative
function
invocations"
y_label
:
"
Invocations"
metrics
:
-
id
:
system_metrics_knative_function_invocation_count
query_range
:
'
floor(sum(rate(istio_revision_request_count{destination_configuration="%{function_name}",
destination_namespace="%{kube_namespace}"}[1m])*30))'
label
:
invocations / minute
unit
:
requests
required_metrics
:
-
istio_revision_request_count
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