ycrash概述–查找问题根源
业界已经看到了最先进的应用程序性能监视工具(AppDynamics,NewRelic,Dynatrace…)和日志分析工具(DataDog,Splunk等)。 这些是检测问题的好工具。 也就是说,他们可以检测到CPU的峰值提高了x%,内存降低了y%,响应时间缩短了z秒。 但是他们没有回答这个问题:为什么CPU急剧增加? 为什么内存降级了? 为什么响应时间增加了? 您仍然需要与开发人员/架构师/供应商合作,以解决问题并确定问题的根本原因。
ycrash捕获问题发生时的关键工件(GC日志,线程转储,核心转储,堆转储,netstat,vmstat,lsof,iostat,top,磁盘使用等。),应用机器学习算法并生成一份统一的根本原因分析报告。 该报告为您提供了360度的问题视图。 该报告指出了导致问题的确切类,方法和代码行。
建筑
ycrash有两个主要组成部分:
一个。 ycrash发送器:这是一个简单的shell脚本。 该脚本可以手动触发,也可以基于某些警报以自动方式触发。 该脚本与APM工具很好地集成在一起。 通过APM工具,您可以触发此脚本。 该脚本将从应用程序中捕获以下工件:
- GC日志
- 线程转储
- 堆转储(如果需要)
- 网络统计
- 虚拟机
- iostat
- lsof
- 最佳
- 顶-h <pid>
- 磁盘使用情况
捕获的工件会传输到ycrash服务器。
b。 ycrash服务器: ycrash服务器使用机器学习算法分析所有不同的工件,并生成一个统一的根本原因分析报告。 它使用以下Tier1app工具来分析工件:
- GCeasy:分析垃圾收集日志
- FastThread :分析线程转储
- HeapHero :分析堆转储
报告将存储在服务器中,并且可以随时在线查看。 此外,还提供了功能强大的仪表板,因此可以轻松地在日历模式下搜索和查看报告。
ycrash的优点是什么?
- 一份统一的根本原因分析报告:大多数时候,SRE工程师捕获工件,然后将其提供给开发人员/架构师,供应商有时会对其进行故障排除。 他们可以利用自己的美好时光来找到问题的根本原因。 ycrash生成一份统一的根本原因分析报告。 该报告为您提供了360度的问题视图。 报告指出了导致问题的确切类,方法,代码行。
- 在正确的时间捕获正确的工件:由于目前的热度,大多数SRE工程师在没有捕获所有正确的工件的情况下重新启动应用程序。 即使捕获,大多数SRE工程师也只能捕获部分工件。 没有合适的工件,将很难调试问题。 ycrash自动执行此过程。 它在正确的时间点捕获所有工件。
ycrash是APM工具的替代品吗?
不,它不能替代APM(应用程序性能监视)工具。 它补充了APM工具。 它旨在解决APM工具的缺点。 它与APM工具很好地集成在一起。
还请参见:开发后的发展–“ SDM代表软件交付,而CRM代表销售”
本地部署模型
ycrash发射器和ycrash服务器都在客户的前提下运行。 没有数据传输到客户的公司防火墙之外。
认证与授权
ycrash支持基于SAML的身份验证,因此可以轻松集成到客户端的身份验证和授权解决方案中。
API和与监控工具的集成
ycrash提供了一个简单的REST API。 ycrash可以轻松地与行业标准的APM,日志分析和CI / CD工具集成。 可以在以下位置找到有关ycrash API的更多详细信息:
代理或触发器
ycrash发送器是一个简单的shell脚本,可捕获各种工件并将其传输到ycrash服务器。 Ycrash发送器应在遇到问题的主机上执行。 生成任何警报时,可以从APM工具自动执行此脚本。
如果客户担心要运行ycrash传输器脚本,则可以编写一个自定义脚本,该脚本可以通过HTTP(S)POST捕获上述工件到ycrash服务器。
数据传输
数据通过简单的HTTP(S)POST从ycrash传输器传输到服务器。 ycrash发送器和服务器都部署在客户的网络内。
资料私隐
没有数据离开客户的公司防火墙。 所有收集的数据仅存储在客户的网络中。 因此,数据隐私受客户数据政策的约束。
资料保留
数据存储并存档在客户的站点中。 因此,数据保留受客户数据保留政策的约束。
故障转移/ SLA
该服务器与平台无关。 它可以在任何平台(Unix,Windows,私有数据中心,VM,云等)上运行。 ycrash服务器仅需要Java 8或更高版本即可运行。 此外,通过在任何类型的负载均衡器(F5,apache,nginix等)后面的多个节点上运行,可以使服务器具有高可用性。
还请参见: 语音识别:“没有什么我不能制作成音频游戏的”
服务器和脚本是否需要定期更新?
ycrash服务器:我们每个季度发布一个新版本。 每当我们发布新版本时,我们都会向您发送通知。 您可以按照允许的时间表升级ycrash服务器。
ycrash脚本:不常见。 但是,如果我们计划捕获其他工件(我们这样做),则需要更新脚本。
捕获/分析过程需要运行多长时间?
捕获所有工件需要120秒。 但是,此值是可配置的。 一旦捕获到伪像并将其传输到ycrash服务器,就会instantly进行分析。
触发脚本或完成分析时是否有任何通知?
捕获所有工件并完成分析后,将发送电子邮件通知。