本文最后更新于 2024-08-30,文章内容已经超过7天没更新了。

要开发glowroot就需要了解每一个监控指标的含义,方便我们在开发过程中能够预料到最终呈现的效果

agent id

agent id是glowroot监控的服务id,集群架构下,每一个glowroot都会生成一个agent id注册到central中,作为该服务的唯一标识,而agent id是服务启动是在jvm option中配置的

Transaction

Transaction是glowroot监控目标的基本逻辑单位,以下皆称事务。这里的事务不同于数据库的事务,这里的事务代表的是glowroot的监控目标,而监控目标可以是一个完整的http请求链路,也可以是一个类的方法

每一个事务都有事务类型(Transaction type)、事务名称(Transaction name)、持续时间(Duration)、事务耗时(Timer)、跟踪条目(trace entry)

Timer

timer主要用来统计事务耗时,timer是一个树形结构,可以定义多个timer,glowroot内部集成了多种timer,例如一个http请求,http request是一个大的timer,里边包含了 spring controller的timer、jdbc的timer等

如上图可以看出,这个事务http request耗时15s多,耗时集中在http client request这个timer上,我们就可以针对性地优化这段代码

trace entry

trace entry可以看出这个事务的详细执行过程,内置的log插件可以捕获出事务运行时的日志

当然,在插件开发中也可以定制trace entry,比如feign调用链路跟踪

其他

  • Response time:记录了每次事务的响应时间,包括主线程和辅助线程

  • Slow trace:慢追踪,可以自定义配置慢追踪的阈值,响应时间超过这个阈值的事务将会被记录下来

  • Queries:sql执行耗时,记录了事务中的sql执行时间,有助于对sql做针对性优化

  • Service calls:记录了事务中调用其他接口耗时

  • Thread profile:线程概览,记录了线程的完整执行调用链