随笔分类 -  metric

摘要:对于RPC的性能收集,以微博的motan和阿里的dubbo为例,也是通过intercept去做的。 motan的性能指标收集:使用的是motan中的扩展机制 //此处的spi使用的是weibo.com中的扩展 @SpiMeta(name = "pepperProfiler") @Activation 阅读全文
posted @ 2021-02-09 11:33 jingyi_up 阅读(488) 评论(0) 推荐(0) 编辑
摘要:所有的性能收集其实都是基于aop的,对于jedisCluster性能(jedis的一样)的收集,因为其并没有提供类似于mybatis的intercept机制,所以只能手动实现可供收集性能数据的切面。 说到切面,第一个就会想到代理,接下来就通过cglib实现对jedisCluster的代理。 动态代理 阅读全文
posted @ 2021-02-08 18:23 jingyi_up 阅读(313) 评论(0) 推荐(0) 编辑
摘要:mybatis的性能指标统计与Http类似,也是基于aop的方式,利用mybatis提供的intercept机制。直接看下Interceptor的定义: @Intercepts( value = { @Signature (type=Executor.class, method="update", 阅读全文
posted @ 2021-02-08 15:05 jingyi_up 阅读(506) 评论(0) 推荐(0) 编辑
摘要:这一篇主要是介绍一种使用Prometheus收集服务健康状态指标的案例,以常用的Druid数据源为例。 先看几个公共类的定义: HealthStats:其中定义了MeterRegistry和namespace(用来区分不同的统计对象) public class HealthStats { priva 阅读全文
posted @ 2021-02-08 14:25 jingyi_up 阅读(1740) 评论(0) 推荐(0) 编辑
摘要:这一篇看一下Prometheus对http请求的指标收集,先来看两个指标定义: (1)使用的指标类型: 这三种指标类型的特性在之前推荐的一篇关于Prometheus介绍的文章里有详细说明,这里简单回顾一下,gauge可以进行加减操作,反映指标的当前状态;counter只能增不能减,反映指标的计数,如 阅读全文
posted @ 2021-02-07 10:59 jingyi_up 阅读(1684) 评论(0) 推荐(0) 编辑
摘要:因为Prometheus是通过http接口的形式来采集数据的,所以需要向Prometheus server暴露端点。spring boot2.x版本在Actuator中集成了Prometheus,此外也可以手动向其暴露端点。接下来就说第二种。 @Spi public interface MeterR 阅读全文
posted @ 2021-02-06 17:58 jingyi_up 阅读(943) 评论(0) 推荐(0) 编辑
摘要:这是一篇非常好的关于Prometheus的介绍文章,包括其架构、工作模式、数据模型等。 https://www.ipyker.com/2019/01/12/prometheus.html 阅读全文
posted @ 2021-02-06 15:53 jingyi_up 阅读(57) 评论(0) 推荐(0) 编辑
摘要:java也有自己的SPI实现,但是有很多小毛病,比如:会一次性加载所有扩展实现,不能支持一些复杂的元数据表达,据说多了类加载器同时加载会有并发问题(没有考证过)。所以很多框架都提供了SPI机制供使用者自己扩展,例如Dubbo,使用SPI还可以实现按需加载扩展点。之前看过Dubbo的SPI实现,其实它 阅读全文
posted @ 2021-02-05 20:18 jingyi_up 阅读(129) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示