【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

Haystack:GitHub 的异常监控工具

  • 2015-07-31
  • 本文字数:1019 字

    阅读完需:约 3 分钟

对于 GitHub 而言稳定性和性能是非常重要的,但是和其他大部分软件应用程序一样,它也会产生异常,从 Git 超时这种系统级的错误到 JavaScript 错误这种应用级的错误都会发生,这就需要一种方式能够在错误发生的时候尽快地识别它们,然后寻找最合适的团队或者个人去处理,最终实现错误的快速响应。而 Haystack 就是 GitHub 应对这一问题的钥匙。

Haystack 是 GitHub 内部的一个开发了 6 年的异常追踪程序,它能够持续地监控所有应用程序的健康状况,同时具备异常探测功能,GitHub 使用它来监控几乎所有的面向用户的特性,包括桌面应用程序。下面是 Haystack 的一个典型应用场景:

首先,当某个工程师通过 chatops 部署了新程序的时候,Hubot 就会向其推送一条包含异常流水(firehose)链接的消息,通过该链接工程师能够查看新程序部署之后产生的异常信息。

之后,Haystack 会通过一些简单的规则进行异常探测,防止不当部署和典型错误行为的发生。通过获取最后一个小时异常数的直方图 Haystack 能够判定最后时刻的异常数是否超出了配置的标准分数(z-score)。

如果发现异常数有提高,Hubot 就会发送一个消息通知最后一个部署程序的工程师进行处理。

在发送的消息中还会包含一些对应用程序当前状态的简要分析,工程师可以通过Haystack 的仪表盘查看与每条分析内容相关的详细信息,进而不断追溯并定位问题出现的原因。

最后,如果工程师能够解决问题,他们可以创建一个拉请求(Pull Request)或者问题,并将链接拖放到Haystack 让其自动地创建问题与追踪信息之间的交叉引用,以便于工程师之后在这些信息之间来回跳转。另外,如果将来类似的问题再次发生,那么工程师能够通过Haystack 查看之前对该问题的讨论以及解决的方法。

总的来说,GitHub 能够通过Haystack 了解系统发生了什么事情,什么时候发生的,应该通知哪个团队,应该从哪入手解决问题。该系统从2009 年开始就已经存在了,在最近几年里GitHub 又对其做了大量的改进,但是由于很多改进与一些其他的内部应用程序紧密相关,所以到目前为止Haystack 依然无法开源,即便如此GitHub 的这种问题处理模式依然有值得借鉴和思考的地方。如果你想了解更多与Haystack 相关的信息,请点击这里


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-07-31 01:462790
用户头像

发布了 321 篇内容, 共 115.4 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

技术面试感觉什么都会,面试官一问回答不上来怎么办?

Java高级开发

面试 性能优化 编程语言 Java 分布式

百度智能云天工获评2021世界物联网新技术新产品新应用成果金奖

百度大脑

人工智能 百度

【Java转Android】60,androidx86输入法

android 程序员 移动开发

【Jetpack篇】LiveData取代EventBus,2021年Android知识体系总结

android 程序员 移动开发

35w奖金池,腾讯云TDSQL精英挑战赛等你来战!

腾讯云数据库

数据库 腾讯云 tdsql

【原理+实战,android音视频开发何俊林

android 程序员 移动开发

【建议收藏】Android中高级大厂面试源码秘籍,面试题+笔记+项目实战

android 程序员 移动开发

Vue3.x 关于组件的那些变化(新手必看篇)

码仔

vue.js 大前端 组件化 组件

【微信小程序】开发实战 之 ,这份333页关于性能优化知识点的PDF你不能不看

android 程序员 移动开发

【中级—(1),Android资深架构师分享学习经验及总结

android 程序员 移动开发

【建议收藏】Android中高级大厂面试源码秘籍(1),android开发实战湖南师范大学出版社

android 程序员 移动开发

【Flutter 专题】126 图解自定义两侧对齐 ACETabBar 标签导航栏

android 程序员 移动开发

【从入门到实用】android启动优化深入解析,安卓系列学习进阶视频

android 程序员 移动开发

技术创新+开放共赢 华为云GaussDB加速企业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

MSE | 阿里巴巴云原生网关三位一体的选择与实践

阿里巴巴中间件

阿里云 微服务 云原生 中间件 网关

直播回顾 | MatrixDB 定义下一代时序架构(内附PPT下载)

YMatrix 超融合数据库

车联网 物联网 时序数据库 MatrixDB 超融合时序数据库

【Android高级架构师系统学习文章】Android基础-Activity全方位解析

android 程序员 移动开发

喜报!百度获国家技术发明奖

百度大脑

人工智能 百度

【孔乙已】生产者消费者有四样写法,android插件化和组件化

android 程序员 移动开发

【带着问题学】关于LeakCanary2,2021百度Android岗面试真题收录解析

android 程序员 移动开发

【Android Jetpack高手日志】ViewModel 从入门到精通,kotlin中文文档

android 程序员 移动开发

【Flutter 专题】114 图解自定义 ACEProgressPainter 对比进度图

android 程序员 移动开发

【中级—,android项目驱动式开发教程

android 程序员 移动开发

9.9元试用无影电脑,开启云上办公娱乐新体验

【Android面试技巧】当面试官问你glide的时候,android嵌入式开发实战pdf

android 程序员 移动开发

【原理+实战(1),fluttertextfield高度

android 程序员 移动开发

【Android】金三银四面试集合,android面试题大全

android 程序员 移动开发

【Android面试】热修复,赶紧收藏备战金三银四

android 程序员 移动开发

【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二)

android 程序员 移动开发

【Java转Android】29,2021最新网易Android面试题目

android 程序员 移动开发

【Android 功能库】1,醍醐灌顶

android 程序员 移动开发

Haystack:GitHub的异常监控工具_GitHub_孙镜涛_InfoQ精选文章