GAIA:智能运维领域通用公开数据集

2023-11-23 17:32

本文主要是介绍GAIA:智能运维领域通用公开数据集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​​

# 技术黑板报 # 第二期

推荐阅读时长:10min

为了进一步推动智能运维(AIOps)行业产学研协同发展,通过产业实践反哺学术研究,吸引学者共同探索、挖掘、解决AIOps领域问题,云智慧基于超过十年运维领域实践,推出GAIA(Generic AIOps Atlas)智能运维领域通用公开数据集。

#1概述

GAIA(智能运维领域通用公开数据集,Generic AIOps Atlas)是用于分析如异常检测,日志分析,故障定位等操作问题的公开数据集。

作为AIOps领域首次发布的公开数据集,GAIA包含超7千条指标类数据,超700万行日志类数据,以及融合指标、日志、调用链三种数据的融合模态数据。

数据主要来自于云智慧研发的MicroSS(微服务模拟系统,Micro Simulation System)和已获得授权并进行严格脱敏处理的云智慧用户数据。在此基础上,我们还通过控制用户的行为并模仿对系统的错误操作模拟了真实系统中可能发生的异常。为了方便对根因算法进行公平的评估,我们还提供了所有异常注入的记录。

#2六大算法问题

基于GAIA提供的AIOps领域的指标、日志、追踪三个原始数据及一元、二元、转化三种基本运维场景,云智慧根据十年实践经验发布了指标异常检测、日志解析、指标根因分析等六种算法问题。

  • 指标异常检测

场景介绍

当IT系统出现故障时,运营商必须保证部署的服务和中间软件有足够的计算和网络资源,解决恶化系统性能的紧急情况,快速找到IT系统故障或问题的根本原因。这时候很多监控指标会呈现异常状态。运维算法作为自动发现系统监控指标是否处于异常状态的一种手段,如果使用得当,将及时通知系统出现故障,为进一步的根因分析提供有价值的线索。

因此,指标的异常检测能及时告警,判断系统是否有故障,并且为后续的根因分析提供了宝贵的信息和时间,在AIOps中非常重要。

业务说明

对于给定的指标有异常行为的,我们给出了时间序列的每个点标签(0为正常,1为异常)。参与者需要通过算法准确判断时序数据中的正常数据点和异常数据点。在我们的数据集中,有周期性数据、平稳数据、具有变化点的数据等不同类型的数据类型,参与者需要准确识别上述不同数据类型下的异常值。

  • 指标预测

场景介绍

AIOps平台收集的运维数据明确表明其部署的IT系统或底层业务发展的运营情况。对于IT运营系统的预测至关重要,尤其是在早期获取IT设施硬件工作状态信息的背景下,例如CPU使用率、磁盘内存,当发生损坏时,这将显著降低计算效率、网络响应速度和I&O稳定性。除了对上述硬件指标进行预测外,对与业务绩效相关的关键指标的准确预测,进一步为市场增长趋势和未来预期收入等关键事件的商业洞察提供了依据。可以利用基于感兴趣的关键指标的历史行为的预测来支持资源优化,从而实现设备利用率的最大化和成本的降低、提前警报设备故障、提供对重要事件的业务透视等。

因此,指标预测在AIOps中至关重要,它可以让运维团队提前获知设备运行状态,例如CPU使用率、磁盘内存和网络响应时间等基本监控,并在未来的库存容量和销售收入中得到指示。

业务说明

在收集用于预测的目标指标之前,参与者需要估计这些指标是否可以预测以及可以预测到什么程度。在GAIA数据集中,有不同种类的数据类型,例如周期性数据、线性数据、平稳数据、有变化点的数据等。这里的指标预测任务是对上述数据集来自硬件监控或业务监控的客户给定感兴趣的指标,参与者需要进行时间序列预测并尽可能准确地预测他们的未来,给定历史数据集和了解可能影响预测的任何未来事件。

  • 日志语义异常检测

场景介绍

日志记录了软件系统的详细运行信息,理论上包含了丰富的系统信息。工程师可以检查记录的日志以了解软件系统的状态,检测系统异常并定位根本原因。因此,日志在IT运维中扮演着重要的角色。日志异常检测也成为亟待解决的问题。特别是,日志语义包含大量信息,例如日志是否与故障相关联,日志中包含什么类型的异常。日志语义信息的使用有助于检测系统异常并定位系统的根本原因。传统上,工程师只是对可能与故障相关的日志进行关键字搜索,例如“failed”、“kill”等。然而,这种方法既耗时又容易出错,并且工程师还无法获得它的异常类型。

业务说明

此任务分为两个阶段:日志分类和异常类型分类。在日志分类阶段,我们根据日志语义将日志分为正常日志和错误日志。在异常类型分类阶段,我们首先定义了软件系统常见的六种异常:文件/目录操作异常、网络异常、数据库异常、硬件异常、操作系统异常和其他异常。然后,我们检测日志中包含的异常类型。这个任务的输出是一个像(log-type, exception-type)这样的元组。

  • 日志解析

场景介绍

在许多软件系统的开发和维护过程中,日志是必不可少的。它们在系统运行期间记录详细的运行信息,允许开发人员和支持工程师监控他们的系统并分析异常行为和错误。然而,现代软件系统的规模和复杂性不断增加,使得日志量呈爆炸式增长,从而使得传统的手动日志检查方式变得不可行。最近的许多工业工具研究都基于强大的文本搜索和基于机器学习的分析解决方案。由于日志的非结构化性质,第一个关键步骤是将日志消息解析为结构化数据以供后续分析。

业务说明

日志是半结构化文本数据,由常量字符串和变量值组成。常量部分显示了日志消息的事件模板,并且在每次事件发生时都保持不变。变量部分携带感兴趣的动态运行时信息(即参数),在不同的事件发生之间可能会有所不同。 日志解析的目标是将每个日志消息转换为特定的事件模板(例如,“Starting executor ID <*> host <*>”)与关键参数(例如,[“5”,“mesos-slave-07”]),其中“<*>”表示每个参数的位置。并且需要获取对应的所有日志每个日志模板。

  • 命名实体识别(NER)

场景介绍

从非结构化文本中识别和分类命名实体,或命名实体识别(NER),是自然语言处理中的一个核心问题,具有多种应用,如分类、意图分析等。

日志是计算机生成的字符串,其中包含与触发该日志事件操作相关的大量上下文信息。各种系统和设备每天都会生成大量日志消息。该信息既可以是人类可读的,也可以是机器可读的。当出现故障时,运维人员需要读取大量的原始日志,根据日志中的信息定位和解决问题。然而,这些数据类型不同并且数量大,增加了我们理解和感知这些日志消息的复杂性。为了解决这个问题,我们需要确定一种以命名实体形式提取信息的方法,这就是日志分析中的NER任务。

作为NLP中的一项基础上游任务,NER不仅可以帮助运维人员节省大量时间,还可以进一步用于其他相关任务。在日志解析任务中,由于命名实体始终是变量,NER可以指示日志的常量部分和变量,从而获得该日志的模板。

因此,NER是AIOps中的一项重要任务。提取日志中的重要信息,通过将多个日志和指标的信息关联起来,让运维人员免去阅读大量原始日志的麻烦,帮助运维人员快速找出根本原因,从而帮助更快地修复问题。NER作为AIOps中的上游任务,其结果不仅可以用于日志分析,还可以进一步用于其他任务。

业务说明

NER问题可以看作是一个序列标注问题。在机器学习中,序列标记是一种模式识别任务,涉及将分类标签通过算法分配给观察值序列的每个成员。在日志的上下文中,我们通常将命名实体定义为路径、主机、url、日期、时间等。

虽然NER在NLP领域已经是比较成熟的任务,但NER在日志领域仍然面临很多挑战:

  1. 实体不确定性:日志实体通常是无限的、 长度不确定的,例如路径实体,这使得通过字典或相似性方法识别实体变得非常困难。
  2. 泛化:不同来源的日志实体通常具有不同的特征。例如windows系统中的路径与Linux系统中的路径不同。另外,日志中的NER对于识别以前没有出现过的实体有更高的要求,因为很多实体在不同的环境中是完全不同的,比如宿主实体。
  3. 高性能要求:系统和设备会不断产生大量日志,通常需要处理GB级别的日志文件。如何优化模型的性能,使其能够满足NER的计算时间要求,也是NER实践中的一大挑战。

  • 指标根因分析(MeRCA)

场景介绍

IT运维旨在保持服务运行的稳定性,不出现故障。因此,运维人员必须保证部署在其上的服务和中间件的计算和网络资源充足,同时解决所有加剧系统性能的紧急情况。快速找到IT系统故障或问题的根本原因,是运维人员的重要需求。根因分析作为一种自动地发现系统症状的根本原因的过程,如果使用得当,将节省运维人员在故障定位上花费的大量时间和精力,同时提高准确性。

因此,以便为系统故障提供补救措施,根因分析在AIOps中至关重要。在定位系统的根本原因后,运维人员将能够识别问题并进行修复。

业务说明

对于具有异常行为的给定指标,参与者需要通过分析指标之间的因果关系和相关性,找出所有指标的根本原因得分(RCS),作为给定指标的根本原因。

在MeRCA中,我们的目标是发现,对于被监控的给定指标处于异常行为中,哪些指标会导致此类症状。这里我们从MicroSS 中为根因分析任务MeRCA选择一个登录场景。此场景模拟以下过程。用户通过扫描系统创建的二维码登录应用程序。这限制在生成二维码后一分钟内完成,否则二维码将从数据库中丢弃,登录失败。

END

点击链接进入GAIA数据集:www.cloudwise.ai

这篇关于GAIA:智能运维领域通用公开数据集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419592

相关文章

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal