2.6. 关于为 Jaeger 监控配置 Fuse Online
Jaeger 是用于在分布式服务间追踪事务的开源软件。它对于监控复杂微服务环境并进行故障排除特别有用。
当您安装 Fuse Online 时(可以从 OperatorHub 或使用命令行脚本)时,Fuse Online 安装会检测 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认的 Fuse Online 环境配置所有必需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定仅限客户端/独立的服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
basic, out-of-box 配置包含所有 Jaeger 组件。您可以通过试验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 具有以下结果:
- Fuse 在线组件具有 Jaeger 通信 URL。
- 已安装 Jaeger Operator。
- Jaeger 自定义资源配置了活动监控的默认配置。
带有默认 Jaeger 配置的 Fuse Online 安装有以下 合成
自定义资源规格:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true
当 clientOnly
和 operatorOnly
未指定(默认设置为 false
时),Fuse Online 使用提供的 Jaeger 后端以及 Jaeger 服务器配置提供的默认仅内存存储。
仅客户端/独立于客户端的服务器配置
使用仅限客户端/独立于客户端的服务器配置,只有客户端 URL 连接配置为 Fuse Online 和外部配置的 Jaeger 后端之间的通信。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境,和 syndesis-operator
。这包括 Jaeger Operator 和 Jaeger 自定义资源。
要安装仅限客户端的 Jaeger 配置,请在安装 Fuse Online 前编辑自定义资源,如下所示:
-
将
clientOnly
设置为true
以添加 Jaeger 代理功能。 -
将
queryUri
设置为独立安装的 Jaeger 后端的 查询组件的 URI。 -
将
collectorUri
设置为独立安装的 Jaeger 后端的 收集器组件的 URI。
例如:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true clientOnly: true queryUri: http://jaeger-query-hostname:443/api collectorUri: http://jaeger-collector-hostname:14268/api/traces
混合 Jaeger 客户端和 Operator 配置
使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 和 Jaeger 客户端功能。没有安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,该资源定义 Jaeger 服务器配置。这可让您利用 Fuse Online 提供的功能,并为您自己的环境定制 Jaeger 配置,例如,您可以使用 Elasticsearch 或 Cassandra 进行数据存储。
安装混合 Jaeger 客户端和 Jaeger Operator 配置:
在安装 Fuse Online 前编辑自定义资源,如下例所示:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true
将 Jaeger 自定义资源命名为
syndesis-jaeger
,如下例所示:apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....
注: 但是,如果要将不同的名称用于 Jaeger 自定义资源,请在 Syndesis 自定义资源中设置
queryUri
和collectorUri
,如 Client-only/ independent server configuration 部分所述。
当创建带有 syndesis-jaeger
名称的 Jaeger 自定义资源时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,这个数据不会在 Fuse Online 活动日志中显示。要在 Fuse Online 活动日志中查看这些数据,请创建以下服务:
oc create -f - <<EOF apiVersion: v1 kind: Service metadata: labels: app: syndesis syndesis.io/app: syndesis syndesis.io/type: infrastructure syndesis.io/component: jaeger name: noauth-syndesis-jaeger-query spec: ports: - name: query port: 443 protocol: TCP targetPort: 16686 selector: app: jaeger app.kubernetes.io/name: syndesis-jaeger EOF