分布式追踪

Last published : Oct 06, 2026
在服务图中,您可以使用分布式追踪视图来:
  • 分析整体服务性能。
  • 可视化所选服务与其相互依赖服务之间的通信流。
  • 识别哪个服务指示错误并排除故障服务。
  • 查看所选服务与其每个相互依赖服务之间的事务详细信息。

先决条件

要查看服务的追踪信息,您必须:
  • 确保应用程序在发送任何东西向流量时维护以下追踪标头:
    标头
  • 对于 早于 1.7.23 的 CIC 版本,请使用 NS_DISTRIBUTED_TRACING 和值 yes 更新 CPX YAML 文件
    CPX YAML
  • 对于 晚于 1.7.23 的 CIC 版本,您必须使用 ConfigMap。
    ConfigMap 允许您将配置与 Pod 分离,并使您的工作负载可移植。使用 ConfigMap,您可以轻松更改和管理工作负载配置,并减少将配置数据硬编码到 Pod 规范的需要。
    借助 ConfigMap 支持,您可以在保持 NetScaler Ingress Controller Pod 运行的同时自动更新配置。更新后无需重新启动 Pod。有关更多信息,请参阅 Ingress 控制器的 ConfigMap 支持。
    使用 ConfigMap,您可以启用或禁用分布式跟踪、事件、审计日志等。要使用 ConfigMap:
    1. 使用所需参数创建 YAML 文件。
      以下 YAML 示例文件已启用分布式跟踪,并禁用了其他变量,例如审计日志、事件和事务:
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG: |
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <AgentIP> / <AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'false'
            events:
              enable: 'false'
          transactions:
            enable: 'false'
            port: 5557
      注意
      您可以为 Samplingrate 提供 0 到 100 之间的值。NetScaler Console 将显示指定数量的跟踪事务。
    2. 使用以下方式部署 ConfigMap:
      kubectl create -f <configmap-yaml>.yaml
    3. 编辑 CPX YAML 文件,并使用 envFrom 或 args 来指定以下参数:
      envFrom:
       - configMapRef:
           name: cic-configmap
      或
      YAML
      ConfigMap YAML 配置部署在 CIC 中。
    4. 如果要更改任何变量的值,请编辑 ConfigMap 中的值。在此示例中,所有其他变量都从 false 更改为 true。
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG: |
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <AgentIP> / <AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'true'
            events:
              enable: 'true'
          transactions:
            enable: 'true'
            port: 5557
    5. 使用以下命令重新应用 ConfigMap:
      kubectl apply -f <yaml-file>.yaml

查看服务跟踪详细信息

在服务图中,单击一个服务,然后选择跟踪信息。
跟踪信息
所选服务的跟踪摘要页面随即显示。
跟踪摘要
跟踪摘要显示:
  • 高级搜索,可让您搜索事务并提供建议和运算符 (1)。有关更多信息,请参阅高级搜索。
  • 时间持续时间列表,可让您选择时间持续时间,例如 1 小时、12 小时、1 天、1 周、1 个月和自定义时间 (2)。
  • 时间线详细信息图,可让您拖动并选择以显示特定时间段的结果 (3)。
  • 筛选器面板,可让您从每个指标中选择选项 (4)。
  • 所选服务的事务详细信息 (5)。

查看事务详细信息

单击事务以深入查看详细信息。您可以查看所选服务的事务详细信息,例如:
  • 开始时间
  • 结束时间
  • SSL 指标
  • 与相互依赖的服务通信(以及每个服务的错误和响应时间)。
以下示例表示来自 catalogue-store-service 的错误。单击 查看跟踪详细信息 以获取更多详细信息。
跟踪详细信息
显示“跟踪详细信息”页面。
跟踪事务
1 – 显示事务的开始时间、响应时间、服务总数和跨度总数。
2 – 显示与相互依赖服务通信的所选服务的详细信息。您可以单击每个事务以查看详细信息。
3 – 显示每个服务的事务详细信息。
根据示例图像,catalogue-store-service 指示了一个错误。单击 catalogue-store-service 可用的事务。
单击事务
product-catalogue-service 和 catalogue-store-service 之间的事务详细信息显示 HTTP 响应为 500。通过这些详细信息,作为管理员,您可以分析错误服务并排查 product-catalogue-service 作为解决方案。
您还可以通过在“筛选器”面板下从每个指标中选择选项来筛选结果。例如,如果要查看所有 5xx 事务,请单击“响应代码”并选择“500”。
筛选器面板
  • 客户端 RTT:数据包从客户端传输所需的时间。
  • 服务器 RTT:数据包从服务器传输所需的时间。
  • 应用响应时间:应用程序平均响应时间
  • 数据传输时间:数据传输大小以及服务之间传输数据的速率。
  • 位置:客户端位置
  • 浏览器:客户端使用的浏览器类型。例如:Chrome、Firefox。
  • 客户端操作系统:根据浏览器中的用户代理详细信息确定的客户端操作系统。
  • 设备:根据浏览器中的用户代理详细信息确定的设备。例如:平板电脑、移动设备。
  • 请求类型:事务请求类型。例如:GET。
  • 响应代码:从服务器接收到的响应代码。例如:501、404、200。
  • 响应内容类型:事务内容类型。如果客户端请求的是 text/html,则服务器的响应也必须是 text/html。
  • SSL 协议:客户端使用的 SSL 协议版本。例如:SSLv3。
  • SSL 密码强度:基于 SSL 证书密钥大小的密码强度,例如高、中和低。
  • SSL 密钥强度:SSL 密码强度是根据 SSL 证书密钥大小计算的。密钥长度定义了 SSL 算法的安全性。例如:2048
  • SSL 前端故障原因:前端 SSL 握手错误消息。例如:SSL CLIENTAUTH FAILURE