程序员Artist

Results 11 comments of 程序员Artist

额。。。实话没怎么看懂。不过有这个考虑就行。也就是说默认的api都是针对单机的监控,如果需要集群服务粒度的,就得换一套集群的api。另外,再问个问题,定时上报那块一般设置period是多少秒?官方建议 public void start(long period, TimeUnit unit)

> 我看demo代码入侵性很强 为了实现代码片段级别(非方法级别,方法太粗了)的追踪,侵入型是比较强。反过来理解,其实侵入型基本没有,只是把之前需要打log4j日志的一行代码换成TT了,而且不需要自己手工计算耗时了,比打日志还简单。当然如果业务不需要追踪这么细,只要到方法粒度就够了,那也可以考虑加注解的方式,这种有点为了方便而背离初衷。您说的java agent具体是指什么,能细说下吗?

> @useraddZYB javaagent 是在 JVM 运行 main 函数之前执行指定方法,比如 skywalking 可以在不需要改代码的情况下使用,只需要修改 java 程序的启动命令(加上 `-javaagent` 参数) skywalking这些开源的框架,通常做法都是读写字节码,对性能稳定性有影响,所以他们默认只对接口或方法前后判断,粒度较粗。我的这个比较简单,直接类似于log打日志的方式常规侵入,性能影响可以忽略,所以粒度可以很细。缺点就是埋点侵入的问题了。

> 你好,请问能集成到-javaagent 参数方式使用嘛? 不能。这个框架的理念,就是替换log4j,且轻量级提供trace功能。自己控制trace的粒度粗细,可以取到局部变量,且轻量级性能影响低。不考虑字节码读写的方式,我认为这种大面上是不安全的,且粒度不好把控。

对于实时debug,其实可以将tt结果日志在线输出出来,比如可以加一个特殊参数。对于历史日志,确实可以集中收集会更方便些,这个elk可以干这事,但是会比较重,更轻的实现方式可以考虑考虑

想了下,确实需要一个集中的收集、管理,和展示的dashbord系统;目前tt已经掌握了代码逻辑的核心流转及细节数据,也自然了收集了耗时、“慢sql”、异常、现场等。dashbord可以出实时监控、跨时间段的统计监控以及具体单个请求链路快照,基本能做到一个非常完整的进程“健康”实时面板。尽快找时间做一下。

哈哈,是啊,实现技术挫一点,能解决问题就行

you can see JDK ThreadPoolExecuter.addWorker(Runnable firstTask, boolean core) method. because: 1. reject is using ctl 2. But print ThreadPool.toString is using workers.size() ctl increase happend before workers.add So it's just...

you need to set ".withAllowMaximumSizeToDivergeFromCoreSize(true)" and make "maxQueueSize" less then "queueSizeRejectionThreshold"