若您的应用使用 AHAS 支持的第三方组件和框架,可使用 Agent 接入方式零修改代码接入 AHAS 应用流控降级。本文以 Java Agent 为例介绍 Agent 接入方法。

前提条件

您的应用使用的第三方组件和框架在支持列表中,参见支持列表

操作步骤

您可以在 AHAS 控制台查看 AHAS 应用流控降级使用 Agent 接入的相关步骤。

  1. 登录 AHAS 控制台,然后在页面顶部导航栏选择地域
  2. 在控制台左侧导航栏中选择流控降级 > 应用流控
  3. 应用流控右上角单击新应用接入
    Agent 接入 页面查看 License 信息(非公网地域不需要)。Agent 接入
  4. 按需选择以下一种方式安装并启动 Java Agent。
    • 方式一:快速接入

      快速接入方式会识别主机中所有 Java 进程,并将其接入 AHAS 应用流控降级。

      1. 执行以下命令下载并安装 Java Agent。
        //将 <AppName>替换为自定义的应用名称
        wget -O ./install_agent.sh https://ahasoss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/agent/prod/latest/install_agent.sh && source ./install_agent.sh <AppName> default
        //将 <AppName> 替换为自定义的应用名称,将 <license> 替换为真实值。
        wget -O ./install_agent.sh https://ahasoss-cn-public.oss-cn-hangzhou.aliyuncs.com/agent/prod/latest/install_agent.sh && source ./install_agent.sh <AppName> default <license> 
      2. 重启您的应用。
    • 方式二:手动接入

      手动接入方式可以指定单个应用接入 AHAS 应用流控降级,操作时需要根据 Java 虚拟机运行的环境来安装 Java Agent。

      • 非容器化应用服务
        1. 选择并下载 ahas-java-agent.jar 安装包至任意路径下,例如:/opt/aliyunahas/agent
        2. 添加 JVM 启动参数。
          //将 <AppName>替换为自定义的应用名称,/opt/aliyunahas/agent/ahas-java-agent.jar 是 ahas-java-agent.jar 的下载路径,请替换为实际路径。
          -Dproject.name=<AppName>
          -Dahas.namespace=default
          -javaagent:/opt/aliyunahas/agent/ahas-java-agent.jar
          //将 <AppName> 替换为自定义的应用名称,将 <license> 替换为真实值,/opt/aliyunahas/agent/ahas-java-agent.jar 是 ahas-java-agent.jar 的下载路径,请替换为实际路径。
          -Dproject.name=<AppName> 
          -Dahas.namespace=default 
          -Dahas.license=<license>  
          -javaagent:/opt/aliyunahas/agent/ahas-java-agent.jar
        3. 启动 JVM。
      • Docker 容器
        1. 执行以下命令初始化 ahas-java-agent 容器。
          sudo docker pull \
          registry.cn-hangzhou.aliyuncs.com/ahascr-public/ahas-java-agent:latest && \
          docker run \
          --rm \
          --detach \
          --privileged=true \
          -v ahas-javaagent:/var/lib/aliyunahas/agent:rw \
          registry.cn-hangzhou.aliyuncs.com/ahascr-public/ahas-java-agent:latest
        2. 将 ahas-java-agent 挂载到相应的 Java 应用容器上。在 docker run 命令后面添加以下启动参数。如已有 JAVA_OPTS,可将内容添加在后面。例如:
          //将 <AppName> 替换为自定义的应用名称。
          -v ahas-javaagent:/var/lib/aliyunahas/agent:rw \
          --env JAVA_OPTS="-Dproject.name=<AppName> -Dahas.namespace=default -javaagent:/var/lib/aliyunahas/agent/ahas-java-agent.jar"
          //将 <AppName> 替换为自定义的应用名称,将 <license> 替换为真实值。
          -v ahas-javaagent:/var/lib/aliyunahas/agent:rw \
          --env JAVA_OPTS="-Dproject.name=<AppName> -Dahas.namespace=default -Dahas.license=<license> -javaagent:/var/lib/aliyunahas/agent/ahas-java-agent.jar"
      • Docker Compose
        1. 初始化 ahas-java-agent 容器。
          sudo docker pull \
          registry.cn-hangzhou.aliyuncs.com/ahascr-public/ahas-java-agent:latest && \
          docker run \
          --rm \
          --detach \
          --privileged=true \
          -v ahas-javaagent:/var/lib/aliyunahas/agent:rw \
          registry.cn-hangzhou.aliyuncs.com/ahascr-public/ahas-java-agent:latest
        2. docker-compose.yaml 中添加以下配置项。如已有 JAVA_OPTS,可将内容添加在后面。
          //将 <AppName> 替换为自定义的应用名称。
          environment: 
          - JAVA_OPTS="-Dproject.name=AppName -Dahas.namespace=default -javaagent:/var/lib/aliyunahas/agent/ahas-java-agent.jar"
          volumes:
          - ahas-javaagent:/var/lib/aliyunahas/agent:rw
          //将 <AppName> 替换为自定义的应用名称,将 <license> 替换为真实值。
          environment: 
          - JAVA_OPTS="-Dproject.name=AppName -Dahas.namespace=default -Dahas.license=license -javaagent:/var/lib/aliyunahas/agent/ahas-java-agent.jar"
          volumes:
          - ahas-javaagent:/var/lib/aliyunahas/agent:rw
        3. 执行以下命令重启 Docker Compose。
          docker-compose up --build -d

结果验证

在 AHAS 控制台 Agent 接入单击我已完成上述步骤返回应用列表。若应用列表出现该应用的资源卡片且有数据上报,则说明接入成功。Agent 接入验证

后续步骤

接入了 AHAS 的流控降级服务后,您可以进一步了解:

常见问题

如果您已完成流控降级服务接入,流控降级页面仍查看不到您的应用,可参考常见问题:流控降级常见问题