本文介绍如何将OpenTelemetry Trace数据接入ARMS并使用。

接入OpenTelemetry Trace数据

ARMS支持多种方式接入OpenTelemetry Trace数据,您可以将OpenTelemetry Trace数据直接上报至ARMS,或通过OpenTelemetry Collector转发。

直接上报

  • 通过ARMS Java Agent接入OpenTelemetry Trace数据

    Java应用推荐安装ARMS Java Agent。ARMS Java Agent内置了大量通用组件的链路埋点,能够自动上报OpenTelemetry格式的Trace数据,开箱即用,无需额外配置。具体操作,请参见监控Java应用

  • 结合ARMS Java Agent与OpenTelemetry Java SDK上报Trace数据

    v2.7.1.3及以上版本的ARMS Java Agent支持OpenTelemetry Java SDK扩展。您在使用ARMS Java Agent自动获取通用组件Trace数据的同时,还可以通过OpenTelemetry SDK扩展自定义的方法埋点。具体操作,请参见通过OpenTelemetry Java SDK进行手工埋点

  • 通过OpenTelemetry直接上报Trace数据

    您也可以使用OpenTelemetry SDK进行应用埋点,并通过Jaeger Exporter直接上报Trace数据。具体操作,请参见通过OpenTelemetry上报Java应用数据

通过OpenTelemetry Collector转发

通过ARMS for OpenTelemetry Collector转发Trace数据

在容器服务ACK环境下,您可以一键安装ARMS for OpenTelemetry Collector,通过它进行Trace数据的转发。ARMS for OpenTelemetry Collector实现了链路无损统计(本地预聚合,统计结果不受采样率影响),动态配置调参,状态管理以及开箱即用的Trace Dashboard on Grafana,同时更加易用、稳定、可靠。

ARMS for OpenTelemetry Collector的接入流程如下:

  1. 通过ACK控制台应用目录安装ARMS for OpenTelemetry Collector。
    1. 容器服务管理控制台左侧导航栏单击集群
    2. 集群列表页面单击目标集群名称,然后在左侧导航栏选择运维管理 > 集群拓扑
    3. 在集群拓扑页面,单击开开始安装
      ACK控制台将会为您自动安装ack-arms-cmonitor组件。
      说明 命名空间默认为arms-prom
    4. 安装完成后,在左侧导航栏选择工作负载 > 守护进程集,在页面顶部选择命名空间为arms-prom
    5. 单击cmonitor-agent,然后在访问方式页签单击otel-collector-service
      查看otel-collector-service(Service)是否正常运行,如下图所示对外暴露了多种Receivers端口接收OpenTelemetry数据,则表示安装成功。otel-collector-service
  2. 修改应用SDK中的Exporter Endpoint地址为otel-collector-service:Port
    Endpoint示例

通过开源OpenTelemetry Collector转发Trace数据

使用开源的OpenTelemetry Collector转发Trace数据至ARMS,只需要修改Exporter中的接入点(Endpoint)和鉴权信息(Token)。

exporters:
  otlp:
    endpoint: <endpoint>:8090
    tls:
      insecure: true
    headers:
      Authentication: <token>
说明
  • <endpoint>替换为您上报区域对应的Endpoint,例如:http://tracing-analysis-dc-bj.aliyuncs.com:8090
  • <token>替换为您控制台上获取的Token,例如:b590lhguqs@3a7*********9b_b590lhguqs@53d*****8301

OpenTelemetry Trace使用指南

为了更好的发挥OpenTelemetry Trace数据价值,ARMS提供了链路详情、预聚合大盘、Trace Explorer后聚合分析、调用链路关联业务日志等多种诊断能力。

  • 链路详情
    在链路详情面板左侧可以查看链路的接口调用次序与耗时,面板右侧展示了详细的附加信息和关联指标,例如数据库SQL,JVM和Host监控指标等。链路详情
  • 预聚合大盘

    ARMS基于OpenTelemetry Trace数据提供了多种预聚合指标大盘,包括应用总览,接口调用,数据库调用等。更多信息,请参见查看应用性能关键指标和拓扑图

    Overall Analysis tab
  • Trace Explorer后聚合分析

    针对OpenTelemetry Trace数据,ARMS提供了灵活的多维筛选与后聚合分析能力,例如查询特定应用的异常链路。还可以根据IP、接口等维度对Trace数据进行聚合。更多信息,请参见Trace Explorer

    图 1. 链路查询
    Span数据信息
    图 2. 链路分析
    Specify analysis conditions
  • 调用链路关联业务日志

    ARMS支持将OpenTelemetry Trace与业务日志相关联,从应用接口角度排查业务异常问题。更多信息,请参见通过调用链路和日志分析定位业务异常问题

    Log Analysis