更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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. JavaScript(ES6):变量的解构赋值

    解构赋值定义: 允许按照一定模式从数组或对象中提取值,然后对变量进行赋值. 数组的解构赋值 注:数组的元素要一次排序的,变量的值由他的位置决定. 基本用法 // ES6 解构赋值 let [a, b, ...

  2. IDEA在Debug模式下修改Java类,不小心关闭 Reload Changed Classes for AppArrowWebApplication 框提示之后的处理

    问题描述:Springboot maven 聚合项目里面,经常要启动多个服务. 当我们修改其中一个服务的时候,debug 启动时 idea 就会提示是否需要重新编译修改的内容,弹窗让你选择reload ...

  3. Java初始化顺序及使用Spring情况下初始化

    Java初始化顺序 1  无继承情况下的Java初始化顺序: class Sample {       Sample(String s)       {             System.out. ...

  4. JUC并发编程学习笔记(十)线程池(重点)

    线程池(重点) 线程池:三大方法.七大参数.四种拒绝策略 池化技术 程序的运行,本质:占用系统的资源!优化资源的使用!-> 池化技术(线程池.连接池.对象池......):创建和销毁十分消耗资源 ...

  5. ereere

    发现没有main函数 搜索start发现有,不过f5后发现不太像 然后在字符串那里搜索flag,点进去,然后f5但是失败了,最后发现得先定位到对应的函数处才能f5  f5 逐个查看函数,找到sub_4 ...

  6. 编译wasm Web应用

    刚学完WebAssembly的入门课,卖弄一点入门知识. 首先我们知道wasm是目标语言,是一种新的V-ISA标准,所以编写wasm应用,正常来说不会直接使用WAT可读文本格式,更不会用wasm字节码 ...

  7. C++ 共享内存ShellCode跨进程传输

    在计算机安全领域,ShellCode是一段用于利用系统漏洞或执行特定任务的机器码.为了增加攻击的难度,研究人员经常探索新的传递ShellCode的方式.本文介绍了一种使用共享内存的方法,通过该方法,两 ...

  8. LambdaQueryWrapper常用方法

    /***附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了*/wrapper.eq("实体类::查询字段", "条件值"); / ...

  9. StingBuilder与StringBuffer包含的常见方法(图示)

    StingBuilder与StringBuffer包含的常见方法

  10. JMeter变量和调试取样器

    变量 可以在测试计划中定义变量 可以通过${变量名}进行调用 调试取样器可以看到变量参数