使用 Java Agent 接入

最近更新时间:2024-06-20 16:22:31

我的收藏

功能概述

Spring Cloud Tencent 的 Java Agent 支持针对容器部署的应用以及虚拟机部署的应用进行注入。对于 Spring Cloud 应用(原生 Spring Cloud 应用或者其他 Spring Cloud 扩展的应用),可以不用对应用代码及依赖进行任何变更的情况下,即可使用 Spring Cloud Tencent 的功能。下文将分别对容器场景和虚机场景的使用方法进行说明。

前提条件

登录 TSE 控制台
服务治理中心下的实例列表页面,单击目标引擎的 ID,进入基本信息页面。

使用步骤

容器场景
虚拟机场景

步骤1:安装 polaris-controller

1. 在目标引擎基本信息页顶部页签单击 K8s 集群,单击关联集群
2. 根据自身业务需求选择目标关联的 K8s 集群,支持 TKE (容器集群) / EKS (弹性容器集群)。即在目标集群中完成 polaris-controller 的安装。
3. 根据业务的特点选择服务的同步方式,支持全量同步(同步 k8s 集群中所定义的全部服务)/按需同步(只同步打了 polarismesh.cn/sync 标签的命名空间或服务)。



更多信息请参见 关联 K8s 集群

步骤2:在命名空间开启自动注入功能

在目标应用所在的 K8s 命名空间,通过以下命令开启自动注入:
kubectl label namespace <命名空间名> polaris-injection=enabled
通过以下命令查询命名空间是否开启了自动注入:
kubectl get namespace -L polaris-injection

输出结果:
NAME STATUS AGE POLARIS-INJECTION
default Active 3d2h enabled

步骤3:SpringCloud 应用 yaml 文件中声明 Java Agent 标签

找到需要注入 javaagent 的应用(一般是 deployment 或者 statefulset),编辑 yaml 并增加以下标签:
apiVersion: apps/v1
kind: Deployment
......
spec:
......
template:
metadata:
annotations:
# 声明需要往这个POD中注入javaagent
polarismesh.cn/javaagent: "true"
# 声明应用的框架类型,对于SpringCloud应用则填写spring-cloud
polarismesh.cn/javaagentFrameworkName: spring-cloud
# 声明应用的框架版本,当前支持hoxton, 2021, 2020
polarismesh.cn/javaagentFrameworkVersion: hoxton
# 声明java-agent包的镜像版本,可用版本:https://github.com/polarismesh/polaris-java-agent/releases
polarismesh.cn/javaagentVersion: 1.7.0-RC3
# 用户自定义的JavaAgent配置,不填写的配置则使用默认配置,格式为JSON。具体配置查看:https://github.com/polarismesh/polaris-controller/blob/main/deploy/kubernetes_v1.22/kubernetes/javaagent-configmap.yaml
# 如配置无损上线:
# polarismesh.cn/javaagentConfig: "{\\"spring.cloud.polaris.lossless.enabled\\": \\"true\\", \\"spring.cloud.polaris.lossless.delay-register-interval\\": \\"30000\\"}"
......
修改 yaml 后,需要重新部署应用。重新部署后,会自动完成 java-agent 的注入,可以观察应用日志,如果启动的时候出现以下关键字,则证明 java-agent 注入成功。
......
2024-02-01 21:19:16 [INFO ](PolarisAgentBootStrap) [Bootstrap] start bootStrapStarter:default
......
2024-02-01 21:19:16 [INFO ](PluginCreator) [BootStrap] plugin spring-cloud-hoxton-plugin has been loading

步骤1:下载 javaagent

获取最新的 polaris-java-agent 的版本,并下载二进制 zip 包。点击下载

步骤2:修改配置文件

1. 解压下载后到的 zip 包,进入 polaris-java-agent 的目录,并修改 conf/polaris-agent.conf 文件,填写需要使用的插件名称(需要按照应用的 spring-cloud 版本进行填写),内容示例如下:
plugins.enable=spring-cloud-2020-plugin
2. 进入 conf/plugin/spring-cloud-2020(不同插件有不同目录,需要按照上一步填写的插件来选择目录)目录中,修改 application.properties 文件:
2.1 填写正确的应用名(spring.application.name)。
2.2 填写您购买的北极星服务端的地址信息。服务端地址查看详细参见:引擎管理 > 客户端访问地址
# 应用名称(必填)
spring.application.name=testSvcName
# 配置北极星服务端地址
spring.cloud.polaris.address=grpc\\://9.134.5.52\\:8091

步骤3:添加应用的启动参数

在应用的启动参数中,添加 -javaagent:<java-agent安装目录>/polaris-agent-core-bootstrap.jar,然后重启应用,即可完成 java-agent 的注入。
说明:
如果使用 IDEA 进行本地调试,则需要在 VM Option 下添加 -javaagent 的参数。