gpt4 book ai didi

nginx - 如何在 K8S ingress-nginx 指标中正确记录 "Path"

转载 作者:行者123 更新时间:2023-12-02 03:02:13 25 4
gpt4 key购买 nike

我正在使用ingress-nginx作为我在 K8S 上运行的一项服务的入口 Controller (我使用的是 nginx-0.20.0 版本镜像,入口 Controller 正在使用的 K8S 配置映射中没有特定的指标配置)。

nginx-ingress-controller pod 已成功抓取到我的 Prometheus 服务器中,但所有入口指标(例如 nginx_ingress_controller_request_duration_seconds_bucket)都显示为 path="/",无论处理请求的真实路径。

值得注意的是,当我查看入口日志时 - 路径记录正确。

如何获取导出指标中标注的真实路径?

谢谢!

最佳答案

prometheus 收集的 NGINX 指标中的 Path 属性源自 Ingress 定义 yaml。

例如,如果您的入口是:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: <some-k8s-ingress-name>
namespace: <some-k8s-namespace-name>
spec:
rules:
- host: <hostname>
http:
paths:
- backend:
serviceName: <some-k8s-service-name>
servicePort: <some-port>
path: /

然后,虽然 NGINX 会将任何 URL 与您的服务相匹配,但它们都会记录在路径“/”下(如 here 所示)。

如果您想要特定 URL 的指标,则需要像这样显式指定它(注意规则的顺序):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: <some-k8s-ingress-name>
namespace: <some-k8s-namespace-name>
spec:
rules:
- host: <hostname>
http:
paths:
- backend:
serviceName: <some-k8s-service-name>
servicePort: <some-port>
path: /more/specific/path
- backend:
serviceName: <some-k8s-service-name>
servicePort: <some-port>
path: /

关于nginx - 如何在 K8S ingress-nginx 指标中正确记录 "Path",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com