基于分布式跟踪的异常检测技术

文章目录

  • 前言
  • 一、基于分布式跟踪的异常检测技术
    • 1.基于多服务应用程序训练运行中的轨迹训练的无监督神经网络
    • 2.基于多服务应用程序训练运行中的轨迹训练的有监督神经网络


前言

在线异常检测也可以通过检测目标应用程序来实现附加功能,最常见的是分布式跟踪。分布式跟踪确实是各种异常检测技术的基础,与监督或无监督机器学习或跟踪比较技术相结合。


一、基于分布式跟踪的异常检测技术

1.基于多服务应用程序训练运行中的轨迹训练的无监督神经网络

TraceAnomaly and Nedelkoski 他们通过利用经过训练的神经网络来处理应用程序在生产环境中运行时生成的痕迹,从而进行在线异常检测。TraceAnomaly训练了一个带有后验流的深度贝叶斯神经网络,它能够将被监控的轨迹与正常的可能性相关联,即不受性能异常的影响。它还存储所有可见的服务调用路径,即在可用跟踪中观察到的所有服务交互序列。
TraceAnomaly分两步实现在线异常检测:
第一步:首先检查新生成的跟踪是否包含以前未看到的调用路径,如果包含以前未见的调用路径,他将根据应用程序操作员是否在白名单中手动填充以排除虚假警报(例如,对应于服务升级后发生的新交互的不可见调用路径),决定是否将不可见调用路径视为应用程序的功能异常。
第二步:如果没有功能异常,则将跟踪信息传递给深度贝叶斯神经网络,该网络将监控的跟踪信息与其正常的可能性关联起来。如果可能性低于给定的阈值,则跟踪表示应用程序的性能异常。

Nedelkoski则是训练了一个多模态长短期记忆神经网络,基于应用程序无故障运行中收集的痕迹,对多服务应用程序的正常行为进行建模。这个多模态的长短期记忆神经网络会同时考虑记录在跟踪中的事件类型和应用程序服务的响应时间。
判断异常的方式:它是通过组合两个单模态网络来获得的,其中一个训练用于预测跟踪中事件之后的事件的概率分布,另一个训练用于预测服务调用的响应时间的概率分布。然后将训练过的网络用于在线异常检测,以预测事件之后最可能发生的事件以及服务调用的最可能响应时间。如果事件发生在另一个事件之后,或者服务的响应时间不在预测的响应时间之列,则应用程序分别被认为出现了功能异常或性能异常。

Jin则是使用基于通过分布式跟踪收集的跟踪的离线分析来检测多服务应用程序中的性能异常,同时他结合了从运行时环境中收集的应用程序服务的性能指标。
判断异常的方式:首先对记录的痕迹进行主成分分析,以确定可能涉及异常交互的服务。而分析的过程主要是对记录痕迹的矩阵进行化简,得出主要组件,以及应用线性组合此类主组件以引发涉及异常轨迹的服务的函数来完成的。
然后,使用用于异常检测的无监督学习算法处理为此类服务收集的性能指标,使用在此类算法是为了用于确定此类指标的异常值,该指标用于为异常轨迹所涉及的服务分配异常得分。 然后,Jin返回受绩效异常影响的服务列表,即其异常得分高于给定阈值的服务,以异常分数排名。

2.基于多服务应用程序训练运行中的轨迹训练的有监督神经网络

这种方法是在多服务应用程序的训练运行中收集了痕迹,标记将正常运行与已知在特定上发生异常的情况区分开服务。 收集的轨迹用于训练神经网络,然后将其用于制定通过处理应用程序新生成的轨迹来线异常检测。

Seer通过训练一个由卷积层和长短期记忆层构成的深度神经网络来进行异常的检测,输入神经元用于传递每个服务的延迟和未完成的请求,由服务本身记录在分布式跟踪中,以及通过与服务运行的节点交互获得的资源消耗,输出神经元则指示哪些服务受到性能异常的影响。在运行时,Seer不断用受监视的轨迹来喂养受过训练的深神经网络,并且该神经网络会消耗此类轨迹,以确定某些应用程序服务是否受到性能异常的影响。如果发现受到性能影响,Seer将与承载异常服务的节点的运行时进行交互,以确定哪些计算资源正在饱和。然后,Seer会通知系统管理员该节点上发生的资源饱和,以允许管理员通过向该节点提供额外的计算资源的方法来减轻检测到的性能下降的影响。

Nedelkoski 则是训练了两个神经网络,变分自编码器和卷积神经网络。变分自编码器模拟应用程序的正常行为,卷积神经网络则是在受到性能异常影响时用来识别影响服务的故障类型。变分自编码器从应用程序正常运行中获得的分布式轨迹中学习,如果应用于异常跟踪,则自动编码器会重新构造具有重大错误的跟踪,从而能够检测异常。卷积神经网络是根据应用程序运行中收集的轨迹进行训练的,在这些应用程序中,特定故障被注入到特定服务中,因此该神经网络可以识别哪些故障导致了服务中的性能异常。
在应用于管道异常检测的运行过程:首先将变分自编码器的输出结果传递给后处理程序以排除误报。如果后处理程序判断没有误报,则将异常跟踪传递给卷积网络,以检测影响服务的异常类型。

Bogatinovski 训练了一个自监督编码器-解码器神经网络,能够根据相邻事件给出的上下文预测事件在给定“掩盖”位置的跟踪记录。鉴于要预测的“掩盖”事件发生之前和之后,经过训练的神经网络提供了在输入跟踪的任何掩盖位置出现的可能事件的概率分布。然后使用训练过的神经网络对新轨迹进行异常检测,即获得应该记录在轨迹的每个位置的事件的排序列表。由网络生成的列表由后处理程序进行分析,如果一个真正记录的事件不在预测出现在相应位置的事件之列,则后处理程序将其视为异常事件。最后,后处理器计算跟踪的异常得分(异常事件的数量除以跟踪长度)。如果异常评分超出用户指定的阈值,则跟踪将被视为影响应用程序的功能异常。

MEPFL提供了另一种应用监督机器学习的技术,在应用程序上执行在线异常检测,用于特征分布式跟踪。MEPFL可以通过利用多种监督学习算法来识别功能异常,即k-nearest neighbors、随机森林和多层感知器。MEPFL将一个多服务应用程序和一组自动测试用例作为输入,以模拟用户加载应用程序和产生跟踪的请求。
跟踪条件:包括服务配置的信息(例如,内存和CPU限制,以及卷可用性),以及实例的状态、资源消耗和服务交互
这些信息被提供给一种受支持的监督学习算法,该算法训练分类器,确定跟踪是否包含异常,哪些服务受到这种异常的影响,以及哪些类型的故障导致这些服务经历异常。

你可能感兴趣的:(人工智能)