Skip to content

设计文档

dengliming edited this page Mar 16, 2020 · 2 revisions

设计

概览图(监控全视角),其中蓝色部分为该工具运行的位置,其他部分为监控系统的整体概览;

overview

QPS/RT

其中蓝色部分为可扩展插件;

metric convert

pool convert

trace

TODO

目录结构


├─config	//存放监控配置文件以及日志配置文件
│      agent.properties //探针相关配置
│      log.properties	//日志相关配置
│      
├─lib		//探针包
│      yangjian-agent.jar
│      
├─logs		//探针输出的日志目录
└─plugins	//插件包
        agent-plugin-druid-1.0.0-SNAPSHOT.jar
        agent-plugin-dubbo-1.0.0-SNAPSHOT.jar
        agent-plugin-hikaricp-1.0.0-SNAPSHOT.jar
        agent-plugin-httpclient-1.0.0-SNAPSHOT.jar
        agent-plugin-jedis-1.0.0-SNAPSHOT.jar
        agent-plugin-kafka-1.0.0-SNAPSHOT.jar
        agent-plugin-method-1.0.0-SNAPSHOT.jar
        agent-plugin-mongo-1.0.0-SNAPSHOT.jar
        agent-plugin-mysql-1.0.0-SNAPSHOT.jar
        agent-plugin-okhttp-1.0.0-SNAPSHOT.jar
        agent-plugin-rabbitmq-1.0.0-SNAPSHOT.jar
        agent-plugin-redisson-1.0.0-SNAPSHOT.jar
        agent-plugin-spring-1.0.0-SNAPSHOT.jar
	
  • agent.properties
key 是否必须 说明 示例
service.name 当前运行的应用名称,因日志生成目录会使用该参数,所以必须有值,该值读取顺序为:读取启动参数中的MonitorAgent.service.name,不存在则读取skywalking.agent.service_name(兼容skywalking,无需重复配置),依然不存在则使用当前配置值,未配置则不增强应用(使用默认值可能导致日志被覆盖),不支持远程配置 test-service
config.remote_url 如果启用了远程配置,则必须配置该值,用于远程加载配置 http://test.com/config
spi.SPI接口实例类名 用于禁用一个SPI接口实例(不配置默认为启用) spi.JVMMetricsSchedule=disable
ignore.enhance.classRegular 忽略增强的类正则,使用\r\n分隔多个配置 ^cn\\.xxx\\.\r\n^cn\\.yyy\\.
ignore.enhance.methodRegular 忽略增强的方法正则,使用\r\n分隔多个配置 .*test\\(\\)$\r\n.*ignore\\(\\)$
methodCallEvent.bufferSize 方法调用事件的缓存队列长度,必须为2的N次方,需考虑占用内存,太小可能导致事件丢弃 32768
schedule.corePoolSize 定时任务调度核心线程数,只要继承ISchedule的类都使用此处的线程调度 5
InstanceMethodMatcher.唯一标识 自定义实例方法RT/QPS统计,value为正则匹配 InstanceMethodMatcher.test=.*cn\\.ecpark\\.tool\\.javaagent\\.TestService\\.add\\(.*
StatisticMethodMatcher.唯一标识 自定义静态方法RT/QPS统计,value为正则匹配 StatisticMethodMatcher.test=.*java\\.time\\.Duration\\.ofHours\\(.*
  • log.properties
key 是否必须 说明 示例
log.output 日志输出类型,目前支持:CONSOLE, FILE,如果为CONSOLE则输出到控制台,FILE则按照下方的配置输出到对应的目录下 FILE
log.dir 日志目录,未配置时windows环境下使用程序目录,linux使用/data/www/logs/cus-ecpark-agent,实际日志输出的文件前会增加项目目录,避免一台机器部署多个接入探针应用时日志文件冲突
log.level 日志级别,支持:DEBUG, INFO, WARN, ERROR, OFF INFO
log.max_file_size 单个日志文件最大大小,单位bytes 31457280
log.max_file_num 日志数量,超过数量的日志文件,按照最后编辑时间删除 100
log.pattern 日志格式 %timestamp[%level]-[%thread]-[%class.method]: %msg%throwable
Clone this wiki locally