本文档介绍了在使用 Cloud Trace 和遥测政策与 Secure Web Proxy 时,如何诊断和解决分布式跟踪方面的问题。
轨迹未显示在 Trace 中
如果 Secure Web Proxy 生成的轨迹 span 未显示在轨迹探索器中,请检查以下各项:
验证 Cloud Trace API 是否已启用:确保在托管 Secure Web Proxy 网关的Google Cloud 项目中已启用 Trace API (
cloudtrace.googleapis.com)。<pre class="devsite-click-to-copy"> gcloud services enable cloudtrace.googleapis.com </pre>验证遥测政策是否存在且处于有效状态:使用
gcloud beta network-services telemetry-policies describe命令检查遥测政策是否存在于正确的区域中,并引用了相应的 Secure Web Proxy 网关:gcloud beta network-services telemetry-policies describe POLICY_NAME \ --location=REGION替换以下内容:
POLICY_NAME:遥测政策的名称,例如my-swp-tracing-policyREGION:遥测政策的部署区域,例如us-central1
检查抽样率:如果您的政策的
samplingRate较低(例如,0.01表示 1% 或0.001表示 0.1%),则可能不会对单个手动测试请求进行抽样。如需确认跟踪功能是否正常运行,请暂时将政策更新为使用 100% 抽样 (samplingRate: 1.00),然后恢复生产速率。验证目标网关资源 URI:验证遥测政策中的
telemetryTarget.resources字段是否指定了 Secure Web Proxy 网关的确切完全限定资源网址或简称。//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:部署 Secure Web Proxy 网关的区域,例如us-central1GATEWAY_NAME:Secure Web Proxy 网关实例的名称
如果项目 ID、区域或网关名称不匹配,代理将无法接收政策配置。
检查 Identity and Access Management (IAM) 权限:
- 确保您已向自己的用户账号或服务账号授予 Cloud Trace User 角色 (
roles/cloudtrace.user) 角色,以便在 Google Cloud 控制台中查看 span。 - 请确保您已向以下服务账号授予 Cloud Trace Agent 角色 (
roles/cloudtrace.agent):service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.comservice-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com- 客户端虚拟机 (VM) 服务账号(如果客户端应用生成或传播 span)
- 确保您已向自己的用户账号或服务账号授予 Cloud Trace User 角色 (
缺少子 span 或轨迹图损坏
如果 Secure Web Proxy 代理 span 显示为独立的或断开连接的根跟踪记录,而不是应用请求的子 span,请执行以下操作:
启用基于父级的抽样:在遥测政策 YAML 文件中,验证
parentBasedSampling.enabled是否已设置为true。tracingConfiguration: samplingRate: 0.01 parentBasedSampling: enabled: true如果基于父级的抽样处于停用状态,Secure Web Proxy 可能会舍弃上游抽样的轨迹(如果这些轨迹与本地
samplingRate不匹配)。检查 OpenTelemetry 插桩:验证您的应用是否使用已启用分布式跟踪上下文传播的 OpenTelemetry SDK。如需了解详情,请参阅 OpenTelemetry TraceContext 传播器文档。
轨迹提取量意外偏高
如果您发现跟踪记录中的跟踪数据提取量或费用高于预期,请执行以下操作:
- 降低基准采样率:在高流量生产环境中,将
samplingRate设置为较小的比例,例如0.01(1%) 或0.001(0.1%)。 - 依赖于基于父级的抽样:保持较低的网关基准值
samplingRate并启用parentBasedSampling。这种组合有助于确保代理仅对上游应用专门选择的请求进行抽样。 - 移除临时调试政策:如果您在问题排查期间应用了 100% 抽样 (
samplingRate: 1.00),请在调试过程完成后移除该政策或恢复到之前的配置。