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

Name Query
Throughput (req/sec) sum(rate(nginx_responses_total{server_zone!="*", server_zone!="_", %{environment_filter}}[2m])) by (status_code)
Latency (ms) avg(nginx_upstream_response_msecs_avg{%{environment_filter}})
HTTP Error Rate (HTTP Errors / sec) rate(nginx_responses_total{status_code="5xx", %{environment_filter}}[2m]))

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 will capture and display 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, there is upcoming direct support for enabling Prometheus monitoring in the 0.9.0 release.

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 will look for an environment label.