You need to enable JavaScript to run this app.
文档中心
应用性能监控全链路版

应用性能监控全链路版

复制全文
下载 pdf
接入指南
Java 应用接入
复制全文
下载 pdf
Java 应用接入
Java应用在不同场景下有不同的接入方式,本文介绍不同场景下Java应用的详细接入操作,接入后可以实现自动收集Trace信息、自动生成Metric指标、以及调用链检索、日志检索等功能。​
通过OpenTelemetry接入(推荐)​
OpenTelemetry是CNCF的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方vendor无关的服务。​
如果您的应用已经接入了OpenTelemetry的SDK,APMPlus服务端可以接收OpenTelemetry上报的数据。接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。​
说明​
如果您需要隔离生产和测试数据,请参见将生产和测试数据隔离。​
使用限制​
  • OpenTelemetry Metrics转换为Prometheus Metrics时,存在一定限制:​
  • 不支持聚合方式为delta的数据。请不要修改SDK侧的默认聚合配置,保证SDK侧数据的聚合方式为cumulative。​
  • 工作区拥有独立的数据上报凭证,如需使用工作区进行数据管理和数据隔离,请确保 apmplus-opentelemetry-collector 组件已经升级至 v3.1.0 及以上版本。​
数据上报​
方式一:直接上报至 ApmPlus 服务端​
可观测数据直接上报至 ApmPlus 服务端,支持用户通过 grpc、http/protobuf 等方式进行数据上报。​
方式二:Otel Collector 转发​
APMPlusOpenTelemetryCollector是APMPlus基于OpenTelemetryCollector二次开发的数据采集器。您可以在集群中安装 Opentelemetry Collector 做数据转发,有两种安装方式:​
  • 通过 VKE 集群组件中心,白屏安装 apmplus-opentelemetry-collector 组件。此外,推荐同时安装 apmplus-server-agent 组件,可以实现主机、进程维度的指标数据采集。​
  • ​Image​​
  • 通过服务接入页面提供的脚本手动安装。​
数据接入​
方式一:SDK 接入​
采用社区提供的 Opentelemetry Java SDK 手动埋点的方式上报数据,可以参考社区提供的java demo,完成java项目构建后,在启动命令指定数据上报后端以及鉴权等参数:​
  • 如果指定数据直接上报至 ApmPlus 后端:​
  • ​
    java -jar myapp.jar \​
    -Dotel.exporter.otlp.endpoint=<Apmplus_endpoint> \​
    -Dotel.service.name=myapp \​
    -Dotel.exporter.otlp.protocol=<protocol> \​
    -Dotel.exporter.otlp.headers=X-ByteAPM-AppKey=<app_key>​
    ​
  • 如果指定数据上报至 Collector,则无需指定 otel.exporter.otlp.headers​
  • ​
    java -jar myapp.jar \​
    -Dotel.exporter.otlp.endpoint=<collector_endpoint> \​
    -Dotel.service.name=myapp \​
    -Dotel.exporter.otlp.protocol=<protocol>​
    ​
说明​
<service_name> 填写应用服务名称​
填写您对应环境的服务端地址​
<app_key> 填写服务接入控制台提供的app_key。不同工作区对应的 app_key 各不相同,获取方法参见:如何获取应用性能监控的认证信息 AppKey?。​
填写数据上报采用的协议,支持 grpc 和 http/protobuf​
方式二:探针接入​
Opentelemetry javaagent 基于JVM字节码增强技术,实现各类流行的Java框架的otel数据的采集和自动上报。具体使用方式有两种:​
  1. 手动下载Javaagent​
  • 服务接入页面提供了最新版本的Javaagent的下载方式,启动应用程序时修改启动命令完成Javaagent的注入:​
  • 如果指定数据直接上报至 ApmPlus 后端:​
  • ​
    java -javaagent:/path/to/opentelemetry-javaagent.jar \​
    -Dotel.exporter.otlp.endpoint=<Apmplus_endpoint> \​
    -Dotel.service.name=myapp \​
    -Dotel.exporter.otlp.protocol=<protocol> \​
    -Dotel.exporter.otlp.headers=X-ByteAPM-AppKey=<app_key> \​
    -jar myapp.jar​
    ​
  • 如果指定数据上报至 Collector,则无需指定 otel.exporter.otlp.headers​
  • ​
    java -javaagent:/path/to/opentelemetry-javaagent.jar \​
    -Dotel.exporter.otlp.endpoint=<collector_endpoint> \​
    -Dotel.service.name=myapp \​
    -Dotel.exporter.otlp.protocol=<protocol> \​
    -jar myapp.jar​
    ​
  1. 通过 Opentelemetry Operator 自动注入​
  • 在 k8s 的场景下,提供了基于Operator实现对业务 POD 自动注入Javaagent至容器,您需要事先在集群组件中心完成组件 apmplus-opentelemetry-collector 的部署。​
  • 完成部署后,修改业务的workload(当前支持 deployment 和 statefulset)增加instrumentation.apmplus.volcengine.com/inject-java和instrumentation.apmplus.volcengine.com/workspace注解。​
  • 方式一:手动修改示例如下:​
​
apiVersion: apps/v1​
kind: Deployment​
metadata:​
name: simple-java​
labels:​
app: simple-java​
spec:​
replicas: 1​
selector:​
matchLabels:​
app: simple-java​
template:​
metadata:​
labels:​
app: simple-java​
annotations:​
instrumentation.apmplus.volcengine.com/inject-java: 'true' # 开启 APMPlus 观测注入​
instrumentation.apmplus.volcengine.com/workspace: default # 指定服务所属工作区​
spec:​
containers:​
- name: simple-java​
image: java_demo_simple​
imagePullPolicy: Always​
env:​
- name: CONTAINER_RUNTIME​
value: "k8s"​
​
方式二:vke 白屏修改方式如下,更新负载​
​Image​​
​​​
修改完成后,重启业务 POD。​
通过Jaeger接入​
Jaeger是一款由Uber研发的开源分布式链路追踪系统。​
对于已经集成Jaeger的已有系统,可以将jaeger的Trace数据上报到APMPlus,完成整体的全链路监控能力。​
接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。​
JaegerAgent接入​
SDK将数据上报到Agent,Agent将数据上报到APMPlus服务端。​
  1. 配置应用,开启数据采集。​
  • 参考jaeger文档,通过UDP将Trace数据发送到Agent。​
  1. 配置Agent,修改上报端点。​
  1. 修改jaeger-agent启动参数,配置如下:​
  • ​
    ./jaeger-agent --reporter.grpc.host-port=apmplus-{region}.ivolces.com:4317 \ ​
    --reporter.grpc.tls.enabled=false \ ​
    --agent.tags=app_key={appkey}​
    ​
说明​
完整配置命令请到接入中心查看,详情请参见如何使用接入中心?。​
  1. 重新启动应用。​
SDK直接上报​
SDK采集数据,直接上报到APMPlus服务端。​
  1. 配置应用,开启数据采集。​
  • 通过公网配置 reporter 的示例代码如下所示:​
  • ​
    io.jaegertracing.Configuration.SenderConfiguration sender = new io.jaegertracing.Configuration.SenderConfiguration(); ​
    sender.withEndpoint("https://apmplus-{region}.volces.com/server_collect/third_party/jaeger/v2/{appkey}/api/trace")​
    ​
  • 通过私网配置 reporter 的示例代码如下所示:​
  • ​
    io.jaegertracing.Configuration.SenderConfiguration sender = new io.jaegertracing.Configuration.SenderConfiguration(); ​
    sender.withEndpoint("http://apmplus-{region}.ivolces.com/server_collect/third_party/jaeger/v2/{appkey}/api/trace")​
    ​
说明​
完整配置命令请到接入中心查看,详情请参见如何使用接入中心?。​
  1. 重新启动应用。​
通过Zipkin接入​
Zipkin是一款由Twitter开源的分布式链路追踪系统,通过Zipkin可以帮助您收集Trace数据。​
对于已经集成Zipkin的系统,可以将已有的Trace数据上报到APMPlus,完成整体的全链路监控能力。​
接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项APMPlus能力。​
SDK直接上报​
SDK采集数据,直接上报到APMPlus服务端。​
  1. 配置应用,开启数据上报。​
  • 通过公网获取 zipkin 上报点的示例如下。​
  • ​
    https://apmplus-{region}.volces.com/server_collect/third_party/zipkin/v2/{appkey}/api/v2/spans​
    ​
  • 通过私网获取 zipkin 上报点的示例如下。​
  • ​
    http://apmplus-{region}.ivolces.com/server_collect/third_party/zipkin/v2/{appkey}/api/v2/spans​
    ​
说明​
完整配置命令请到接入中心查看,详情请参见如何使用接入中心?。​
  1. 接入服务并配置上报点。具体请参见zipkin示例代码。​
  1. 重新启动应用。​
通过SkyWalking接入​
SkyWalking Agent采集数据,直接上报到APMPlus服务端。当前支持SkyWalking Trace、Meter、Log、JVM、CLR数据接入。​
SDK直接上报​
  1. 配置应用,开启数据上报。​
  1. 配置SkyWalking grpc上报端点,配置authentication用户标识,并指定服务名。具体请参见SkyWalking文档。​
  1. 执行以下命令,启动服务及SkyWalking Agent。​
  • ​
    java -javaagent:path/to/skywalking-agent.jar​
    -Dskywalking.collector.backend_service=apmplus-{region}.ivolces.com:4317​
    -Dskywalking.agent.authentication={appkey}​
    -Dskywalking.agent.service_name={YOUR_SERVICE_NAME}​
    -jar YOUR_SERVICE.jar​
    ​
  1. 重新启动应用。​
  1. 验证数据上报。​
  • Trace接入后,可以查看拓扑图、Trace分析、服务详情等数据。​
  • Meter接入后,可在自定义指标中查看打点。​
  • Log接入后,可以查看日志。​
  • JVM、CLR接入后,可以在自定义指标中查看形如"skywalking_jvm_*"和"skywalking_clr_*"的指标。​
​
最近更新时间:2026.06.09 14:58:55
这个页面对您有帮助吗?
有用
有用
无用
无用