监控

 监控获取

访问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

● 自定义线程池初始化时

posted @ 2023-06-25 19:03  xutao_ustc  阅读(42)  评论(0)    收藏  举报