Monitoring NGINX
Introduced in GitLab 9.4
GitLab has support for automatically detecting and monitoring NGINX. This is provided by leveraging the NGINX VTS exporter, which translates VTS statistics into a Prometheus readable form.
Requirements
The Prometheus service must be enabled.
Metrics supported
NGINX server metrics are detected, which tracks the pages and content directly served by NGINX.
environment_filter
is one of the predefined variables that metrics dashboards support.
Name | Query |
---|---|
Throughput (req/sec) | sum(rate(nginx_server_requests{server_zone!="*", server_zone!="_", %{environment_filter}}[2m])) by (code) |
Latency (ms) | avg(nginx_server_requestMsec{%{environment_filter}}) |
HTTP Error Rate (HTTP Errors / sec) | sum(rate(nginx_server_requests{code="5xx", %{environment_filter}}[2m])) |
HTTP Error (%) | sum(rate(nginx_server_requests{code=~"5.*", host="*", %{environment_filter}}[2m])) / sum(rate(nginx_server_requests{code="total", host="*", %{environment_filter}}[2m])) * 100 |
Configuring Prometheus to monitor for NGINX metrics
To get started with NGINX monitoring, you should first enable the VTS statistics module for your NGINX server. This captures and displays statistics in an HTML readable form. Next, you should install and configure the NGINX VTS exporter which parses these statistics and translates them into a Prometheus monitoring endpoint.
If you are using NGINX as your Kubernetes Ingress, GitLab automatically detects the metrics once enabled in 0.9.0 and later releases.
Specifying the Environment label
In order to isolate and only display relevant metrics for a given environment
however, GitLab needs a method to detect which labels are associated. To do this, GitLab looks for an environment
label.