监控获取
访问fe:http_port/metrics时将访问MetricsAction.execute,在其中:
● 新建PrometheusMetricVisitor(visitor独立于真正提供metrics值的组件,是决定以什么方式返回给用户端的组件)。有若干种visitor,PrometheusMetricVisitor使用prometheus协议返回metrics内容
● MetricRepo.getMetric获取具体的metric信息(注意visitJvm和getNodeInfo是没有metric实体的,而是直接拼接字符串)
○ PrometheusMetricVisitor.visitJvm
○ PrometheusMetricVisitor.visit - 访问doris metrics(注意最终生成的metric名未必就是实际的metric name,可能会加上一些前缀如doris_fe_)
○ PrometheusMetricVisitor.visit - 访问system metric
○ PrometheusMetricVisitor.visitHistogram
○ PrometheusMetricVisitor.getNodeInfo
visitor模块主要有以下几个方法
# 访问Jvm相关的metric public abstract void visitJvm(StringBuilder sb, JvmStats jvmStats); # 访问一般类型的metric public abstract void visit(StringBuilder sb, String prefix, Metric metric); # 访问Histogram类型的metric public abstract void visitHistogram(StringBuilder sb, String prefix, String name, Histogram histogram); # 访问节点信息 public abstract void getNodeInfo(StringBuilder sb);
监控项生成
所有的Metric都注册在DorisMetricRegistry中,各地方的metrics都是通过DorisMetricRegistry.addMetrics注册进来的。调用的时机主要有:
● MetricRepo.init
● 自定义线程池初始化时
标签:PrometheusMetricVisitor,metric,public,metrics,访问,监控,void From: https://www.cnblogs.com/xutaoustc/p/17503740.html