开发者学堂课程【分布式链路追踪 Skywalking:Agent 的使用-简介】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/743/detail/13155
Agent 的使用-简介
一、Agent 的介绍
介绍 Skywalking 中 Agent 的探针的使用方式
1. 介绍 Agent
agent 探针可以让我们在没有代码修改的情况下,对 java 应用上的一些组如 MySQL 等,通过调用时都会记录它们的调用时长以及链路,探针在收集到这些数据之后,会通过 GRPC 远程调用的方式把数据发送给 OAP ,OAP 会统一进行数据的收集、统计和存储。最后把数据存放在 elasticsearch 中,
Skywalking 中 agent 探针实际上是基于 java 中的一种叫 java agent 的技术实现的,这种技术本身就不需要更改任何代码,它可以通过虚拟机也就是 JVM 提供的一些接口来动态更改代码,从而实现动态添加、监控以及发送一些逻辑。
Skywalking 中 Agent 探针支持 JDK1.6-12 的版本,目前使用的是 JDK8 Agent 探针所有的文件都在 Skywalking 的 agent 文件夹下。
如图:
首先,找到 usr/local/ Skywalking,进入 apache Skywalking 的一个目录。
然后再进入 agent 目录,查看历史所有的文件夹,如图:
需要关注的是 config、logs、optional-plugins、plugins这些比较重要的文件夹。其中 config 用于存放配置文件;logs 用于存放日志文件;plugins 用于存放所有组件的插件,只要这些组件在 plugins 下,都能生效;optional-plugins 存放的插件是没有生效的,因为 Skywalking 的开发人员考虑到一些插件对性能的影响太大,所以这些插件是作为可选插件存储进去的,如果用户需要使用它们,就需要把这些架包移到 plugins 才能使用,假设用户需要使用 optional-plugins 中的 apm-gson-2 ,就需要把这个架包搬运到 plugins 才能使用,即插件分为可选插件和使用插件。
2.处理配置
如图:
、
需要修改的是 agent config 上的一行叫 agent.service_name 的代码,它指的是将来应用启动之后,在页面上展示的一个效果,假设应用名叫 Your ApplicationName ,将来在 UI 页面上显示的应用名就是这个名字。
如果认为这个名字不美观,也可以改成skywalking _tomcat,如图:
上图,使用了一种占位服务加上 SW_ AGENT_NAME 的名字,这个名字其实指的是环境变量这个值,如果在环境变量中添加这个值,就会优先使用这个值,如果没有,就会使用后面的值。保存,就可以开始使用 Agent。