更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

概念介绍

基线监控

根据监控规则和任务运行情况,DataLeap的基线监控能够决策是否报警、何时报警、如何报警以及给谁报警。它保障的是任务整体产出链路,核心目标包括:
  • 覆盖链路中的所有任务;
  • 降低任务监控配置成本;
  • 避免无效报警。

保障任务

一般选择有SLA要求的任务作为保障任务加入基线,DataLeap通过保障任务的依赖拓扑图自动监控上游任务,形成需要监控的任务链路。

时间定义

承诺时间:最晚完成时间,即SLA。
预警余量:基线SLA Buffer,消耗预警余量即触发基线预警。
预警时间:任务承诺时间 - 预警余量,即任务预期最晚完成时间。
预测运行时长:基于任务历史的执行情况预测当前任务执行的运行时长。
承诺最晚开始时间:承诺时间-任务预测运行时长。
预警最晚开始时间:预警时间-任务预测运行时长。
各时间的关系如下图所示:

监控范围

DataLeap的基线默认监控的范围包括:基线保障任务及保障任务上游的所有任务。如下图所示,保障任务D,E及它们所有的上游节点都会纳入基线监控范围,而任务C,F不受基线监控。值得说明的是,DataLeap的基线监控允许用户配置基线监控只覆盖“指定项目”下的任务,此时基线监控的范围就只包含了保障任务及这些项目下的上游任务。

基线实例

和任务类似,基线也有业务时间的概念。对任务来说,一个业务时间会生成一个任务实例;而对基线来说,一个业务时间会生成一个基线实例,负责监控同一业务时间下保障任务的实例及其依赖的所有上游任务实例的运行状态。天基线和小时基线每天生成实例的规则如下:
天基线:每天生成一个基线实例,其业务时间与该基线保障任务的业务时间相同;
小时基线承诺时间有两种设置方式:统一承诺和分时承诺。如果是统一承诺,则生成基线实例的个数为24个,每个基线实例的承诺时间一致;如果是分时承诺,则每天生成N个基线实例,其中N为用户配置的监控业务时间范围包含的业务时间数量,N的范围是[1,24]。

基线实例状态

安全:任务在预警时间之前完成。
预警:任务在预警时间未开始运行,但还未达到承诺时间。
破线:任务在承诺时间仍未运行完成。
其他:基线实例关闭或者基线没有关联任务时,基线实例所处的状态。

报警类型

基线监控支持非常丰富的报警类型:
基线预警:
基线监控的链路上,首个没有在基线预警时间节点开始运行的节点。
基线破线
“基线破线”报警需满足以下两个条件:
1. 任务节点的上游(包含直接和间接上游)没有出现过破线;
2. 该任务没有在破线时间节点开始运行。
破线加剧:
“执行变慢导致破线加剧”报警触发需满足以下两个条件:
1. 任务所在链路已发送首次“基线破线”报警
2. 任务运行耗时相较于预测运行耗时有所增加,具体来说:
a. 当任务实际开始时间早于基线破线开始时间时,将“破线开始时间 + (预测运行耗时 * (1 + N%))”作为检测时间点,如果任务到达检测时间点时还没有运行完成,则触发告警;
b. 当任务实际开始时间晚于破线开始时间时,将“任务实际开始时间 + (预测运行耗时 * (1 + N%))”作为检测时间点,如果任务到达检测时间点时还没有运行完成,则触发告警。
保障任务预警时间未完成:
基线预警时间到达(承诺时间-预警余量),检查基线所有保障任务是否完成运行,若有保障任务未运行完成,且基线之前无预警、破线报警,则触发报警。
保障任务承诺时间未完成:
基线承诺时间到达,检查基线所有保障任务是否完成运行,若有保障任务未运行完成,则触发报警。
任务失败事件:
基线监控链路上,任意任务,重试结束仍失败,则触发失败事件。监控链路上的任务,发生失败事件则触发该报警。

基线事件

基线监控任务(保障任务及其上游任务),在执行过程中,若出现失败、变慢等情况,将被当作基线的异常事件,进行记录。
变慢事件: 识别基线监控任务(保障任务及其上游)运行变慢的情况。识别条件为:任务运行时长较该任务的预测运行时长上涨了X%,则视为一个变慢事件。
失败事件: 识别基线监控任务(保障任务及其上游)运行失败的情况,识别条件为:任务运行过程中出现过失败,则视为一个失败事件。
基线事件的状态包含“新发现”和“已恢复”两种。当基线监控的任务产生变慢或者失败事件时,基线事件状态更新为“新发现”;但如果任务最终完成了的话,基线事件的状态会被更新为“已恢复”。
 
点击跳转大数据研发治理套件 DataLeap了解更多

DataLeap的全链路智能监控报警实践(二):概念介绍的更多相关文章

  1. 数据库设计理论与实践·<二>概念设计与逻辑设计

    2一.概念设计 1.1 概念设计关键知识 1.2 辨析 实体与属性的区别: ①实体能进一步用多个属性来描述,属性却不能,属性是不可再细分/分割的原子项. ②实体内部或者多个实体之间存在联系,而属性无. ...

  2. Node.js 应用全链路追踪技术——[全链路信息获取]

    全链路追踪技术的两个核心要素分别是 全链路信息获取 和 全链路信息存储展示. Node.js 应用也不例外,这里将分成两篇文章进行介绍:第一篇介绍 Node.js 应用全链路信息获取, 第二篇介绍 N ...

  3. 高德全链路压测平台TestPG的架构与实践

    导读 2018年十一当天,高德DAU突破一个亿,不断增长的日活带来喜悦的同时,也给支撑高德业务的技术人带来了挑战.如何保障系统的稳定性,如何保证系统能持续的为用户提供可靠的服务?是所有高德技术人面临的 ...

  4. <转>二十问全链路压测干货汇总(上)

    本文转载自:微信公众号-数列科技<二十问全链路压测干货汇总(上)> 最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影. 一些大型的互联网公司,比如阿里巴巴.京东 ...

  5. 全链路压测平台(Quake)在美团中的实践

    背景 在美团的价值观中,以“客户为中心”被放在一个非常重要的位置,所以我们对服务出现故障越来越不能容忍.特别是目前公司业务正在高速增长阶段,每一次故障对公司来说都是一笔非常不小的损失.而整个IT基础设 ...

  6. 全链路实践Spring Cloud 微服务架构

    Spring Cloud 微服务架构全链路实践Spring Cloud 微服务架构全链路实践 阅读目录: 网关请求流程 Eureka 服务治理 Config 配置中心 Hystrix 监控 服务调用链 ...

  7. ApiTesting全链路接口自动化测试框架 - 新增数据库校验(二)

    在这之前我完成了对于接口上的自动化测试:ApiTesting全链路接口自动化测试框架 - 初版(一) 但是对于很多公司而言,数据库的数据校验也尤为重要,另外也有小伙伴给我反馈希望支持. 所以最近几天我 ...

  8. 基于 Istio 的全链路灰度方案探索和实践

    作者|曾宇星(宇曾) 审核&校对:曾宇星(宇曾) 编辑&排版:雯燕 背景 微服务软件架构下,业务新功能上线前搭建完整的一套测试系统进行验证是相当费人费时的事,随着所拆分出微服务数量的不 ...

  9. 融云技术分享:融云安卓端IM产品的网络链路保活技术实践

    本文来自融云技术团队原创分享,原文发布于“ 融云全球互联网通信云”公众号,原题<IM 即时通讯之链路保活>,即时通讯网收录时有部分改动. 1.引言 众所周知,IM 即时通讯是一项对即时性要 ...

  10. 让全链路压测变得更简单!Takin2.0重磅来袭!

    自Takin社区版1.0发布两个多月以来,有很多测试同学陆续在各自的工作中运用了起来,其中包括金融.电商.物流.出行服务等行业.这个过程中我们收到了很多同学的反馈建议,同时也了解到很多同学在落地全链路 ...

随机推荐

  1. 使用 redis 实现分布式接口限流注解 RedisLimit

    前言 很多时候,由于种种不可描述的原因,我们需要针对单个接口实现接口限流,防止访问次数过于频繁.这里就用 redis+aop 实现一个限流接口注解 @RedisLimit 代码 点击查看RedisLi ...

  2. Electron原生菜单

    .markdown-body { color: rgba(56, 56, 56, 1); font-size: 15px; line-height: 30px; letter-spacing: 2px ...

  3. 记一次线上问题引发的对 Mysql 锁机制分析

    背景 最近双十一开门红期间组内出现了一次因 Mysql 死锁导致的线上问题,当时从监控可以看到数据库活跃连接数飙升,导致应用层数据库连接池被打满,后续所有请求都因获取不到连接而失败 整体业务代码精简逻 ...

  4. LeetCode-Java:88合并两个有序数组

    题目: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你 合并 nums2 到 nums1 中 ...

  5. 基于Python下MySQL数据库驱动

    由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器. 1.mysql-connector-python ​ mysql-con ...

  6. 报错:bs4.FeatureNotFound: Couldn't find a tree builder with the features you requ

    安装 pip3 install lxml 即可

  7. Gradio-Lite: 完全在浏览器里运行的无服务器 Gradio

    Gradio 是一个经常用于创建交互式机器学习应用的 Python 库.在以前按照传统方法,如果想对外分享 Gradio 应用,就需要依赖服务器设备和相关资源,而这对于自己部署的开发人员来说并不友好. ...

  8. SpringBoot Seata 死锁问题排查

    现象描述:Spring Boot项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出 但是,奇怪的是,本地可以正常启动 好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无法启动的问 ...

  9. 常见速率协议的CDR带宽情况

    100G PAM4 4MHZ 802.3/OIF-CEI 50G PAM4 4MHZ 802.3/OIF-CEI 28G PAM4 4MHZ 802.3/OIF-CEI 28G PAM4 4MHZ 8 ...

  10. liunx系统sed命令使用

    增 sed '$行数i 新增内容' 文件名在文件里某行上面新增内容 sed '$行数a 新增内容' 文件名在文件里某行下面新增内容 -i.bak对源文件进行修改并备份修改之前源文件 #在文件里第5行上 ...