链路追踪 概述 服务网格支持使用opentelmetry方式接入应用性能监控链路追踪能力,本章节介绍如何开启和使用链路追踪。 开启条件 需要开通APM应用性能监控,可参考开通应用性能监控应用性能监控快速入门 天翼云 (ctyun.cn) 需要在网格实例所属VPC下开通APM相关的终端节点(VPCE) 开启方式 登录服务网格控制台,网格实例 > 网格配置 > 自定义配置 > 启用链路追踪 开启即可。 开启时,您需要设置采样里,取值1100。 如果您还未开通应用性能监控服务及链路追踪数据上报需要的VPCE等资源,您可以授权服务网格组件一键开通相关资源。 链路追踪接入示例 概述 本节展示服务网格接入链路追踪的操作流程及效果,首先确认已经开启了链路追踪功能开关并将采样率配置为100%。演示架构如下图所示 其中ELB和Ingress Gateway作为接入层,业务层包括app1、app2、app3三个服务(分别都注入了网格sidecar),业务代码中也通过opentelemetry方式接入了链路追踪,触发数据面访问后,预期会上报链路数据到APM,完整覆盖网格数据面和应用。 部署测试程序 创建demo命名空间并配置好相关注入标签,保证sidecar注入;部署应用及服务,如下 注意 1. 本示例使用的镜像地址是华南2资源池,如果您在其他资源池体验,请替换镜像地址 2. 本示例采用go语言+opentelemetry方式接入链路追踪,您可以参考应用性能监控go语言接入链路追踪的文档将Deployment中的token和endpoint环境变量替换成您看到的值 html apiVersion: apps/v1 kind: Deployment metadata: name: app1base namespace: demo labels: app: app1 csmtraffictag: base spec: replicas: 1 selector: matchLabels: app: app1 name: app1 csmtraffictag: base template: metadata: labels: sidecar.istio.io/inject: "true" app: app1 name: app1 source: CCSE csmtraffictag: base spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: base name: app value: app1 name: upstreamurl value: " ports: containerPort: 8000 apiVersion: apps/v1 kind: Deployment metadata: name: app2base namespace: demo labels: app: app2 csmtraffictag: base spec: replicas: 1 selector: matchLabels: app: app2 name: app2 csmtraffictag: base template: metadata: labels: sidecar.istio.io/inject: "true" app: app2 name: app2 source: CCSE csmtraffictag: base spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: base name: app value: app2 name: upstreamurl value: " ports: containerPort: 8000 apiVersion: apps/v1 kind: Deployment metadata: name: app3base namespace: demo labels: app: app3 csmtraffictag: base spec: replicas: 1 selector: matchLabels: app: app3 name: app3 csmtraffictag: base template: metadata: labels: sidecar.istio.io/inject: "true" app: app3 name: app3 source: CCSE csmtraffictag: base spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: base name: app value: app3 ports: containerPort: 8000 apiVersion: apps/v1 kind: Deployment metadata: name: app1test namespace: demo labels: app: app1 csmtraffictag: test spec: replicas: 1 selector: matchLabels: app: app1 name: app1 csmtraffictag: test template: metadata: labels: sidecar.istio.io/inject: "true" app: app1 name: app1 source: CCSE csmtraffictag: test spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: test name: app value: app1 name: upstreamurl value: " ports: containerPort: 8000 apiVersion: apps/v1 kind: Deployment metadata: name: app2test namespace: demo labels: app: app2 csmtraffictag: test spec: replicas: 1 selector: matchLabels: app: app2 name: app2 csmtraffictag: test template: metadata: labels: sidecar.istio.io/inject: "true" app: app2 name: app2 source: CCSE csmtraffictag: test spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: test name: app value: app2 name: upstreamurl value: " ports: containerPort: 8000 apiVersion: apps/v1 kind: Deployment metadata: name: app3test namespace: demo labels: app: app3 csmtraffictag: test spec: replicas: 1 selector: matchLabels: app: app3 name: app3 csmtraffictag: test template: metadata: labels: sidecar.istio.io/inject: "true" app: app3 name: app3 source: CCSE csmtraffictag: test spec: containers: name: default image: registryvpccrshuanan2.cnspinternal.ctyun.cn/library/tracedemo:otel imagePullPolicy: Always env: name: token value: yourapmlicence name: endpoint value: apmhuanan2.cnspinternal.ctyun.cn:27141 name: version value: test name: app value: app3 ports: containerPort: 8000 apiVersion: v1 kind: Service metadata: name: app1 labels: app: app1 service: app1 spec: ports: port: 8000 name: http selector: app: app1 apiVersion: v1 kind: Service metadata: name: app2 labels: app: app2 service: app2 spec: ports: port: 8000 name: http selector: app: app2 apiVersion: v1 kind: Service metadata: name: app3 labels: app: app3 service: app3 spec: ports: port: 8000 name: http selector: app: app3