入门:蒙特卡罗数据事件的自动检测和警报

在本系列中,推荐一个正规滚球网站将重点介绍您的业务在构建时必须遵循的关键步骤 数据事件管理工作流,包括事件检测、响应、根本原因分析 & 决议(RCA),以及无可指责的事后分析. 

让推荐一个正规滚球网站从事件检测和警报开始,这是你的第一道防线 数据停机时间 以及破碎的数据管道.

随着企业越来越依赖数据来推动决策, 要求数据准确可靠的责任从来没有这么高过.  随着越来越多的数据进入你的数据生态系统, 出错的机会只会增加, 成本计算高于 每年1200万美元更不用说宝贵的时间和利益相关者的信任了.   

几十年来,, 软件工程和DevOps团队依靠一个多步骤的过程来识别, 伤检分类, 解决, 并防止软件问题导致他们的应用程序崩溃. 随着数据操作的成熟,是时候处理了 数据停机时间, 换句话说, 数据丢失的一段时间, 不准确的, 或其他错误, 以同样的勤奋, 特别是在构建更可靠、更有弹性的数据系统时. 

第一步? 事件检测和警报, 你的第一道防线是防止数据管道被破坏,以及不可避免的早晨来自你的高管的ping(“为什么数据是错误的??)和利益相关者(“这个仪表盘发生了什么??).

幸运的是, 通过正确的流程, 技术, 文化到位, 你的数据团队可以促进协作, 高效的识别工作流程, 医治, 并防止这些问题消耗太多宝贵的时间和精力,侵蚀组织其他部门的数据信任.

步骤1. 编写数据事件运行簿

才能检测到事件, 您需要建立流程并开发良好(足够)的文档来沟通职责, 角色, 当你收到可怕的松弛消息或PagerDuty通知时,也有一个清晰的前进路径. 引用本杰明·富兰克林的话, “没有计划就是计划着去失败。,这一点在管理员工时当然是正确的 未知的未知 在数据管道中.  

无论您为数据管道设置了多少测试, 意外事件注定要发生, 有一个适当的计划会在问题出现时帮助你. 就像 站点可靠性工程师(SREs) 当应用程序中断时,利用运行簿, 现代数据工程师应该为管道破裂做好准备, 太. 

至少,我建议您的运行簿地址如下: 

  1. 您的组织认为什么是数据事件? 这使您的团队能够确定您是否应该担心这个问题. 也许数据事件可以通过重新启动一个气流DAG来解决, 或者,您可能需要提交一个票据,以便与数据团队的其他成员更深入地研究这个问题. 无论哪种方式, 确定哪些是真正的突发事件,哪些可以优先考虑或忽略,有助于减少噪音,让团队保持专注. 
  1. 当发生数据事故时,谁在接收警报? 这在不同的组织中是不同的,所以你需要找出最适合你的团队的方法. 有些团队将一个人分配到所有数据事件中,作为第一道防线, 而其他公司则有一个数据工程团队负责新鲜度和容量, 还有一个分析团队来验证数据. 为特定类型的事件或事件的特定方面分配所有权将在未来带来好处, 提高团队合作和识别的能力 问题的根本原因. 最佳实践是通过PagerDuty将警报集成到数据工程工作流中, 松弛, Opsgenie, 以及其他流行的渠道,以确保所有数据利益相关者和最终用户在出现问题时得到提醒.
  1. 您将如何与涉众和最终用户沟通该事件? 一些组织对此采取了直接的方法, 向团队特定渠道发送事件通知(例如针对影响重要营销仪表盘的事件的松弛渠道). 其他组织则在数据工程团队内部保持第一道防线, 只有在清楚这个问题是“真实的”时才提醒利益相关者, 事实上, 影响下游数据消费者. 不管采用什么方法, 至关重要的是,您的第一道防线是技术性的——足以理解您的数据环境上下文中的事件, 并且有足够的业务悟性来理解业务上下文和问题的影响. 检查这两个箱子非常有帮助, 因为它减少了有效地沟通问题的技术范围和业务影响所需的往返. 

步骤2. 检测数据事件

将自动数据质量监控集成到关键工作流中是事件管理流程成功的基础, 并且允许您的团队指定谁正在调查问题及其状态(i.e.,待定,调查,解决). 图片由蒙特卡罗提供.

当数据管道破裂时,第一步是事件检测. 

不用说,你应该是 测试你的数据 在它进入生产和捕获已知的未知之前, 换句话说, 您可以在一定阈值范围内预测的问题.

然而, 测试和其他断路器方法失败的数据团队,当涉及到检测事件,你不能预测或解释生产- 未知的未知. 作为一个结果, 测试数据并不能提供真正的端到端可观察性, 对于数据驱动的业务来说,哪些是必要的. 随着数据管道变得越来越复杂, 未知未知数的数量只会在staging和prod中增加.

这就是为什么数据需要测试和 可观察性 确保端到端可靠性. 现代数据团队必须将数据视为动态的, 不断变化的实体, 不仅仅适用于严格的测试, 还有持续的数据可观察性. 通过数据可观察性,可以自动检测问题 数据监控和警报 并根据ml生成或自定义设置的阈值触发. 

数据可观察性的一个关键方面是 异常检测,它允许组织确定支柱何时 健康数据 (i.e.,数量,新鲜度,模式和分布)在生产中没有达到预期. 当异常检测实现端到端(如跨仓库)时,它对业务是有价值的, 湖泊, ETL, 和BI工具),而不是只用你的数据平台的一到两层来实现. 这样做可以让团队全面了解组织的数据运行状况, 所以如果有什么事情破坏了你的团队,你是第一个知道和解决的人.

步骤3. 建立数据事件的警报工作流程-在5分钟内

如果管道坏了,但周围没有人听到,那它真的坏了吗? 

In 2021, 当数据为公司做出的几乎每一个关键决定提供支持,并影响到整个组织的团队时, 答案是肯定的. 

玩笑归玩笑, 当出现问题时,您的团队应该得到提醒, 而不是花几个小时甚至几天的时间手工调查这个问题. 在你在可以玩滚球的正规app设置警报之前, 你的团队应该建立考虑突发事件的基本规则, 谁应该接收某些类型的警报, 以及在哪里接收它们是最好的. 这些指导方针和过程应该在团队的运行手册中作为文档.

蒙特卡罗利用机器学习根据历史数据自动生成警报, 在你的一端需要一点抬力才能站起来跑起来. 提醒可以直接发送到松弛、电子邮件、PagerDuty、Opsgenie、Mattermost和webhook. 

为你的团队设置警报, 导航到“设置”选项卡, 点击左侧侧边栏的“Notifications”:

良好的警报将突出适当的渠道, 收件人, 并与手头问题类型对应的通知信息. 图片由蒙特卡罗提供.

点击“ADD NOTIFICATION”,选择你想让你的警报路由到的通道. 

许多团队选择为重要的表设置PagerDuty或Opsgenie通知.e. 财务报告, 产品统计, 营销花费, 和操作指标)和松弛或电子邮件通知不太重要的表. 这样的通知可以让您的团队减少嘈杂的警报.

图片由蒙特卡罗提供.

接下来,选择您希望路由到该通道的事件. 默认情况下,您可以拥有所有事件路由, 或者您可以选择自定义的选项, 比如特定表或报告的自定义规则违反.

图片由蒙特卡罗提供.

如果您选择违反规则, 团队可以将所有或仅选择一条违反规则的行为路由到特定的渠道:

图片由蒙特卡罗提供.

最后,您可以为“数据集”选择一个“自定义”过滤器 & 表格”,以缩小需要通知的数据集或表格:

图片由蒙特卡罗提供.

而蒙特卡罗则使自动驾驶成为可能, 基于数据中的历史模式的端到端异常检测, 一些团队选择根据特定的业务需求设置自定义警报. 随着公司数据策略的成熟,我建议两者都加以利用.

前进

建立一流的事件管理实践不仅需要正确的工具, 同时也是一种降低噪音的整体方法, 重视关键资产, 无声错误的解释, 最重要的是, 促进整个公司更容易的协作.

损坏的数据管道可能不会发出声音, 但它们的影响足以摧毁隐喻性的树木.

在推荐一个正规滚球网站事件管理系列的第二部分, 推荐一个正规滚球网站将分享应对数据事件的最佳实践和经验教训.

有兴趣通过蒙特卡罗为您的数据团队建立一个健壮的事件管理流程? 联系斯科特 推荐一个正规滚球网站团队的其他成员!