连接链接可观察性指南
前言 复制链接链接已复制到粘贴板!
对红帽文档提供反馈
红帽感谢您对产品文档的反馈。
要进行改进,请创建一个 Jira 问题,并描述您推荐的更改。提供尽可能多的详细信息,以帮助文档团队快速定位请求。
前提条件
- 您有红帽客户门户网站帐户。此帐户允许您登录到 Red Hat Jira Software 实例。如果您没有帐户,系统会提示您创建一个帐户。
步骤
- 单击以下链接: 创建问题。
- 在 Summary 文本框中,输入问题的简短描述。
在 Description 文本框中,提供以下信息:
- 找到此问题的页面的 URL。
- 有关此问题的详细描述。您可以将信息保留在其他字段中,使其默认值。
- 在 Reporter 字段中输入 JIRA 用户名。
- 点 Create 将 JIRA 问题提交到文档团队。
感谢您抽出时间提供反馈。
第 1 章 连接链接可观察性 复制链接链接已复制到粘贴板!
您可以使用连接链路观察功能来观察和监控 OpenShift 中的网关、应用程序和 API。
1.1. 连接链接可观察性功能 复制链接链接已复制到粘贴板!
连接链接使用连接链接组件、网关 API 状态指标和 Envoy 公开的标准指标来构建设置的模板仪表板和警报。
您可以下载并使用这些基于社区的模板与 Grafana、Prometheus 和 Alertmanager 部署集成,或者将这些模板用作根据您的特定需求修改的起点。
图 1.1. 平台工程师 Grafana 仪表板
平台工程师仪表板显示如下详情:
- 策略合规性和监管.
- 资源消耗。
- 错误率。
- 请求延迟和吞吐量。
- 用于 API 错误率和延迟的多窗口、多刻刻警报模板。
- 多集群分割。
图 1.2. 应用程序开发人员 Grafana 仪表板
应用程序开发人员仪表板更侧重于策略,而不是平台工程师仪表板,它更侧重于 API 和应用程序。例如,这包括请求延迟和每个 API 吞吐量等详情,以及 API 路径的请求和错误率。
图 1.3. Business 用户 Grafana 仪表板
business 用户仪表板包括如下详情:
- 每个 API 每秒的请求数。
- 在指定时间增加或降低 API 使用量率。
第 2 章 配置可观察性指标 复制链接链接已复制到粘贴板!
连接链接示例仪表板和警报使用连接链接、网关 API 和 OpenShift 组件导出的指标,以深入了解您的网关、应用程序和 API。本节介绍如何配置这些指标并在 OpenShift 集群上设置这些仪表板和警报。
用于观察连接功能的示例仪表板和警报使用 OpenShift 中用户监控堆栈中的低级 CPU 和网络指标,以及来自网关 API 和连接链接资源的资源状态指标。OpenShift 中的用户监控堆栈基于 Prometheus 开源项目。
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 您已安装了连接链接,如在 OpenShift 上安装连接链接 中所述。
- 您已监控用户定义的项目,如 OpenShift 监控文档 中所述。
- 您已在 OpenShift 集群中安装和配置了 Grafana。有关基于社区的示例,请参阅为 Kuadrant Observability 在 OpenShift 上安装 Grafana。
- 您已克隆了 Kuadrant Operator GitHub 存储库。
步骤
验证 OpenShift 集群中正确配置了用户工作负载监控,如下所示:
kubectl get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath='{.data.config\.yaml}'|grep enableUserWorkloadkubectl get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath='{.data.config\.yaml}'|grep enableUserWorkloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 预期的输出为
enableUserWorkload: true。安装连接链接、网关和 Grafana 组件指标和配置,如下所示:
kubectl apply -k https://github.com/Kuadrant/kuadrant-operator/config/install/configure/observability?ref=v1.1.0
kubectl apply -k https://github.com/Kuadrant/kuadrant-operator/config/install/configure/observability?ref=v1.1.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Kuadrant Operator 存储库的根目录中,将 OpenShift
thanos-query实例配置为 Grafana 中的数据源,如下所示:TOKEN="Bearer $(oc whoami -t)" HOST="$(kubectl -n openshift-monitoring get route thanos-querier -o jsonpath='https://{.status.ingress[].host}')" echo "TOKEN=$TOKEN" > config/observability/openshift/grafana/datasource.env echo "HOST=$HOST" >> config/observability/openshift/grafana/datasource.env kubectl apply -k config/observability/openshift/grafanaTOKEN="Bearer $(oc whoami -t)" HOST="$(kubectl -n openshift-monitoring get route thanos-querier -o jsonpath='https://{.status.ingress[].host}')" echo "TOKEN=$TOKEN" > config/observability/openshift/grafana/datasource.env echo "HOST=$HOST" >> config/observability/openshift/grafana/datasource.env kubectl apply -k config/observability/openshift/grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 Grafana 仪表板示例,如下所示:
kubectl apply -k https://github.com/Kuadrant/kuadrant-operator/examples/dashboards?ref=v1.1.0
kubectl apply -k https://github.com/Kuadrant/kuadrant-operator/examples/dashboards?ref=v1.1.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关如何在 OpenShift Service Mesh 中配置指标的详情,请参考 OpenShift Service Mesh 指标文档。
- 有关组件指标的参考信息,请参阅 Kuadrant 指标文档。
第 3 章 启用连接链接中的可观察性 复制链接链接已复制到粘贴板!
启用连接链接组件的可观察性,在启用用户监控时配置连接链接组件(包括任何网关)和 OpenShift 集群中安装的 Prometheus Operator 之间的集成。
此功能通过创建一组 ServiceMonitor 和 PodMonitor 来工作,这指示 Prometheus 从连接链接和网关组件中提取指标。然后,这些提取的指标会在 connections Link example 仪表板和警报中使用。
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 您已配置了指标,如 第 2 章 配置可观察性指标 所述。
步骤
要为 Kuadrant 和任何网关启用可观察性,请在
Kuadrant自定义资源的observability部分设置enable: true,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用后,连接链接会为连接链接 Operator 命名空间中的组件创建 ServiceMonitor 和 PodMonitor。另外,还会在每个网关命名空间中创建一组监控器,用于从任何网关和对应的网关系统命名空间中提取指标,本例中为
istio-system命名空间。检查创建的 monitor,如下所示:
kubectl get servicemonitor,podmonitor -A -l kuadrant.io/observability=true
kubectl get servicemonitor,podmonitor -A -l kuadrant.io/observability=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果需要,您可以在创建 monitor 后对 monitor 进行更改。监控功能只会被创建或删除,且不会更新或恢复。如果您决定默认监控器不合适,您可以设置
enable: false并创建自己的ServiceMonitor或PodMonitor定义,或者直接配置 Prometheus。
第 4 章 配置可观察性仪表板和警报 复制链接链接已复制到粘贴板!
连接链接提供了使用示例仪表板和警报来监控连接链接部署的起点,这些警报可随时使用,并可自定义以满足您的环境。
连接链接示例仪表板上传到 Grafana 仪表板网站。您可以将以下仪表板导入到 OpenShift 上的 Grafana 部署中:
| Name | 仪表板 ID |
|---|---|
| 21538 | |
| 20982 | |
| 20981 |
本节介绍如何启用示例仪表板和警报,并提供其他资源的链接。
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 您已配置了可观察性,如 第 3 章 启用连接链接中的可观察性 所述。
4.1. 配置 Grafana 仪表板 复制链接链接已复制到粘贴板!
您可以在 Grafana 用户界面中导入仪表板,或使用 OpenShift 中的自定义资源自动导入仪表板:
- 在 Grafana 中导入仪表板
点 Dashboards > New > Import,并使用以下选项之一:
- 上传仪表板 JSON 文件。
- 输入从 Grafana 仪表板网站 获取的仪表板 ID。
直接输入 JSON 内容。
如需更多信息,请参阅 有关如何导入仪表板的 Grafana 文档。
- 在 OpenShift 中自动导入仪表板
您可以通过在
ConfigMap中添加 JSON 文件来自动进行仪表板置备,它必须挂载于/etc/grafana/provisioning/dashboards。提示另外,为了避免在 Grafana 部署中添加
ConfigMap卷挂载,您可以使用GrafanaDashboard资源来引用ConfigMap。例如,请参阅 Grafana 文档中的来自 ConfigMap 的 Dashboard。数据源配置为模板变量,自动与现有数据源集成。这些仪表板的指标是从 Prometheus 中获取的。
如果一些仪表板面板正常工作,连接链接中的 HTTPRoutes 必须包括一个与服务名称匹配的服务和部署匹配的服务和部署标签,例如 。这允许使用网关 API 状态指标加入低级 Istio 和 Envoy 指标。
service =my-app 和 appdeployment =my-
其他资源
4.2. 配置 Prometheus 警报 复制链接链接已复制到粘贴板!
您可以将 Kuadrant 示例警报 集成到 Prometheus 中作为 PrometheusRule 资源,然后调整警报阈值以满足您的特定操作需求。
还包括使用 Sloth GitHub 项目 生成的服务级别目标(SLO)警报。您可以使用这些警报与 SLO Grafana 仪表板集成,该仪表板 使用生成的标签来全面概述 SLO。
有关如何配置 Prometheus 警报的详情,请参阅有关管理警报规则的 OpenShift 文档。
第 5 章 在连接链接中配置追踪 复制链接链接已复制到粘贴板!
您可以通过在 OpenShift Service Mesh 中启用追踪,以及 Authorino 和 Limitador 的连接链接组件,将 trace 定向到中央收集器以提高可观察性和故障排除。
您必须在您要使用连接链接的每个 OpenShift 集群上执行这些步骤。
先决条件
- 您已配置了 Grafana 仪表板,如 第 4 章 配置可观察性仪表板和警报 所述。
- 已安装 trace 收集器,如 Tempo 或 Jaeger,并配置为支持 OpenTelemetry。如需了解更多详细信息,请参阅 OpenShift Service Mesh tracing 文档。
步骤
通过配置
Telemetry自定义资源在 OpenShift Service Mesh 中启用追踪,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
Istio自定义资源中的 OpenShift Service Mesh 中配置追踪扩展Provider,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须在服务端口
名称或appProtocol字段中设置 OpenTelemetry 收集器协议,如 OpenShift Service Mesh 文档所述。例如,在使用 gRPC 时,端口名称应该以grpc-开头,或者appProtocol应该为grpc。在
Authorino自定义资源中启用请求追踪,并将身份验证和授权追踪发送到中央收集器,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
Limitador自定义资源中启用请求追踪,并将速率限制 trace 发送到中央收集器,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保追踪收集器与 OpenShift Service Mesh 发送 trace 相同,以便稍后可以关联它们。
应用更改后,将重新部署 Authorino 和 Limitador 组件,并启用了追踪。
重要trace ID 目前没有传播到 OpenShift Service Mesh 中的 Wasm 模块。这意味着传递给 Limitador 的请求没有相关的父追踪 ID。但是,如果 trace 启动点不是 Service Mesh,则父追踪 ID 可用于限制并包含在 trace 中。这会影响到来自 Limitador 的 trace,以及来自 Authorino、网关以及请求路径中的任何其他组件。
其他资源
- 如需了解更多详细信息,请参阅 OpenShift Service Mesh Observability 文档。
第 6 章 使用 trace 和 logs 进行故障排除 复制链接链接已复制到粘贴板!
您可以使用 Jaeger 或 Grafana 等追踪用户界面通过追踪 ID 搜索 OpenShift Service Mesh 和连接链接追踪信息。您可以从日志获取追踪 ID,或者从您要排除故障的示例请求中的标头获取。您还可以搜索最新的 trace,并根据您要关注的服务进行过滤。
6.1. 查看连接链接跟踪 复制链接链接已复制到粘贴板!
Grafana 用户界面中的 trace 示例显示了来自基于 Istio 的网关的总请求时间,检查和更新 Limitador 中的速率限制计数的时间,以及在 Authorino 中检查身份验证和授权的时间:
图 6.1. Grafana 中的连接链接跟踪示例
6.2. 使用追踪 ID 查看速率限制日志记录 复制链接链接已复制到粘贴板!
当使用 Limitador 组件进行速率限制时,您可以使用跟踪 ID 启用请求日志记录,以获取有关请求的更多信息。这要求将日志级别增加到至少 debug,因此您必须在 Limitador 自定义资源中将详细程度设置为 3 或更高,如下所示:
日志条目类似如下,traceparent 字段包含追踪 ID:
"Request received: Request { metadata: MetadataMap { headers: {"te": "trailers", "grpc-timeout": "5000m", "content-type": "application/grpc", "traceparent": "00-4a2a933a23df267aed612f4694b32141-00f067aa0ba902b7-01", "x-envoy-internal": "true", "x-envoy-expected-rq-timeout-ms": "5000"} }, message: RateLimitRequest { domain: "default/toystore", descriptors: [RateLimitDescriptor { entries: [Entry { key: "limit.general_user__f5646550", value: "1" }, Entry { key: "metadata.filter_metadata.envoy\\.filters\\.http\\.ext_authz.identity.userid", value: "alice" }], limit: None }], hits_addend: 1 }, extensions: Extensions }"
"Request received: Request { metadata: MetadataMap { headers: {"te": "trailers", "grpc-timeout": "5000m", "content-type": "application/grpc", "traceparent": "00-4a2a933a23df267aed612f4694b32141-00f067aa0ba902b7-01", "x-envoy-internal": "true", "x-envoy-expected-rq-timeout-ms": "5000"} }, message: RateLimitRequest { domain: "default/toystore", descriptors: [RateLimitDescriptor { entries: [Entry { key: "limit.general_user__f5646550", value: "1" }, Entry { key: "metadata.filter_metadata.envoy\\.filters\\.http\\.ext_authz.identity.userid", value: "alice" }], limit: None }], hits_addend: 1 }, extensions: Extensions }"
如果您使用 Grafana Loki 和 Promtail 等工具集中聚合日志,您可以在追踪信息和该服务的相关日志之间进行跳接。
通过使用追踪和日志的组合,您可以视觉化并排除请求计时问题并深入到特定服务。当与连接链接指标和仪表板结合使用时,此方法变得更为强大,以获得更完整的用户流量的照片。
其他资源
- 如需了解更多详细信息,请参阅 Grafana 用户文档。
附录 A. 使用您的红帽订阅 复制链接链接已复制到粘贴板!
红帽连接链接通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
管理您的订阅
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
- 在菜单栏中,单击 Subscriptions 以查看和管理您的订阅。
更新于 2025-10-15