CN114443050A - 一种基于ci引擎流水线的新型日志展示方法 - Google Patents

一种基于ci引擎流水线的新型日志展示方法 Download PDF

Info

Publication number
CN114443050A
CN114443050A CN202210071036.3A CN202210071036A CN114443050A CN 114443050 A CN114443050 A CN 114443050A CN 202210071036 A CN202210071036 A CN 202210071036A CN 114443050 A CN114443050 A CN 114443050A
Authority
CN
China
Prior art keywords
state
log
engine
information
pipeline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210071036.3A
Other languages
English (en)
Inventor
陈宇琦
孙乐恬
高传集
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210071036.3A priority Critical patent/CN114443050A/zh
Publication of CN114443050A publication Critical patent/CN114443050A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4452Software pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于CI引擎流水线的新型日志展示方法,所述方法的实现过程包括:所述流水线运行时通过对CI引擎接口的返回信息实时获取,对所获取的返回信息数据进行采集加工处理,实现对流水线日志的分段展示,定位流水线问题具体节点的具体指令。本发明方法能够实现对日志信息进行分段管理,精准的定位到产生问题的具体节点的具体指令,快速定位问题所在,提高用户对CI流水线的使用效率。

Description

一种基于CI引擎流水线的新型日志展示方法
技术领域
本发明涉及CI引擎后端的软件开发服务流水线技术领域,具体提供一种基于CI引擎流水线的新型日志展示方法。
背景技术
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题。持续集成(Continuous Integration,CI)是一种软件开发实践,倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的CI任务处理来完成的,包括自动化编译、发布和测试等,从而更快地发现错误,让团队能够更快的开发内聚的软件。
现有的持续集成CI任务处理方法主要有三种:
1、一种持续集成CI任务处理系统,所有流水线持续集成CI任务处理都是在一台CI服务器上进行,CI服务器通过监控源码变更等方式来处理流水线的第一个持续集成CI任务,其余的任务当满足前置条件时自动触发。因所有的流水线任务都在一台CI服务器上执行,当运行中的任务数达到最大执行数后,流水线任务进入等待队列。单台CI服务器的能力容易受到磁盘空间、CPU、内存等硬件能力的限制,导致CI任务处理效率低。
2、另一种持续集成CI任务处理系统,以CI Master为系统的控制节点,Slave节点负责具体的项目编译测试等任务执行,可以支持集群化的不同任务处理需求。一个CIMaster节点可以关联多个Slave节点,CI Master节点进行任务配置和调度管理。所有的任务通过预先的配置分配到指定的Slave节点上执行,预先分配的Slave节点一直处于在线状态。该方法中Slave节点是预先分配的,任务和Slave节点的关联是预先设置的,在高并发的情况下,存在Slave节点资源调度不合理,Slave节点资源利用率不高等问题。
3、另一种持续集成CI任务处理系统,借助于容器技术,CI Master节点发布持续集成CI任务,将一条流水线的多条任务灵活分派到一个CISlave容器进行处理,保证了CISlave容器资源的高可用性。但是一条流水线所有持续集成CI任务在同一个CI Slave容器上执行,高并发场景下,多条CI流水线任务需要分派更多的容器资源,任务处理效率低,资源利用率不高。
发明内容
在流水线执行过程中,会遇到执行报错从而导致中断流水线等一系列的问题,在定位问题原因时总是需要查看流水线构建过程中采集的日志信息,而对于一次性同时展示大量的日志信息并从中找到问题的关键信息点对用户而言无疑是十分不友好的。
基于上述问题,本发明基于CI引擎流水线中的引擎特性,对流水线构建过程中的日志信息进行加工处理,配合流水线前端界面的部分操作,实现对日志信息进行分段管理,精准的定位到产生问题的具体节点的具体指令,快速定位问题所在,提高用户对CI流水线的使用效率。
本发明的技术任务是针对上述存在的问题,提供一种基于CI引擎流水线的新型日志展示方法。
一种基于CI引擎流水线的新型日志展示方法,所述方法的实现过程包括:
所述流水线运行时通过对CI引擎接口的返回信息实时获取,对所获取的返回信息数据进行采集加工处理,实现对流水线日志的分段展示,定位流水线问题具体节点的具体指令。
更进一步的,所述返回信息实时获取的过程包括内容如下:
在CI构建流水线时实时调取CI引擎的BlueOcean接口,根据返回信息判断已经执行以及正在执行的节点信息。
更进一步的,所述返回信息数据进行加工处理后,生成适配于浪潮云软开服务的数据模式。
更进一步的,所述日志展示方法采用状态字段赋值处理。
更进一步的,所述处理过程包括:创建状态机、日志获取、数据处理,其中:
创建状态机:通过CI引擎实时获取流水线的运行状态,更新到数据库对应的执行记录中;
日志获取:通过调用获取BlueOcean接口返回信息,获取CI引擎已运行的节点以及节点日志信息;
数据处理:加工引擎返回的数据信息,生成适配的信息进行展示。
更进一步的,所述状态机的创建包括:状态机处理、状态机转换,其中:
状态机处理:单独处理运行状态,实时调用CI的BlueOcean接口采用5S轮询的方式访问CI引擎,获取当前运行流水线的运行状态,将状态信息存入对应表的执行信息中,日志状态从表中抓取,不再单独使用CI引擎接口返回的运行状态,以保证列表跟日志的状态一致;
状态机转换:将CI引擎返回状态转换为浪潮云软开模块流水线状态。
更进一步的,所述日志处理实现过程包括:
查看日志时先获取本条流水线的运行状态,并根据运行状态进行判断:
如果运行状态处在运行中,则触发日志信息接口的轮询调用;
如果运行状态是静止状态,则只触发一次日志信息接口。
更进一步的,所述方法通过对CI引擎的轮询查询获取执行过程中不同时刻的节点执行状态和返回日志信息,将返回信息加工成适配的数据进行展示。
更进一步的,所述方法实现步骤包括内容如下:
a)查看日志时,优先获取当先流水线运行状态,静止状态或者运行状态;
b)如果当前流水线是静止状态,则调用一次查询日志api,获取最近一次执行记录的节点状态跟日志结果;
c)如果当前流水线是运行状态,则获取当前执行中的流水线记录,轮询调用查询日志api,不断将流水线节点状态以及日志结果返回到界面中展示,直至流水线状态变为静止状态为止;
d)轮询中将状态更新至数据库中存储,确保各个节点状态当前展示无误;
e)轮询中将返回数据结果信息加工处理,将当前已完成和运行中返回的节点信息加工展示;
f)在流水线任意状态下用户均可与已展示的节点进行交互,通过点击各个节点展示不同节点的日志信息;
g)重复步骤d)和e)过程直到流水线状态由运行状态变为静止状态,日志加载完毕。
由于CI引擎返回状态与浪潮云软开模块流水线状态有所差别,需要进行状态转换。
更进一步的,所述CI引擎返回状态转换为浪潮云软开模块流水线状态的对应关系如下:
Figure BDA0003482083660000031
与现有技术相比,本发明一种基于CI引擎流水线的新型日志展示方法具有以下突出的有益效果:
本发明方法能够实现对日志信息进行分段管理,精准的定位到产生问题的具体节点的具体指令,快速定位问题所在,提高用户对CI流水线的使用效率。
附图说明
图1是本发明方法实现流程图;
图2是本发明日志处理流程图。
具体实施方式
下面将结合附图和实施例,对本发明作进一步详细说明。
如图1所示,一种基于CI引擎流水线的新型日志展示方法,在CI构建流水线时实时调取CI引擎的BlueOcean接口,根据返回信息判断已经执行以及正在执行的节点信息,并对返回信息进行加工处理,生成适配于浪潮云软开服务的数据模式,实现对日志管理的分段展示。如图1所示,所述方法的实现包括:
1.状态机处理:
单独处理运行状态,实时调用CI的BlueOcean接口采用5S轮询的方式访问CI引擎,获取当前运行流水线的运行状态,将状态信息存入对应表的执行信息中,日志状态从表中抓取,不再单独使用CI引擎接口返回的运行状态,以保证列表跟日志的状态一致。
状态机转换:
由于CI引擎返回状态与浪潮云软开模块流水线状态有所差别。需要进行状态转换。
对应关系如下所示
Figure BDA0003482083660000041
2.日志处理:
查看日志时先从步骤1中获取本条流水线的运行状态,如果运行状态处在运行中,则会触发日志信息接口的轮询调用;若运行状态是其余的静止状态,则只触发一次日志信息接口;
通过对CI引擎的轮询查询获取执行过程中不同时刻的节点执行状态跟返回日志信息,从而进一步将返回信息加工成适配的数据进行展示,如图2所示,流程如下:
a)查看日志时,优先获取当先流水线运行状态,静止状态或者运行状态;
b)如果当前流水线是静止状态,则调用一次查询日志api,获取最近一次执行记录的节点状态跟日志结果;
c)如果当前流水线是运行状态,则获取当前执行中的流水线记录,轮询调用查询日志api,不断将流水线节点状态以及日志结果返回到界面中展示。直至流水线状态变为静止状态为止;
d)轮询中将状态更新至数据库中存储确保各个节点状态当前展示无误;
e)轮询中将返回数据结果信息加工处理,将当前已完成和运行中返回的节点信息加工展示;
f)用户在流水线任意状态下均可与已展示的节点进行交互,通过点击各个节点展示不同节点的日志信息;
g)重复步骤d),e)过程直到流水线状态由运行状态变为静止状态,日志加载完毕。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (10)

1.一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述方法的实现过程包括:
所述流水线运行时通过对CI引擎接口的返回信息实时获取,对所获取的返回信息数据进行采集加工处理,实现对流水线日志的分段展示,定位流水线问题具体节点的具体指令。
2.根据权利要求1所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述返回信息实时获取的过程包括内容如下:
在CI构建流水线时实时调取CI引擎的BlueOcean接口,根据返回信息判断已经执行以及正在执行的节点信息。
3.根据权利要求1所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述返回信息数据进行加工处理后,生成适配于浪潮云软开服务的数据模式。
4.根据权利要求1-4任一所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述日志展示方法采用状态字段赋值处理。
5.根据权利要求4所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述处理过程包括:创建状态机、日志获取、数据处理,其中:
创建状态机:通过CI引擎实时获取流水线的运行状态,更新到数据库对应的执行记录中;
日志获取:通过调用获取BlueOcean接口返回信息,获取CI引擎已运行的节点以及节点日志信息;
数据处理:加工引擎返回的数据信息,生成适配的信息进行展示。
6.根据权利要求5所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述状态机的创建包括:状态机处理、状态机转换,其中:
状态机处理:单独处理运行状态,实时调用CI的BlueOcean接口采用5S轮询的方式访问CI引擎,获取当前运行流水线的运行状态,将状态信息存入对应表的执行信息中,日志状态从表中抓取;
状态机转换:将CI引擎返回状态转换为浪潮云软开模块流水线状态。
7.根据权利要求6所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述日志处理实现过程包括:
查看日志时先获取本条流水线的运行状态,并根据运行状态进行判断:
如果运行状态处在运行中,则触发日志信息接口的轮询调用;
如果运行状态是静止状态,则只触发一次日志信息接口。
8.根据权利要求7所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述方法通过对CI引擎的轮询查询获取执行过程中不同时刻的节点执行状态和返回日志信息,将返回信息加工成适配的数据进行展示。
9.根据权利要求5所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述方法实现步骤包括内容如下:
a)查看日志时,优先获取当先流水线运行状态,静止状态或者运行状态;
b)如果当前流水线是静止状态,则调用一次查询日志api,获取最近一次执行记录的节点状态跟日志结果;
c)如果当前流水线是运行状态,则获取当前执行中的流水线记录,轮询调用查询日志api,不断将流水线节点状态以及日志结果返回到界面中展示,直至流水线状态变为静止状态为止;
d)轮询中将状态更新至数据库中存储,确保各个节点状态当前展示无误;
e)轮询中将返回数据结果信息加工处理,将当前已完成和运行中返回的节点信息加工展示;
f)在流水线任意状态下用户均可与已展示的节点进行交互,通过点击各个节点展示不同节点的日志信息;
g)重复步骤d)和e)过程直到流水线状态由运行状态变为静止状态,日志加载完毕。
10.根据权利要求5所述的一种基于CI引擎流水线的新型日志展示方法,其特征在于,所述CI引擎返回状态转换为浪潮云软开模块流水线状态的对应关系如下:
Figure FDA0003482083650000021
CN202210071036.3A 2022-01-21 2022-01-21 一种基于ci引擎流水线的新型日志展示方法 Pending CN114443050A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210071036.3A CN114443050A (zh) 2022-01-21 2022-01-21 一种基于ci引擎流水线的新型日志展示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210071036.3A CN114443050A (zh) 2022-01-21 2022-01-21 一种基于ci引擎流水线的新型日志展示方法

Publications (1)

Publication Number Publication Date
CN114443050A true CN114443050A (zh) 2022-05-06

Family

ID=81367707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210071036.3A Pending CN114443050A (zh) 2022-01-21 2022-01-21 一种基于ci引擎流水线的新型日志展示方法

Country Status (1)

Country Link
CN (1) CN114443050A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116400987A (zh) * 2023-06-06 2023-07-07 智者四海(北京)技术有限公司 持续集成方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116400987A (zh) * 2023-06-06 2023-07-07 智者四海(北京)技术有限公司 持续集成方法、装置、电子设备及存储介质
CN116400987B (zh) * 2023-06-06 2023-08-18 智者四海(北京)技术有限公司 持续集成方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110321152B (zh) 一种软件开发平台
CN111506412B (zh) 基于Airflow的分布式异步任务构建、调度系统及方法
CN102375731B (zh) 一种免编码集成应用软件平台系统
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
CN107807815B (zh) 分布式处理任务的方法和装置
CN110825511A (zh) 一种基于建模平台模型运行流程调度方法
US20170123777A1 (en) Deploying applications on application platforms
CN112148788A (zh) 异构数据源的数据同步方法及系统
CN102592198A (zh) 一种支持组合业务的工作流引擎
CN109684319A (zh) 数据清洗系统、方法、装置及存储介质
CN110716802A (zh) 一种跨集群的任务调度系统及方法
CN112379884A (zh) 基于Spark和并行内存计算的流程引擎实现方法及系统
CN111367804B (zh) 基于云计算及网络编程实现前端协作调试的方法
CN111966597A (zh) 测试数据生成方法及装置
CN111147291B (zh) 一种服务维护方法及装置
CN110516000B (zh) 一种支持复杂工作流结构的工作流管理系统
CN114443050A (zh) 一种基于ci引擎流水线的新型日志展示方法
CN113220480B (zh) 分布式的数据任务跨云调度系统及方法
CN114816694A (zh) 一种多流程协作的rpa任务调度方法及装置
CN112835711A (zh) 一种数据处理方法及系统、计算机设备、计算机存储介质
CN105653334B (zh) 一种基于saas模式的mis系统快速开发框架
CN111782363A (zh) 一种支持多业务场景调用的方法和流程系统
CN115951970A (zh) 一种异构多仿真软件集成开发环境
US20210182284A1 (en) System and method for data ingestion and workflow generation
CN114443433A (zh) 一种云计算平台实现分布式自动处理告警的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination