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

相关文章

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.