Monitoring NGINX Ingress Controller with VTS metrics

原文:https://docs.gitlab.com/ee/user/project/integrations/prometheus_library/nginx_ingress_vts.html

Monitoring NGINX Ingress Controller with VTS metrics

在 GitLab 9.5 中引入 .

注意: NGINX Ingress 版本 0.16及更高版本具有内置的 Prometheus 度量标准,该度量标准与基于 VTS 的度量标准不同.

GitLab 支持自动检测和监视 Kubernetes NGINX Ingress 控制器. 这是通过利用版本 0.9.00.15.x 中随附的 VTS Prometheus 度量标准导出程序来提供的 .

Requirements

Prometheus 集成必须处于活动状态.

Metrics supported

Name Query
吞吐量(要求/秒) sum(rate(nginx_upstream_responses_total{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"}[2m])) by (status_code)
延迟(毫秒) avg(nginx_upstream_response_msecs_avg{upstream=~"%{kube_namespace}-%{ci_environment_slug}-.*"})
HTTP 错误率(%) 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

Configuring NGINX Ingress monitoring

如果您已经使用 GitLab 的Kubernetes 集群集成部署了 NGINX Ingress,则 Prometheus 将自动对其进行监视 .

对于其他部署,需要根据您的安装进行一些配置

  • NGINX Ingress 的版本应为 0.9.0 或更高版本,并启用指标.
  • NGINX Ingress 应该标注为 Prometheus 监视.
  • Prometheus 应该配置为监视带注释的容器.

About managed NGINX Ingress deployments

NGINX Ingress is deployed into the gitlab-managed-apps namespace, using the official Helm chart. NGINX Ingress will be externally reachable via the Load Balancer’s Endpoint.

通过设置以下内容,将 NGINX 配置为进行 Prometheus 监视:

  • enable-vts-status: "true" ,以导出 Prometheus 指标.
  • prometheus.io/scrape: "true" ,以启用自动发现.
  • prometheus.io/port: "10254" ,以指定度量标准端口.

与 GitLab 部署的 Prometheus 服务结合使用时,将自动收集响应指标.

Manually setting up NGINX Ingress for Prometheus monitoring

NGINX Ingress 的 0.9.0 及更高版本具有对导出 Prometheus 指标的内置支持. 要启用,必须传递 ConfigMap 设置: enable-vts-status: "true" . 启用后,Prometheus 指标端点将开始在端口 10254 上运行.

接下来,需要对 Ingress 进行注释,以进行 Prometheus 监视. 需要添加两个新的注释:

  • prometheus.io/scrape: "true"
  • prometheus.io/port: "10254"

管理这些设置取决于如何部署 NGINX Ingress. 如果您通过官方 Helm 图表进行了部署,则可以使用controller.stats.enabled以及所需的注释来启用指标. 或者,也可以直接在Kubernetes 仪表板中编辑 NGINX Ingress YAML.

Specifying the Environment label

为了隔离并仅显示给定环境的相关指标,GitLab 需要一种方法来检测关联了哪些标签. 为此,GitLab 将搜索带有适当标签的指标. 在这种情况下, upstream标签的格式必须为<KUBE_NAMESPACE>-<CI_ENVIRONMENT_SLUG>-* .

如果您使用自动部署来部署您的应用程序,则将自动使用此格式,并且无需您执行任何操作即可检测到指标.