bf918b68f6
https://gitlab.com/gitlab-org/gitlab-ce/issues/62971 Adds support to EnvironmentsController#metrics_dashboard for the following params: group, title, y_label These params are used to uniquely identify a panel on the metrics dashboard. Metrics are stored in several places, so this adds utilities to find a specific panel from the database or filesystem depending on the metric specified. Also moves some shared utilities into separate classes, notably default values and errors.
78 lines
2.2 KiB
Ruby
78 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module PrometheusMetricEnums
|
|
def self.groups
|
|
{
|
|
# built-in groups
|
|
nginx_ingress_vts: -1,
|
|
ha_proxy: -2,
|
|
aws_elb: -3,
|
|
nginx: -4,
|
|
kubernetes: -5,
|
|
nginx_ingress: -6
|
|
}.merge(custom_groups).freeze
|
|
end
|
|
|
|
# custom/user groups
|
|
def self.custom_groups
|
|
{
|
|
business: 0,
|
|
response: 1,
|
|
system: 2
|
|
}.freeze
|
|
end
|
|
|
|
def self.group_details
|
|
{
|
|
# built-in groups
|
|
nginx_ingress_vts: {
|
|
group_title: _('Response metrics (NGINX Ingress VTS)'),
|
|
required_metrics: %w(nginx_upstream_responses_total nginx_upstream_response_msecs_avg),
|
|
priority: 10
|
|
}.freeze,
|
|
nginx_ingress: {
|
|
group_title: _('Response metrics (NGINX Ingress)'),
|
|
required_metrics: %w(nginx_ingress_controller_requests nginx_ingress_controller_ingress_upstream_latency_seconds_sum),
|
|
priority: 10
|
|
}.freeze,
|
|
ha_proxy: {
|
|
group_title: _('Response metrics (HA Proxy)'),
|
|
required_metrics: %w(haproxy_frontend_http_requests_total haproxy_frontend_http_responses_total),
|
|
priority: 10
|
|
}.freeze,
|
|
aws_elb: {
|
|
group_title: _('Response metrics (AWS ELB)'),
|
|
required_metrics: %w(aws_elb_request_count_sum aws_elb_latency_average aws_elb_httpcode_backend_5_xx_sum),
|
|
priority: 10
|
|
}.freeze,
|
|
nginx: {
|
|
group_title: _('Response metrics (NGINX)'),
|
|
required_metrics: %w(nginx_server_requests nginx_server_requestMsec),
|
|
priority: 10
|
|
}.freeze,
|
|
kubernetes: {
|
|
group_title: _('System metrics (Kubernetes)'),
|
|
required_metrics: %w(container_memory_usage_bytes container_cpu_usage_seconds_total),
|
|
priority: 5
|
|
}.freeze
|
|
}.merge(custom_group_details).freeze
|
|
end
|
|
|
|
# custom/user groups
|
|
def self.custom_group_details
|
|
{
|
|
business: {
|
|
group_title: _('Business metrics (Custom)'),
|
|
priority: 0
|
|
}.freeze,
|
|
response: {
|
|
group_title: _('Response metrics (Custom)'),
|
|
priority: -5
|
|
}.freeze,
|
|
system: {
|
|
group_title: _('System metrics (Custom)'),
|
|
priority: -10
|
|
}.freeze
|
|
}.freeze
|
|
end
|
|
end
|