使用 Service Mesh 配置分布式追踪平台(已弃用)
本文档中描述的 Alauda build of Jaeger(Jaeger 1.60.0)和 Alauda Build of OpenTelemetry 集成已弃用,并将在 ACP 4.4 中移除。对于所有新部署,请使用文档 使用 Service Mesh 配置分布式追踪平台 中介绍的新 Alauda Distributed Tracing 集成。
要将现有安装迁移到新架构,请按照 迁移到 Jaeger v2 中的说明进行操作。
Alauda Service Mesh 通过与以下组件集成支持分布式追踪:
-
Alauda Build of Jaeger:基于开源 Jaeger 项目的定制发行版。它可提供复杂分布式系统中请求的端到端可见性。
-
Alauda Build of OpenTelemetry:基于 OpenTelemetry 项目,该组件通过管理 OpenTelemetry Collector 和工作负载插桩,简化跨指标、日志和追踪的数据采集。
OpenTelemetry Collector 充当遥测信号的中介。它支持多种数据格式,并提供标准化流水线,用于处理和导出遥测数据到诸如 Jaeger 等后端。
目录
配置与 Service Mesh 集成的分布式追踪数据采集卸载分布式追踪移除 Service Mesh 追踪配置删除 OpenTelemetry Collector 实例卸载 Alauda Build of OpenTelemetry Operator删除 Jaeger 实例卸载 Alauda build of Jaeger Operator配置与 Service Mesh 集成的分布式追踪数据采集
您可以将 Alauda Service Mesh 与 OpenTelemetry 集成,以对 OpenTelemetry traces、metrics 和 logs 进行插桩、生成、收集和导出,从而分析并了解软件的性能和行为。
前提条件
- 已安装 Alauda Build of Jaeger。
- 已安装 Alauda Build of OpenTelemetry。
- 已创建一个 Istio 实例。
- 已创建一个 Istio CNI 实例。
操作步骤
为 istio-system 命名空间添加项目标签:
在 istio-system 命名空间中安装一个 Jaeger 实例。
请参考 部署 Jaeger 实例 中的安装脚本,并使用下面的示例命令部署专用于 Istio 的 Jaeger:
--jaeger-es-index-prefix 参数用于设置 Elasticsearch 中存储追踪数据的索引前缀。
- 对于单集群 Service Mesh,我们建议在前缀末尾添加集群名称,例如
istio-tracing-cluster-1。 - 对于多集群 Service Mesh,所有集群的追踪必须存储在同一个索引中;我们建议在前缀末尾添加 meshID,例如
istio-tracing-mesh-1。
安装成功后,您可以访问 Jaeger UI,在 <platform-url>/clusters/<cluster>/istio/jaeger 查询 traces。
在 OperatorHub 中找到 Alauda Build of OpenTelemetry,并在 istio-system 命名空间中创建 OpenTelemetryCollector。
istio-system 命名空间中的 OpenTelemetry Collector 示例
endpoint字段是istio-system命名空间中的Jaegercollector 服务。
更新 Istio 资源,以启用追踪并定义 OpenTelemetry tracing provider:
通过 meshConfig 启用追踪的示例
service字段是istio-system命名空间中的OpenTelemetrycollector 服务。
更新 Telemetry 资源,以启用在 meshConfig 中定义的 tracing provider:
Istio Telemetry 资源示例
在确认可以看到 traces 之后,请将 randomSamplingPercentage 值调低,以减少请求数量。
卸载分布式追踪
如果您不再需要 Alauda Build of OpenTelemetry 和 Alauda build of Jaeger 与 Service Mesh 的集成,请按照以下步骤将其移除。
卸载后,存储在 Elasticsearch 中的历史 traces 将无法再从 Jaeger UI 访问。
移除 Service Mesh 追踪配置
在删除底层组件之前,请先移除 mesh 侧的追踪配置,以便 Istio 停止向旧版 collector 发送 span。
-
编辑
Telemetry资源,并移除引用otelprovider 的tracingproviders 条目:或者,使用
kubectl patch以非交互方式移除tracing配置: -
编辑
Istio资源,并移除名为otel的meshConfig.extensionProviders条目,或者将meshConfig.enableTracing设置为false:或者,使用
kubectl patch以非交互方式将meshConfig.enableTracing设置为false:
删除 OpenTelemetry Collector 实例
登录到安装了该集成的集群,并删除 OpenTelemetryCollector 实例:
卸载 Alauda Build of OpenTelemetry Operator
如果集群中的其他工作负载仍依赖 Alauda Build of OpenTelemetry Operator,请跳过此步骤。
您可以在 Web Console 中使用 管理员 视图卸载该 Operator。
操作步骤
- 依次进入 Marketplace → OperatorHub → 使用 搜索框 搜索
Alauda build of OpenTelemetry。 - 单击 Alauda build of OpenTelemetry 标题进入其详情。
- 在 Alauda build of OpenTelemetry 详情页右上角,单击 Uninstall 按钮。
- 在 Uninstall "opentelemetry-operator"? 窗口中,单击 Uninstall。
删除 Jaeger 实例
登录到安装了该集成的集群,并删除 Jaeger 实例及其支持资源。下面的资源名称与在 --target-namespace='istio-system' 下运行 install-jaeger.sh 时生成的默认值一致;如果安装时使用了不同的 --jaeger-instance-name,请相应调整。
卸载 Alauda build of Jaeger Operator
如果集群中的其他工作负载仍依赖 Alauda build of Jaeger Operator,请跳过此步骤。
您可以在 Web Console 中使用 管理员 视图卸载该 Operator。
操作步骤
- 依次进入 Marketplace → OperatorHub → 使用 搜索框 搜索
Alauda build of Jaeger。 - 单击 Alauda build of Jaeger 标题进入其详情。
- 在 Alauda build of Jaeger 详情页右上角,单击 Uninstall 按钮。
- 在 Uninstall "jaeger-operator"? 窗口中,单击 Uninstall。