Skip to content

Latest commit

 

History

History
255 lines (235 loc) · 8.3 KB

README_zh.md

File metadata and controls

255 lines (235 loc) · 8.3 KB

罗盘

English document

Compass是一个诊断大数据生态系统中计算引擎和调度器的平台,旨在提高故障排除的效率并降低问题调整的复杂性。 它自动收集日志和指标,除了使用启发式规则来识别问题并提供调整建议,对于日志,还使用了ChatGPT还提供诊断建议, 日志将使用drain算法自动聚合为模板,可用于人工干预等,提升诊断自动化和优化方案能力。

其主要功能特性如下:

  • 非侵入式,即时诊断,无需修改已有的调度平台,即可体验诊断效果。
  • 支持多种主流调度平台,例如DolphinScheduler 2.x和3.x、Airflow或自研等。
  • 支持多版本Spark、MapReduce、Flink、Hadoop 2.x和3.x 任务日志诊断和解析。
  • 支持工作流层异常诊断,识别各种失败和基线耗时异常问题。
  • 支持引擎层异常诊断,包含数据倾斜、大表扫描、内存浪费等14种异常类型。
  • 支持各种日志匹配规则编写和异常阈值调整,可自行根据实际场景优化。
  • 支持一键诊断全量(包含非调度平台提交任务)Spark/MapReduce任务。
  • 支持ChatGPT对异常日志进行诊断,提供解决方案,使用了drain算法聚合模板,节约成本。

支持组件

  • ChatGPT
  • Spark
  • Flink
  • Mapreduce
  • Trino
  • Spark Tez
  • Airflow
  • DolphinScheduler
  • Azkaban
  • Oozie
  • Debezium (同步Postgresql到Postgresql的数据同步)
  • Other(我们非常欢迎与倾听其他任务建设性意见)...

文档

部署指南

架构文档

社区

欢迎加入社区咨询使用或成为 Compass 开发者。以下是获得帮助的方法:

我们将会尽快回复。

罗盘已支持诊断类型概览:

引擎 诊断维度 诊断类型 类型说明
Spark 失败分析 运行失败 最终运行失败的任务
首次失败 重试次数大于1的成功任务
长期失败 最近10天运行失败的任务
耗时分析 基线时间异常 相对于历史正常结束时间,提前结束或晚点结束的任务
基线耗时异常 相对于历史正常运行时长,运行时间过长或过短的任务
运行耗时长 运行时间超过2小时的任务
报错分析 sql失败 因sql执行问题而导致失败的任务
shuffle失败 因shuffle执行问题而导致失败的任务
内存溢出 因内存溢出问题而导致失败的任务
资源分析 内存浪费 内存使用峰值与总内存占比过低的任务
CPU浪费 driver/executor计算时间与总CPU计算时间占比过低的任务
效率分析 大表扫描 没有限制分区导致扫描行数过多的任务
OOM预警 广播表的累计内存与driver或executor任意一个内存占比过高的任务
数据倾斜 stage中存在task处理的最大数据量远大于中位数的任务
Job耗时异常 job空闲时间与job运行时间占比过高的任务
Stage耗时异常 stage空闲时间与stage运行时间占比过高的任务
Task长尾 stage中存在task最大运行耗时远大于中位数的任务
HDFS卡顿 stage中存在task处理速率过慢的任务
推测执行Task过多 stage中频繁出现task推测执行的任务
全局排序异常 全局排序导致运行耗时过长的任务
MapReduce 资源分析 内存浪费 内存使用峰值与总内存占比过低的任务
效率分析 大表扫描 扫描行数过多的任务
Task长尾 map/reduce task最大运行耗时远大于中位数的任务
数据倾斜 map/reduce task处理的最大数据量远大于中位数的任务
推测执行Task过多 map/reduce task中频繁出现推测执行的任务
GC异常 GC时间相对CPU时间占比过高的任务
Flink 资源诊断 内存利用率高 计算内存的使用率,如果使用率高于阈值,则增加内存
内存利用率低 计算内存的使用率,如果使用率低于阈值,则降低内存
JM内存优化 根据tm个数计算jm内存的建议值
作业无流量 检测作业的kafka source算子是否没有流量
TM管理内存优化 计算作业管理内存的使用率,给出合适的管理内存建议值
部分TM空跑 检测是否有tm没有流量,并且cpu和内存也没有使用
并行度不够 检测作业是否因为并行度不够引起延迟
CPU利用率高 计算作业的CPU均值使用率,如果高于阈值,则增加cpu
CPU利用率低 计算作业的CPU均值使用率,如果低于阈值,则降低cpu
CPU峰值利用率高 计算作业的CPU峰值使用率,如果高于阈值,则增加cpu
异常诊断 存在慢算子 检测作业是否存在慢算子
存在反压算子 检测作业是否存在反压算子
作业延迟高 检测作业的kafka延迟是否高于阈值

UI

Spark: overview overview-1 tasks onclick application cpu memory

Flink: overview overview-1 tasks report

版权

罗盘许可证是 Apache License, Version 2.0,详情请参考 LICENSE and NOTICE

引用

Drain算法基于Logpai项目, 详情请查看