Closed MouceL closed 1 year ago
之前的reconcile逻辑是将对应的smartlimiter的namespace/name缓存至感兴趣列表
然后通过定时器(目前代码是30s的定时器),计算生成envoyfilter
这样的处理缺失实时性,所以本mr在reconcile中增加了对smartlimiter的实时计算
实时计算过程:
根据smartlimiter spec,构建queryMap
根据queryMap查询metric
metric 结构是一个 smartlimiter meta info => []Result 的结构 大致记录的是这个 smartlimiter 对应服务的一些指标,如pods个数,对于复杂的prometheus 可能还包括 cpu sum 等指标
用查询的metric 刷新smartlimiter和envoyfiler (这里是和复用了定时任务的ConsumeMetric函数),为了避免冲突,加了把锁
之前的reconcile逻辑是将对应的smartlimiter的namespace/name缓存至感兴趣列表
然后通过定时器(目前代码是30s的定时器),计算生成envoyfilter
这样的处理缺失实时性,所以本mr在reconcile中增加了对smartlimiter的实时计算
实时计算过程:
根据smartlimiter spec,构建queryMap
根据queryMap查询metric
用查询的metric 刷新smartlimiter和envoyfiler (这里是和复用了定时任务的ConsumeMetric函数),为了避免冲突,加了把锁