-
Notifications
You must be signed in to change notification settings - Fork 11
设计文档
dengliming edited this page Mar 16, 2020
·
2 revisions
概览图(监控全视角),其中蓝色部分为该工具运行的位置,其他部分为监控系统的整体概览;
其中蓝色部分为可扩展插件;
metric
pool
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 |