使用 Service Mesh 配置分布式追踪平台(已弃用)
本文档中介绍的 Alauda build of Jaeger(Jaeger 1.60.0)和 Alauda Build of OpenTelemetry 集成已弃用,并将在 ACP 4.4 中移除。对于所有新部署,请使用使用 Service Mesh 配置分布式追踪平台中记录的新 Alauda 分布式追踪 集成。
若要将现有安装迁移到新技术栈,请按照迁移到 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 追踪、指标和日志,从而分析和了解软件的性能与行为。
前提条件
- 已安装 Alauda Build of Jaeger。
- 已安装 Alauda Build of OpenTelemetry。
- 已创建 Istio 实例。
- 已创建 Istio CNI 实例。
操作步骤
为 istio-system 命名空间添加项目标签:
在 istio-system 命名空间中安装 Jaeger 实例。
请参阅 部署 Jaeger 实例 中的安装脚本,并使用以下示例命令部署专用于 Istio 的 Jaeger:
--jaeger-es-index-prefix 参数设置 Elasticsearch 中用于存储追踪数据的索引前缀。
- 对于单集群服务网格,建议以前缀以集群名称结尾,例如
istio-tracing-cluster-1。 - 对于多集群服务网格,所有集群的追踪数据必须存储在同一索引中;建议以前缀以 meshID 结尾,例如
istio-tracing-mesh-1。
安装成功完成后,您可以访问 Jaeger UI,在 <platform-url>/clusters/<cluster>/istio/jaeger 查询追踪数据。
在 OperatorHub 中导航到 Alauda Build of OpenTelemetry,并在 istio-system 命名空间中创建 OpenTelemetryCollector。
istio-system 命名空间中的 OpenTelemetry Collector 示例
endpoint字段是istio-system命名空间中的JaegerCollector 服务。
更新 Istio 资源以启用追踪并定义 OpenTelemetry 追踪提供程序:
示例:通过 meshConfig 启用追踪
service字段是istio-system命名空间中的OpenTelemetryCollector 服务。
更新 Telemetry 资源,以启用 meshConfig 中定义的追踪提供程序:
Istio Telemetry 资源示例
确认可以看到追踪数据后,请降低 randomSamplingPercentage 值,以减少请求数量。
卸载分布式追踪
如果不再需要 Alauda Build of OpenTelemetry 和 Alauda build of Jaeger 与 Service Mesh 的集成,请按照以下步骤将其移除。
卸载后,存储在 Elasticsearch 中的历史追踪记录将无法再从 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 实例及其支持资源。以下资源名称与 install-jaeger.sh 配合 --target-namespace='istio-system' 生成的默认名称一致;如果安装期间使用了不同的 --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。