微服务应用系统故障发现和根因定位

2020 AIOps 挑战赛

292支参赛队伍竞赛剩余时间-151奖金¥0
  • 描述
  • 评估
  • 奖金
  • 时间线



描述

数据:

* 微服务应用静态拓扑

* 实时微服务调用链数据

* 实时业务黄金指标

* 实时性能指标


关联数据集

数据集名称 文件名称 文件描述 上传时间 操作
6911 预赛评测数据 data_release_v3.5.zip 预赛评测数据5/5 2020-06-05 10:28:42 登录后,可下载
6768 预赛评测数据 data_release_v3.4.zip 预赛评测数据4/5 2020-05-31 10:07:49 登录后,可下载
6629 预赛评测数据 data_release_v3.3.zip 预赛评测数据3/5 2020-05-26 17:36:10 登录后,可下载
6181 预赛评测数据 data_release_v3.2.zip 预赛评测数据2/5 2020-05-18 16:26:52 登录后,可下载
5577 预赛评测数据 data_release_v3.1.zip 预赛评测数据1/5 2020-05-06 14:28:31 登录后,可下载
5563 第二批数据样例 data_release_v2.0.zip 第二批数据样例(含故障信息) 2020-04-15 11:01:22 登录后,可下载
5561 第一批数据样例 data_release_v1.2.zip 第一批数据样例 2020-03-18 10:37:08 登录后,可下载
5552 数据发布清单格式-样例数据二月底发布-敬请关注 data_release_format_v0.1.zip 数据发布清单格式 2020-02-22 20:48:17 登录后,可下载
还可以输入200个字符loadding评论

我的评论

锤子哥刚刚

相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

总共0条评论

排序
  • 所有
  • 锤子哥一天前

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • 还可以输入200个字符回复
  • 锤子哥一天前

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • 还可以输入200个字符回复
  • 锤子哥一天前 作者

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

      还可以输入200个字符回复
  • 锤子哥一天前

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • 还可以输入200个字符回复
  • 锤子哥一天前

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • Jia.xu一天前

      蓝鲸的产品肯定Nice

      @他
    • 还可以输入200个字符回复
  • 锤子哥一天前 作者

    相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!相当的Nice,对工作很有用,帮助我减轻了很多不必要的杂活儿,给作者赞一个!有了它,排查系统负载高的进程一目了然,赞!

      还可以输入200个字符回复

参赛规则

参赛对象

大赛面向全社会开放,年满13周岁的个人、高等院校、科研单位、企业、创客团队等人员均可报名参赛。数据集建立及维护过程中能接触到数据的人员不得参赛。


报名方式

每个参赛队伍自行选出一名领队,需完成以下两步:

1. 请领队在本网站注册账号并进行实名认证:点击“竞赛”中的“微服务应用系统故障发现和根因定位”–>点击“我要报名”按钮,点击账号头像–>点击页面左侧的“实名认证”并按要求操作。

2. 请领队发送成员信息到邮箱 netman_iops@126.com 。等工作人员审核认证信息及邮箱报名信息无误后,会回复邮件,提示报名成功。

邮件格式示例如下:

邮件标题:2020AIOps挑战赛报名_[领队姓名] ,如“2020AIOps挑战赛报名_张三”。

邮件主体内容如下:

    账号昵称(队伍名称): ****;

    注册邮箱:  ****;

    领队姓名:****,身份证号:**** ,电话:****,所在单位及部门(若为学生,则写所在学校及院系、年级):****;

    队员1姓名: ****, 身份证号:****,电话: ****,所在单位及部门:****;

    队员2姓名: **** ,身份证号:**** ,电话:****,所在单位及部门:****。

提示:

1. 队伍成员共同使用一个注册账号提交结果,领队需在官网实名认证,并发送成员信息到指定邮箱,形式如上,即为报名成功。

2. 一个队伍中只有领队需要在网站注册账号,成员无需且不得以任何形式注册其他账号,否则将取消整个队伍成绩。

3. 领队身份实名认证需要在网站提交身份证信息,认证通过之后才可进行后续的提交测试结果等操作。

4. 队伍提交结果以注册账号为准。

5.  账号昵称即为队伍名称。


注意事项

1. 报名时间:即日起至四月中旬预赛阶段结束前。

2. 参赛队伍不限制参赛人数。

3. 每支参赛队伍需要确定一位领队,并由领队在大赛平台上注册一个账号,并上传个人身份证信息,进行认证。

4. 要在比赛中排名并获得奖品,每位参赛者(个人及领队)提供个人信息,即发送邮箱的报名信息请按照示例填写完整。

5. 如果一个人参加多个队伍,与该人员关联的所有队伍都将被取消资格。

6. 参赛队员必须遵守并签署《竞赛选手报名协议》


竞赛流程

本次竞赛分为三个阶段:

1. 预赛阶段:2020年二月底,发布数据清单和数据样例;2020年3月中旬,开放第二批测试数据集(包含异常信息),并同时开放测评。各参赛队伍自行设计故障定位算法、完成算法程序。

2. 复赛阶段:2020年5月中旬-7月初,在预赛阶段中排名前20的参赛队伍受邀进入复赛,并为每支队伍提供统一的云计算资源。挑战赛实时推送数据至公有云供参赛者消费(包含异常信息),参赛队伍需在发生异常后的规定时间内产生结果,系统会从平均定位时间、定位精度和查全率等指标评判参赛队伍的算法效果。最快并准确定位到每个故障根因的前10名队伍获得相应积分,系统会记录历次故障注入的评测分数,并更新榜单排名。为保证比赛的公平性,主办方会检查每个复赛队伍的代码中是否有作弊行为。

3. 决赛阶段:2020年7月中旬,在复赛阶段中排名前10的参赛队伍受邀进入决赛答辩,对测试结果和答辩效果加权计算总成绩,决出最终的大奖。


预赛截止及决赛队伍审核

1. 预赛截止时间:北京时间 2020年5月中旬,具体时间届时再通知。

2. 复赛名额确定:预赛成绩排名前20的队伍将进入复赛,为了保证公平性,我们将对最终前20的队伍进行代码检查。

3. 决赛名额确定:复赛成绩排名前10的队伍将进入决赛。

4. 预赛代码提交:请排行榜排名前20的队伍将预赛代码于四月初发送到 netman_iops@126.com。邮件主题名为:2020AIOps挑战赛预赛代码-队伍名称。内容:队伍名称,注册邮箱,队伍id(排行榜显示),两个及以上的手机联系方式(便于后期代码检查)。代码:请以附件压缩包的方式发送。接收到自动回复即为发送成功。过期发送的代码视为无效。

5. 复赛代码提交:请排行榜排名前10的队伍将预赛代码于六月初发送到 netman_iops@126.com。邮件主题名为:2020AIOps挑战赛复赛代码-队伍名称。内容:队伍名称,注册邮箱,队伍id(排行榜显示),两个及以上的手机联系方式(便于后期代码检查)。代码:请以附件压缩包的方式发送。接收到自动回复即为发送成功。过期发送的代码视为无效。

6. 代码审核机制:代码我们将采用double check的方式,双人确定无误后,视为有效代码。


奖项设置

以下提及金额为税前金额

冠军(1名):80,000人民币,颁发获奖证书

亚军(1名):30,000人民币,颁发获奖证书

季军(若干名):10,000人民币,颁发获奖证书


FAQ

1. 已经报名的团队,若要人员调整变动,最晚什么时候可以变动,该怎么操作?

答:已经报名的团队,若要人员调整变动,最晚要在 预赛阶段结束前(2020年4月中旬)变动;变动方式是,重新发送一封报名邮件到netman_iops@126.com,邮件内注明具体变动信息即可。

2. 什么时候截止报名?

答:预赛阶段结束(2020年4月中旬)之前报名均可。

3. 预赛阶段发布的数据,整个竞赛阶段都会用同样的数据类型和格式吗?

答:预赛阶段会使用这个数据类型和格式,数据可能会有不完美的地方,希望大家一起共同修正。决赛阶段可能会有变动,数据类型和字段属性等可能都会改变。

4. 预赛阶段发布的数据集里面是否有故障注入?

答:预赛阶段的第一批数据没有进行故障注入,这个数据只是帮助大家熟悉数据以及数据格式用的;后续评测阶段(第二批数据)会发布故障注入后的数据。

5. 预赛阶段怎么提交测试结果?

答:就在竞赛页面。原来的“我要报名”按钮,报名时点击过后就变成了“提交结果”(只有实名认证通过的才有权限提交)。什么时候放出测试数据会在群里通知大家,到时测试结果就在这提交。

6. 目前第一批数据里面没有故障注入的时刻和故障根因结果等正样例数据,何时会有?

答:第一批数据没有故障,第二批会有。

7. 会不会有非主动注入发生的故障?

答:不会。

8. 存储空闲容量负数代表什么?

答:存储会有负数,表示空间不足。

9. 现在比赛数据放出来了么,为什么官网下载的数据只有80KB?

答:目前样例数据是从网盘的链接中下载,下载地址在官网下载的文件夹里。

10. 注入故障全集,时刻及持续时间在哪?

答:这些信息会包含在我们的第二批发布数据中。

11. app1或者app2跟dcos-container有联系吗?

答:第二批发布数据中会提供这个映射关系。

12. 调用链里面,父节点的start time比子节点的start time要晚,请问这是正常情况吗?

答:这个问题可能是因为各个节点间的时钟不同步,服务时长已经有相应的字段记录,可以不用StartTime来计算。

13. 为什么同一个文件指标和server cmdb_id一样,但是itemid却不一样?

答:ConsumerCount是队列消费者数量,是一类指标,这两个itemid是因为对应着不同的消息队列实体,因为数据里没有queuename,所以会有歧义。

14. 调用链图是用什么画的?

 答:可以采用Graphviz画dot图,或者利用Jaeger画出trace调用路径。

15. 初赛复赛的提供的机器系统,版本信息?

答:初赛不会提供云资源。挑战赛会给入围复赛的队伍统一提供云资源,机器系统和版本暂定为Centos 7.2

16. 数据为什么会在同一时间点上出现两条?

答:esb的实际数据中会出现这样的情况。请求记录在日志之前存在延迟,当定时统计前一个时间段的业务量时,若部分请求还未记录在日志中,就会在下一次统计时额外生成一条数据。需要麻烦选手自行把同一时刻esb的多条数据进行整合,计算调用量、成功量、平均时延等。

17. 4月11号的数据文件中,未提供activemq数据,以后不会有activemq数据么?

答:预赛阶段中的activemq数据已经被去除。

18. 目前预赛初定什么时候结束?

答:初赛结束时间预计是评测阶段正式开始后的一个月内。目前计划会在5月下旬结束预赛阶段。

19. 第二批和第一批的data文件有区别吗?是否需要重新下载?

答:数据需要重新下载,数据包含的字段不一样,采集时间也不一样。

20. 第二批的数据没有应用层面的调用关系,应用层面的调用关系跟第一批一样吗?

答:第二批数据中的调用链拓扑和第一批提供的不一样。

21. 第二批数据中故障内容是4月11日,为什么esb指标的数据都是4月10日?

答:请确认一下转换时间戳为字符串时使用的时区是否是东八区。

22. 如果已经定位到docker的指标异常了,是已经算是最终的异常根因了,还是需要进一步定位docker所在的宿主机os的指标异常 ?

答:定位到docker指标异常。

23. 调用链没看到redis的信息,根因分析还需要分析redis的指标吗?

答:redis 没有出现在调用链中,可以默认osb跟redis有连接。

24. 故障内容文件里面的故障案例是第二批数据的全部故障内容吗 ,还是部分举例故障?

答:故障文件是所有的故障。

25. 第二批数据新加入的bomc_id怎么理解?原先说的是cmdb_id + name可以唯一确定itemid但是现在看起来好像很多不满足该条件。

答:平台指标中,(name, bomc_id)二元组确定一种指标,(name, bomc_id, itemid)三元组确定一条kpi曲线。同一网元(cmdb_id)的同一种指标可能对应多个itemid,例如,同一个数据库的不同表。

26. 目前提供的故障内容,感觉已经是故障的根因分析了,选手是不是用这份故障内容来校验算法的效果 ?如果算法检测出来的根因跟这里一模一样就是代表算法的效果好吗?

答:这一次的数据知识帮大家理解题意,验证算法,并不会评测大家的算法。从下一批有故障的数据开始,就不再提供根因,需要评测大家的检测结果。

27. 目前的数据都是每天0点到6点的,之后初赛和复赛的数据会是全天的吗,还是说也只是每天一段时间的?

答:后续具体时间范围会根据赛题需要作出调整。

28. 之后的比赛数据中会有redis的异常注入吗?

答:后续的故障类型不限于目前已公布的场景,但会确定每一个场景都有最终的定位结果。

29. 第二批数据中的time是故障开始时间还是结束时间?

答:第二批数据中的time是故障开始时间。

30. 对于oracle数据库,数据库和宿主机的映射关系表有吗?比如db_001对应的宿主机是os_001吗?

答:提供的应用部署架构清单中不包含数据库宿主机。

31. 数据库是部署在虚拟机上吗?虚拟机一共有22台(os_001到os_022),调用链相关的是6台(os_017到os_022),redis相关的是3台(os_003到os_005),还有13台虚拟机是做什么用的?

答:应用部署架构清单中给出的其它虚拟机用于缓存、消息队列等,没有出现在调用链中但影响业务的组件。数据库确实没有部署在这些虚拟机中。

32. 排除bomc_id为空的情况,bomc_id和name是一一对应的吗?

答:bomc_id和name并非一一对应的。

33. 预赛阶段还会有第二批故障数据吗?(不给出根因的)

答:有的,预赛是需要排名的。

34. “1应用部署架构清单.xlsx表”中csf002~csf005 归属container_002,但”trace_csf.csv”中csf002~csf005对应的cmdb_id是docker_001~docker_004,而docker_001~docker_004在“1应用部署架构清单.xlsx”表中归属container_001(容器),即csf类型微服务从两类数据分析入口匹配到的container和docker是不一样的,应该怎么以哪个为准?

答:调用链数据里的cmdb_id是记录该数据的网元。callType为OSB、RemoteProcess、FlyRemote的调用链数据是由执行者记录的,serviceName与cmdb_id对应;callType为CSF、LOCAL的调用链数据是由发起者记录的,serviceName为下游服务的名称;callType为JDBC的调用链数据也是由发起者记录的,dsName为调用的数据库名称。

35. docker的指标里没有和网卡延迟有关的指标 请问如何判断这个docker发生了网卡延迟的故障?

答:没有出现调用链上说明,在整个测试期间是没有服务经过的。所以可以不用检测,也不会有故障放生在上面。针对网络类型的故障,如果是判断docker异常,则不需要再继续往指标上定位;如果判断是主机,则需要进一步给定主机相关的网络指标。排查到docker的问题,应该是先从调用链完成的。也就是从调用链相关延迟信息定位到docker。到了docker级别,如果找不到docker 相关的其他性能指标如CPU发生异常,则可以直接输出发生故障的docker。 我们会根据实际的故障根因判断这次结果是否正确,如果是网络故障,则结果正确了;如果不是,则结果错误。

36. 以前的平台指标没有bomcid ,数据格式不一样,是不是就不能作为无故障的数据使用了?现在只能用后来发布的带故障的六小时的数据吗?

答:是的,之后会再一次发布正常无故障数据。

37. 第二批数据之后的测试数据是只给故障名称(比如 CPU故障,网络故障)和时间吗?

答:预赛时不会给故障名称,复赛时两者都不给。

38. trace_jdbc中 cmdb_id为docker_00x,dsName:db_00x,表示的意思是db_00x在docker_00x中吗?

答:表示docker_00x访问了db_00x。相似的,在CSF、Local的 表示是的cmdb_id那个对象访问了下游服务的serviceName。

39. 错误种类的全集是否就是:容器CPU利用率类型故障、容器内存利用率类型故障、数据库类型故障、主机网络类型故障、容器网络类型故障这五种错误,是没有redis的错误吗?

答:预赛就是这几种,可以不处理redis。

40. 5月5日发布的故障共有11个,之后的评测数据也会是这个规模吗?还是会逐步增大?

答:故障数量会保持在这个规模,不会逐渐增大。

41. 每个故障发布周期内,每一天都可以提交3次定位结果还是周期内总共能提交3次?多次提交的定位结果评分方式是取分数最高的结果?

答:每天可以提交3次定位结果;多次提交的定位结果会取最高分。

42. 每个故障发布周期内,每次提交的定位结果,是否会及时反馈给选手评测结果?

答:是的。

43. 故障全集是否会随每一次发布的数据集变化?

答:故障全集不会随每次发布的数据集变化。如有变化会提前告知参赛队伍。

44. fault类型中网卡延迟、网卡丢包都属于网络故障?如果是主机节点的网络故障需要定位到主机具体的网络指标?

答:是的;os层次的的网络故障需要定位到具体的指标。

45. 预赛是如何进行排名的呢?

答:按照历次提交的最高分进行排名。

46. fly_remote是调用系统外部服务吗?如果是这个调用耗时有可能是外部系统的问题吗?如果不是,那么fly_remote_001是部署在哪个节点上呢?

答:这个不需要定位,故没有列出来部署的节点。

47. 提交评测时一直显示正在上传怎么办?

答:1. 保证提交的结果在本地用评测脚本可以跑通。 2. 检查网络环境,保证网络环境稳定,确保上传的结果不会在中间传输过程中被拦截(如公司防火墙等)。 3. 如果保证1、2点后依旧显示正在上传请重新尝试提交。

*主办方保留对比赛规则进行更新的权利



上传的结果文件

刷新
文件名称 文件描述 上传时间 文件大小 分数 计算状态 错误信息 操作

注册

请输入正确的邮件格式

密码长度6-20位

两次输入密码不匹配,请重新输入

昵称已被占用,请重新输入

点击[注册],即代表你同意 《iOps注册协议》
注册

注册协议

【首部及导言】

为有效利用QQ号码资源,维护用户合法权益,特制订《QQ号码规则》(以下简称“本规则”)。请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,以及开通或使用某项服务的单独协议,并选择接受或不接受。限制、免责条款可能以加粗形式提示您注意。

除非您已阅读并接受本规则所有条款,否则您无权申请或使用QQ号码。您申请或使用QQ号码的行为即视为您已阅读并同意受本规则的约束

一、【规则的范围】

1.1 本规则是腾讯制定的关于获取和使用QQ号码的相关规则。本规则适用于腾讯提供的需要注册或使用QQ号码的全部软件和服务。

1.2 本规则属于腾讯的业务规则,是《腾讯服务协议》不可分割的组成部分。

1.3 您通过QQ号码使用腾讯的软件和服务时,须同时遵守各项服务的单独协议。

二、【QQ号码的性质】

QQ号码是腾讯创设的用于识别用户身份的数字标识。QQ号码的所有权属于腾讯。

三、【QQ号码的获取】