- group: Response metrics (NGINX Ingress) priority: 10 metrics: - title: "Throughput" y_label: "Requests / Sec" required_metrics: - nginx_upstream_requests_total weight: 1 queries: - query_range: 'sum(rate(nginx_upstream_requests_total{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m]))' label: Total unit: req / sec - title: "Latency" y_label: "Latency (ms)" required_metrics: - nginx_upstream_response_msecs_avg weight: 1 queries: - query_range: 'avg(nginx_upstream_response_msecs_avg{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"})' label: Average unit: ms - title: "HTTP Error Rate" y_label: "HTTP 500 Errors / Sec" required_metrics: - nginx_upstream_responses_total weight: 1 queries: - query_range: 'sum(rate(nginx_upstream_responses_total{status_code="5xx", upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m]))' label: HTTP Errors unit: "errors / sec" - group: Response metrics (HA Proxy) priority: 10 metrics: - title: "Throughput" y_label: "Requests / Sec" required_metrics: - haproxy_frontend_http_requests_total weight: 1 queries: - query_range: 'sum(rate(haproxy_frontend_http_requests_total{%{environment_filter}}[2m]))' label: Total unit: req / sec - title: "HTTP Error Rate" y_label: "Error Rate (%)" required_metrics: - haproxy_frontend_http_responses_total weight: 1 queries: - 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: "%" - group: Response metrics (AWS ELB) priority: 10 metrics: - title: "Throughput" y_label: "Requests / Sec" required_metrics: - aws_elb_request_count_sum weight: 1 queries: - query_range: 'sum(aws_elb_request_count_sum{%{environment_filter}}) / 60' label: Total unit: req / sec - title: "Latency" y_label: "Latency (ms)" required_metrics: - aws_elb_latency_average weight: 1 queries: - query_range: 'avg(aws_elb_latency_average{%{environment_filter}}) * 1000' label: Average unit: ms - title: "HTTP Error Rate" y_label: "Error Rate (%)" required_metrics: - aws_elb_request_count_sum - aws_elb_httpcode_backend_5_xx_sum weight: 1 queries: - query_range: 'sum(aws_elb_httpcode_backend_5_xx_sum{%{environment_filter}}) / sum(aws_elb_request_count_sum{%{environment_filter}})' label: HTTP Errors unit: "%" - group: Response metrics (NGINX) priority: 10 metrics: - title: "Throughput" y_label: "Requests / Sec" required_metrics: - nginx_requests_total weight: 1 queries: - query_range: 'sum(rate(nginx_requests_total{server_zone!="*", server_zone!="_", %{environment_filter}}[2m]))' label: Total unit: req / sec - title: "Latency" y_label: "Latency (ms)" required_metrics: - nginx_upstream_response_msecs_avg weight: 1 queries: - query_range: 'avg(nginx_upstream_response_msecs_avg{%{environment_filter}})' label: Upstream unit: ms - title: "HTTP Error Rate" y_label: "HTTP 500 Errors / Sec" required_metrics: - nginx_responses_total weight: 1 queries: - query_range: 'sum(rate(nginx_responses_total{status_code="5xx", %{environment_filter}}[2m]))' label: HTTP Errors unit: "errors / sec" - group: System metrics (Kubernetes) priority: 5 metrics: - title: "Memory Usage" y_label: "Memory Usage (MB)" required_metrics: - container_memory_usage_bytes weight: 1 queries: - query_range: '(sum(container_memory_usage_bytes{container_name!="POD",%{environment_filter}}) / count(container_memory_usage_bytes{container_name!="POD",%{environment_filter}})) /1024/1024' label: Average unit: MB - title: "CPU Utilization" y_label: "CPU Utilization (%)" required_metrics: - container_cpu_usage_seconds_total weight: 1 queries: - query_range: 'sum(rate(container_cpu_usage_seconds_total{container_name!="POD",%{environment_filter}}[2m])) / count(container_cpu_usage_seconds_total{container_name!="POD",%{environment_filter}}) * 100' label: Average unit: "%"