CN109918260A - 一种项目代码的监控方法和装置 - Google Patents
一种项目代码的监控方法和装置 Download PDFInfo
- Publication number
- CN109918260A CN109918260A CN201910068546.3A CN201910068546A CN109918260A CN 109918260 A CN109918260 A CN 109918260A CN 201910068546 A CN201910068546 A CN 201910068546A CN 109918260 A CN109918260 A CN 109918260A
- Authority
- CN
- China
- Prior art keywords
- code
- error message
- item
- index
- target sql
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012544 monitoring process Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 claims description 18
- 238000012806 monitoring device Methods 0.000 claims description 5
- 230000008439 repair process Effects 0.000 claims description 4
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000002346 layers by function Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种项目代码的监控方法和装置。本发明涉及基架运维领域,该方法包括:获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息;根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息;如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息;如果目标文件存在错误信息,则生成第二提示信息。因此,本发明实施例提供的技术方案能够解决日志数量过大导致的监控效率较低的问题。
Description
【技术领域】
本发明涉及基架运维技术领域,尤其涉及一种项目代码的监控方法和装置。
【背景技术】
计算机程序在运行时都会产生日志的时间记录,每一行日志都记录着日期、时间、使用者及动作等相关操作的描述。日志是查看系统运行状态和排查问题的主要依据。日志可以用来对线上业务运行过程的记录和运行程序的监控,通过分析日志能够对可能出现以及已经出现的问题进行提示、警告。
为了便于理解应用程序运行的状态以及出现问题后的诊断,在编写程序对应的项目代码时常常记录大量的日志信息,例如一个支付的交易,往往就会产生多条日志的记录,当记录的日志数量很大时,相关的技术人员如果监控某个功能模块的运行情况或者定位某个功能模块出现的错误原因时,需要在数量级别较大的日志文件中查找,导致监控效率较低。
【发明内容】
有鉴于此,本发明实施例提供了一种项目代码的监控方法和装置,用以解决日志数量过大导致的监控效率较低的问题。
一方面,本发明实施例提供了一种项目代码的监控方法,所述方法包括:获取用于实现项目功能的项目代码,所述项目代码只记录优先级别大于第一预设级别的日志信息;根据所述项目代码确定目标SQL代码,监控所述目标SQL代码运行消耗CPU的时间,监控所述项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行所述目标SQL代码消耗CPU的时间是否大于预设时长,判断所述目标文件是否存在错误信息;如果运行所述目标SQL代码消耗CPU的时间大于所述预设时长,则生成第一提示信息,所述第一提示信息用于提示对所述目标SQL代码进行优化;如果所述目标文件存在错误信息,则生成第二提示信息,所述第二提示信息用于提示修复所述项目代码中的错误。
进一步地,在所述生成第一提示信息之后,所述方法还包括:通过动态管理视图判断所述目标SQL代码中是否缺少索引;如果所述目标SQL代码缺少索引,为所述目标SQL代码添加索引;如果所述目标SQL代码有索引,则判断所述目标SQL代码的索引是否失效;如果所述目标SQL代码的索引失效,通过rebuild指令重建所述目标SQL代码的索引,通过hint指令强制使用索引。
进一步地,所述如果所述目标文件存在错误信息,则生成第二提示信息,包括:在预设时间内统计所述目标文件中每种错误信息的出现次数;获取所述每种错误信息的级别;根据所述每种错误信息的级别将所述每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;根据所述排序结果生成所述第二提示信息。
进一步地,在所述在预设时间内统计所述目标文件中每种错误信息的出现次数之前,所述方法还包括:根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,所述在预设时间内统计所述目标文件中每种错误信息的出现次数,包括:在所述预设时间内统计所述目标文件中的每种关键字的出现次数;将第一关键字的出现次数作为所述第一关键字对应的错误信息的出现次数,所述第一关键字为任意一种关键字。
进一步地,在所述获取用于实现项目功能的项目代码之后,所述方法还包括:根据所述项目代码确定项目的目标日志文件;判断所述目标日志文件的大小;如果所述目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入所述目标日志文件,其中,所述第二预设级别高于所述第一预设级别。
一方面,本发明实施例提供了一种项目代码的监控装置,所述装置包括:获取单元,用于获取用于实现项目功能的项目代码,所述项目代码只记录优先级别大于第一预设级别的日志信息;监控单元,用于根据所述项目代码确定目标SQL代码,监控所述目标SQL代码运行消耗CPU的时间,监控所述项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;第一判断单元,用于判断运行所述目标SQL代码消耗CPU的时间是否大于预设时长,判断所述目标文件是否存在错误信息;第一生成单元,用于如果运行所述目标SQL代码消耗CPU的时间大于所述预设时长,则生成第一提示信息,所述第一提示信息用于提示对所述目标SQL代码进行优化;第二生成单元,用于如果所述目标文件存在错误信息,则生成第二提示信息,所述第二提示信息用于提示修复所述项目代码中的错误。
进一步地,所述装置还包括:第二判断单元,用于在所述第一生成单元生成第一提示信息之后,通过动态管理视图判断所述目标SQL代码中是否缺少索引;添加单元,用于如果所述目标SQL代码缺少索引,为所述目标SQL代码添加索引;第三判断单元,用于如果所述目标SQL代码有索引,则判断所述目标SQL代码的索引是否失效;重建单元,用于如果所述目标SQL代码的索引失效,通过rebuild指令重建所述目标SQL代码的索引,通过hint指令强制使用索引。
进一步地,所述第二生成单元包括:统计子单元,用于在预设时间内统计所述目标文件中每种错误信息的出现次数;获取子单元,用于获取所述每种错误信息的级别;确定子单元,用于根据所述每种错误信息的级别将所述每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;生成子单元,用于根据所述排序结果生成所述第二提示信息。
进一步地,所述装置还包括:设置单元,用于在所述统计子单元在预设时间内统计所述目标文件中每种错误信息的出现次数之前,根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,所述统计子单元包括:统计模块,用于在所述预设时间内统计所述目标文件中的每种关键字的出现次数;确定模块,用于将第一关键字的出现次数作为所述第一关键字对应的错误信息的出现次数,所述第一关键字为任意一种关键字。
进一步地,所述装置还包括:确定单元,用于在所述获取单元获取用于实现项目功能的项目代码之后,根据所述项目代码确定项目的目标日志文件;第四判断单元,用于判断所述目标日志文件的大小;写入单元,用于如果所述目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入所述目标日志文件,其中,所述第二预设级别高于所述第一预设级别。
一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的项目代码的监控方法。
一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现上述的项目代码的监控方法的步骤。
本发明实施例中,获取用于实现项目功能的项目代码,所述项目代码只记录优先级别大于第一预设级别的日志信息;根据所述项目代码确定目标SQL代码,监控所述目标SQL代码运行消耗CPU的时间,监控所述项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行所述目标SQL代码消耗CPU的时间是否大于预设时长,判断所述目标文件是否存在错误信息;如果运行所述目标SQL代码消耗CPU的时间大于所述预设时长,则生成第一提示信息,所述第一提示信息用于提示对所述目标SQL代码进行优化;如果所述目标文件存在错误信息,则生成第二提示信息,所述第二提示信息用于提示修复所述项目代码中的错误,通过减少记录项目代码中优先级低的日志信息,切面监控SQL代码的运行状态和项目代码的错误信息,减少了日志数量,解决了日志数量过大导致的监控效率较低的问题,有效提高了监控效率。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是根据本发明实施例一种可选的项目代码的监控方法的流程图;
图2是根据本发明实施例一种可选的项目代码的监控装置的示意图;
图3是本发明实施例提供的一种可选的计算机设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1是根据本发明实施例一种可选的项目代码的监控方法的流程图,如图1所示,该方法包括:
步骤S102,获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息。
步骤S104,根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件。
步骤S106,判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息。
步骤S108,如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化。
步骤S110,如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误。
日志的优先级从高到低排序为Silent、fatal、Error、Warning、Info、Debug、Verbose,第一预设级别可以是Info,则Debug与Verbose级别的日志信息,开发者在开发过程中就不需要写入项目代码中,通过减少日志代码,简化了代码,提高了项目运行效率。
本发明实施例中,获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息;根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息;如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化;如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误,通过减少记录项目代码中优先级低的日志信息,切面监控SQL代码的运行状态和项目代码的错误信息,减少了日志数量,解决了日志数量过大导致的监控效率较低的问题,有效提高了监控效率。
切面监控是基于面向切面编程的一种监控程序运行的方式,面向切面编程主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。最常见的切面模块是日志记录模块,程序按功能被分为好几层,如果按传统的商业模型继承日志模块的话根本没有什么意义,而通过创建一个日志记录切面就可以使用面向切面编程来实现相同的功能了。
可选地,在生成第一提示信息之后,方法还包括:通过动态管理视图判断目标SQL代码中是否缺少索引;如果目标SQL代码缺少索引,为目标SQL代码添加索引;如果目标SQL代码有索引,则判断目标SQL代码的索引是否失效;如果目标SQL代码的索引失效,通过rebuild指令重建目标SQL代码的索引,通过hint指令强制使用索引。
如果SQL代码消耗CPU的时间大于预设时长,可判定数据库运行SQL代码的性能较低,首先会想到添加索引来优化SQL代码提高运行性能,面对复杂的SQL代码数据库使用DMV优化索引及其他性能问题。通过DMV管理视图优化SQL代码,DMV记录下当前运行的SQL代码中缺失索引的信息,并判断通过为SQL代码建立索引后SQL代码运行的性能可以提高多少,然后推荐优化的建议。
DMV是动态管理视图,是SQL Server内核的元数据,通过对内部的元数据的分析,可以快速而准确获取很多与SQL Server内部相关的信息,从而进行性能分析。DMV可以用于数据库中的故障诊断、性能调优和状态监控,在数据库的服务器上安装SQL Server之后,SQL Server就是一个实例,将数据库中所有的DMV都保存在相同的内存中,并且做了统计的信息,因此DMV中的数据更加的接近于数据库本身的状态,因此,在监控SQL代码时只需要从DMV中查找相关数据按照需求进行运算分析,并且获取数据的速度较快,不会对服务器产生压力。
在目标SQL代码执行状态时,如果目标SQL代码中缺少索引或索引失效,则通过为目标SQL代码建立或者重建索引的方法,对目标SQL代码进行优化。该方法能够及时监控数据库中目标SQL代码的性能,并对性能低的目标SQL代码进行优化。
可选地,如果目标文件存在错误信息,则生成第二提示信息,包括:在预设时间内统计目标文件中每种错误信息的出现次数;获取每种错误信息的级别;根据每种错误信息的级别将每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;根据排序结果生成第二提示信息。
预设时间可以根据实际需求设置,例如1个小时、2个小时、3个小时等等。
在预设时间内统计目标文件中的每种错误信息,将统计的每种错误信息按照错误信息的级别不同进行排序,级别较高的错误信息排在前面,级别较低的错误信息排在后面,然后同等级别的错误信息再按照目标文件中发生的次数进行降序排列,这样得到的排序结果中排在前面的是级别较高且容易发生的错误信息,即为紧急重要的错误信息,相关人员按照对应生成的第二提示信息可以优先处理紧急重要的错误信息。同时通过对目标文件中的错误信息和发生次数进行总结,便于开发人员对项目代码存在的相同错误提前修复,避免了项目中存在性能隐患的问题。
可选地,在在预设时间内统计目标文件中每种错误信息的出现次数之前,方法还包括:根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,在预设时间内统计目标文件中每种错误信息的出现次数,包括:在预设时间内统计目标文件中的每种关键字的出现次数;将第一关键字的出现次数作为第一关键字对应的错误信息的出现次数,第一关键字为任意一种关键字。
在统计目标文件中每种错误信息的出现次数之前,具体的还需要设置要统计错误信息对应的关键字,例如,指示一般错误的关键字“Error”,指示严重错误的关键字“Fatal”,如果目标文件中包含指示严重错误的关键字“Fatal”,则说明运行该项目的进程已经不能正常工作,需要紧急处理该错误。
可选地,在获取用于实现项目功能的项目代码之后,方法还包括:根据项目代码确定项目的目标日志文件;判断目标日志文件的大小;如果目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入目标日志文件,其中,第二预设级别高于第一预设级别。
日志的优先级从高到低排序为Silent、fatal、Error、Warning、Info、Debug、Verbose,可以根据实际的需求设置第二预设级别,其中,第二预设级别高于第一预设级别。如果第一预设级别是Info,则目标日志文件记录的日志级别为:Silent、fatal、Error、Warning,如果目标日志文件的大小大于或等于预设值,设置第二预设级别为Error,目标日志文件记录的日志级别低于Error的级别是Warning,则取消Warning级别的日志记录信息,其中,日志级别较低的日志是不重要的日志信息,取消日志级别较低的日志代码的记录,只保留重要的日志,用于分析项目的错误信息,一方面可以减少项目代码的日志记录数量,另一方面减少了系统IO操作的次数,提高了项目的运行效率。
按照技术中日志的优先级排序为Silent、fatal、Error、Warning、Info、Debug、Verbose,如果第一预设级别是Info,则目标日志文件的大小大于或等于预设值时,可以根据实际的需求,取消Info、Warning级别的日志记录信息,其中,日志级别较低的日志是不重要的日志信息,取消日志级别较低的日志代码的记录,只保留重要的日志,用于分析项目的错误信息,一方面可以减少项目代码的日志记录数量,另一方面减少了系统IO操作的次数,提高了项目的运行效率。
可选地,在生成第一提示信息之后,方法还包括:以邮件、或短信的方式进行告警,或,发出告警音频。
监控数据库中目标SQL代码的监控项,至少包括数据库锁超时、死锁、大量排序SQL、消耗CPU时间长的SQL,监控项可以根据实际的需求新增或者删除。还可以根据监控项定期制作报表,如每周将监控结果生成excel或PDF表格,并将相关警告信息发送给相关人员,相关人员通过警告信息将对应的SQL语句进行优化,通过监控数据库的方法,可以提前预知数据库的性能问题,便于开发者及时发现、排查项目中与数据库有关的性能隐患。
图2是根据本发明实施例一种可选的项目代码的监控装置的示意图,该装置用于执行上述项目代码的监控方法,如图2,该装置包括:获取单元21、监控单元22、第一判断单元23、第一生成单元24、第二生成单元25。
获取单元21,用于获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息。
监控单元22,用于根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件。
第一判断单元23,用于判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息。
第一生成单元24,用于如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化。
第二生成单元25,用于如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误。
日志的优先级从高到低排序为Silent、fatal、Error、Warning、Info、Debug、Verbose,第一预设级别可以是Info,则Debug与Verbose级别的日志信息,开发者在开发过程中就不需要写入项目代码中,通过减少日志代码,简化了代码,提高了项目运行效率。
本发明实施例中,获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息;根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息;如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化;如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误,通过减少记录项目代码中优先级低的日志信息,切面监控SQL代码的运行状态和项目代码的错误信息,减少了日志数量,解决了日志数量过大导致的监控效率较低的问题,有效提高了监控效率。
切面监控是基于面向切面编程的一种监控程序运行的方式,面向切面编程主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。最常见的切面模块是日志记录模块,程序按功能被分为好几层,如果按传统的商业模型继承日志模块的话根本没有什么意义,而通过创建一个日志记录切面就可以使用面向切面编程来实现相同的功能了。
可选地,装置还包括:第二判断单元、添加单元、第三判断单元、重建单元。第二判断单元,用于在第一生成单元24生成第一提示信息之后,通过动态管理视图判断目标SQL代码中是否缺少索引。添加单元,用于如果目标SQL代码缺少索引,为目标SQL代码添加索引。第三判断单元,用于如果目标SQL代码有索引,则判断目标SQL代码的索引是否失效。重建单元,用于如果目标SQL代码的索引失效,通过rebuild指令重建目标SQL代码的索引,通过hint指令强制使用索引。
可选地,第二生成单元25包括:统计子单元、获取子单元、确定子单元、生成子单元。统计子单元,用于在预设时间内统计目标文件中每种错误信息的出现次数。获取子单元,用于获取每种错误信息的级别。确定子单元,用于根据每种错误信息的级别将每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果。生成子单元,用于根据排序结果生成第二提示信息。
可选地,装置还包括:设置单元。设置单元,用于在统计子单元在预设时间内统计目标文件中每种错误信息的出现次数之前,根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,统计子单元包括:统计模块、确定模块。统计模块,用于在预设时间内统计目标文件中的每种关键字的出现次数。确定模块,用于将第一关键字的出现次数作为第一关键字对应的错误信息的出现次数,第一关键字为任意一种关键字。
可选地,装置还包括:确定单元、第四判断单元、写入单元。确定单元,用于在获取单元21获取用于实现项目功能的项目代码之后,根据项目代码确定项目的目标日志文件。第四判断单元,用于判断目标日志文件的大小。写入单元,用于如果目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入目标日志文件,其中,第二预设级别高于第一预设级别。
可选地,装置还包括:告警单元。告警单元,用于在第一生成单元24生成第一提示信息之后,以邮件、或短信的方式进行告警,或,发出告警音频。
一方面,本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息;根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息;如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化;如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在生成第一提示信息之后,通过动态管理视图判断目标SQL代码中是否缺少索引;如果目标SQL代码缺少索引,为目标SQL代码添加索引;如果目标SQL代码有索引,则判断目标SQL代码的索引是否失效;如果目标SQL代码的索引失效,通过rebuild指令重建目标SQL代码的索引,通过hint指令强制使用索引。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在预设时间内统计目标文件中每种错误信息的出现次数;获取每种错误信息的级别;根据每种错误信息的级别将每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;根据排序结果生成第二提示信息。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在在预设时间内统计目标文件中每种错误信息的出现次数之前,根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,在预设时间内统计目标文件中每种错误信息的出现次数,包括:在预设时间内统计目标文件中的每种关键字的出现次数;将第一关键字的出现次数作为第一关键字对应的错误信息的出现次数,第一关键字为任意一种关键字。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在获取用于实现项目功能的项目代码之后,根据项目代码确定项目的目标日志文件;判断目标日志文件的大小;如果目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入目标日志文件,其中,第二预设级别高于第一预设级别。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在生成第一提示信息之后,以邮件、或短信的方式进行告警,或,发出告警音频。
一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现以下步骤:获取用于实现项目功能的项目代码,项目代码只记录优先级别大于第一预设级别的日志信息;根据项目代码确定目标SQL代码,监控目标SQL代码运行消耗CPU的时间,监控项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;判断运行目标SQL代码消耗CPU的时间是否大于预设时长,判断目标文件是否存在错误信息;如果运行目标SQL代码消耗CPU的时间大于预设时长,则生成第一提示信息,第一提示信息用于提示对目标SQL代码进行优化;如果目标文件存在错误信息,则生成第二提示信息,第二提示信息用于提示修复项目代码中的错误。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在生成第一提示信息之后,通过动态管理视图判断目标SQL代码中是否缺少索引;如果目标SQL代码缺少索引,为目标SQL代码添加索引;如果目标SQL代码有索引,则判断目标SQL代码的索引是否失效;如果目标SQL代码的索引失效,通过rebuild指令重建目标SQL代码的索引,通过hint指令强制使用索引。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在预设时间内统计目标文件中每种错误信息的出现次数;获取每种错误信息的级别;根据每种错误信息的级别将每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;根据排序结果生成第二提示信息。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在在预设时间内统计目标文件中每种错误信息的出现次数之前,根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息,在预设时间内统计目标文件中每种错误信息的出现次数,包括:在预设时间内统计目标文件中的每种关键字的出现次数;将第一关键字的出现次数作为第一关键字对应的错误信息的出现次数,第一关键字为任意一种关键字。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在获取用于实现项目功能的项目代码之后,根据项目代码确定项目的目标日志文件;判断目标日志文件的大小;如果目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入目标日志文件,其中,第二预设级别高于第一预设级别。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在生成第一提示信息之后,以邮件、或短信的方式进行告警,或,发出告警音频。
图3是本发明实施例提供的一种计算机设备的示意图。如图3所示,该实施例的计算机设备50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53,该计算机程序53被处理器51执行时实现实施例中的项目代码的监控方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器51执行时实现实施例中项目代码的监控装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图3仅仅是计算机设备50的示例,并不构成对计算机设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52可以是计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。存储器52也可以是计算机设备50的外部存储设备,例如计算机设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器52还可以既包括计算机设备50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种项目代码的监控方法,其特征在于,所述方法包括:
获取用于实现项目功能的项目代码,所述项目代码只记录优先级别大于第一预设级别的日志信息;
根据所述项目代码确定目标SQL代码,监控所述目标SQL代码运行消耗CPU的时间,监控所述项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;
判断运行所述目标SQL代码消耗CPU的时间是否大于预设时长,判断所述目标文件是否存在错误信息;
如果运行所述目标SQL代码消耗CPU的时间大于所述预设时长,则生成第一提示信息,所述第一提示信息用于提示对所述目标SQL代码进行优化;
如果所述目标文件存在错误信息,则生成第二提示信息,所述第二提示信息用于提示修复所述项目代码中的错误。
2.根据权利要求1所述的方法,其特征在于,在所述生成第一提示信息之后,所述方法还包括:
通过动态管理视图判断所述目标SQL代码中是否缺少索引;
如果所述目标SQL代码缺少索引,为所述目标SQL代码添加索引;
如果所述目标SQL代码有索引,则判断所述目标SQL代码的索引是否失效;
如果所述目标SQL代码的索引失效,通过rebuild指令重建所述目标SQL代码的索引,通过hint指令强制使用索引。
3.根据权利要求1所述的方法,其特征在于,所述如果所述目标文件存在错误信息,则生成第二提示信息,包括:
在预设时间内统计所述目标文件中每种错误信息的出现次数;
获取所述每种错误信息的级别;
根据所述每种错误信息的级别将所述每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;
根据所述排序结果生成所述第二提示信息。
4.根据权利要求3所述的方法,其特征在于,在所述在预设时间内统计所述目标文件中每种错误信息的出现次数之前,所述方法还包括:
根据历史错误信息设置关键字,其中,不同关键字对应不同等级的错误信息;
所述在预设时间内统计所述目标文件中每种错误信息的出现次数,包括:
在所述预设时间内统计所述目标文件中的每种关键字的出现次数;
将第一关键字的出现次数作为所述第一关键字对应的错误信息的出现次数,所述第一关键字为任意一种关键字。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述获取用于实现项目功能的项目代码之后,所述方法还包括:
根据所述项目代码确定项目的目标日志文件;
判断所述目标日志文件的大小;
如果所述目标日志文件的大小大于或等于预设值,停止将日志级别低于第二预设级别的日志写入所述目标日志文件,其中,所述第二预设级别高于所述第一预设级别。
6.一种项目代码的监控装置,其特征在于,所述装置包括:
获取单元,用于获取用于实现项目功能的项目代码,所述项目代码只记录优先级别大于第一预设级别的日志信息;
监控单元,用于根据所述项目代码确定目标SQL代码,监控所述目标SQL代码运行消耗CPU的时间,监控所述项目代码对应的项目运行的状况,并将运行过程中出现的错误信息写入目标文件;
第一判断单元,用于判断运行所述目标SQL代码消耗CPU的时间是否大于预设时长,判断所述目标文件是否存在错误信息;
第一生成单元,用于如果运行所述目标SQL代码消耗CPU的时间大于所述预设时长,则生成第一提示信息,所述第一提示信息用于提示对所述目标SQL代码进行优化;
第二生成单元,用于如果所述目标文件存在错误信息,则生成第二提示信息,所述第二提示信息用于提示修复所述项目代码中的错误。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二判断单元,用于在所述第一生成单元生成第一提示信息之后,通过动态管理视图判断所述目标SQL代码中是否缺少索引;
添加单元,用于如果所述目标SQL代码缺少索引,为所述目标SQL代码添加索引;
第三判断单元,用于如果所述目标SQL代码有索引,则判断所述目标SQL代码的索引是否失效;
重建单元,用于如果所述目标SQL代码的索引失效,通过rebuild指令重建所述目标SQL代码的索引,通过hint指令强制使用索引。
8.根据权利要求6所述的装置,其特征在于,所述第二生成单元包括:
统计子单元,用于在预设时间内统计所述目标文件中每种错误信息的出现次数;
获取子单元,用于获取所述每种错误信息的级别;
确定子单元,用于根据所述每种错误信息的级别将所述每种错误信息进行排序,同等级别的错误信息按照发生次数再进行排序,得到排序结果;
生成子单元,用于根据所述排序结果生成所述第二提示信息。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的项目代码的监控方法。
10.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于:所述程序指令被处理器加载并执行时实现权利要求1至5任意一项所述的项目代码的监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910068546.3A CN109918260A (zh) | 2019-01-24 | 2019-01-24 | 一种项目代码的监控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910068546.3A CN109918260A (zh) | 2019-01-24 | 2019-01-24 | 一种项目代码的监控方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109918260A true CN109918260A (zh) | 2019-06-21 |
Family
ID=66960723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910068546.3A Pending CN109918260A (zh) | 2019-01-24 | 2019-01-24 | 一种项目代码的监控方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918260A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633258A (zh) * | 2019-08-07 | 2019-12-31 | 平安科技(深圳)有限公司 | 日志插入方法、装置、计算机装置及存储介质 |
CN110941553A (zh) * | 2019-11-22 | 2020-03-31 | 山东英信计算机技术有限公司 | 一种代码检测方法、装置、设备及可读存储介质 |
CN112306803A (zh) * | 2020-10-29 | 2021-02-02 | 金蝶云科技有限公司 | 一种性能监控方法及相关设备 |
JP7484240B2 (ja) | 2020-03-10 | 2024-05-16 | 日本電気株式会社 | ログレベル調整装置、ログレベル調整方法及びプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681929A (zh) * | 2011-03-15 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 网页脚本错误监控方法及系统 |
US20140341260A1 (en) * | 2013-05-20 | 2014-11-20 | Telefonaktiebolaget L M Ericsson (Publ) | Robust, Fast Unused-Code Detection |
CN106445769A (zh) * | 2015-08-11 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 计算机运行监测方法、装置和系统 |
CN108388626A (zh) * | 2018-02-12 | 2018-08-10 | 平安科技(深圳)有限公司 | Sql自动优化方法、装置、计算机设备及存储介质 |
CN108920349A (zh) * | 2018-06-25 | 2018-11-30 | 郑州云海信息技术有限公司 | 日志数据的管理方法和装置 |
-
2019
- 2019-01-24 CN CN201910068546.3A patent/CN109918260A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681929A (zh) * | 2011-03-15 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 网页脚本错误监控方法及系统 |
US20140341260A1 (en) * | 2013-05-20 | 2014-11-20 | Telefonaktiebolaget L M Ericsson (Publ) | Robust, Fast Unused-Code Detection |
CN106445769A (zh) * | 2015-08-11 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 计算机运行监测方法、装置和系统 |
CN108388626A (zh) * | 2018-02-12 | 2018-08-10 | 平安科技(深圳)有限公司 | Sql自动优化方法、装置、计算机设备及存储介质 |
CN108920349A (zh) * | 2018-06-25 | 2018-11-30 | 郑州云海信息技术有限公司 | 日志数据的管理方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633258A (zh) * | 2019-08-07 | 2019-12-31 | 平安科技(深圳)有限公司 | 日志插入方法、装置、计算机装置及存储介质 |
CN110633258B (zh) * | 2019-08-07 | 2022-08-12 | 平安科技(深圳)有限公司 | 日志插入方法、装置、计算机装置及存储介质 |
CN110941553A (zh) * | 2019-11-22 | 2020-03-31 | 山东英信计算机技术有限公司 | 一种代码检测方法、装置、设备及可读存储介质 |
JP7484240B2 (ja) | 2020-03-10 | 2024-05-16 | 日本電気株式会社 | ログレベル調整装置、ログレベル調整方法及びプログラム |
CN112306803A (zh) * | 2020-10-29 | 2021-02-02 | 金蝶云科技有限公司 | 一种性能监控方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918260A (zh) | 一种项目代码的监控方法和装置 | |
Ma et al. | Diagnosing root causes of intermittent slow queries in cloud databases | |
CN103513983B (zh) | 用于预测性警报阈值确定工具的方法和系统 | |
CN1988549B (zh) | 生成用于应用会话的资源使用简档的方法和系统 | |
CA2933423C (en) | Data acceleration | |
US8196047B2 (en) | Flexible visualization for services | |
Maggi et al. | Monitoring business constraints with linear temporal logic: An approach based on colored automata | |
Shen et al. | Web service discovery based on behavior signatures | |
US11263071B2 (en) | Enabling symptom verification | |
CN109634801A (zh) | 数据趋势分析方法、系统、计算机装置及可读存储介质 | |
CN109977089A (zh) | 日志管理方法、装置、计算机设备及计算机可读存储介质 | |
CN106126403B (zh) | Oracle数据库故障分析方法和装置 | |
JP2007207173A (ja) | 性能分析プログラム、性能分析方法、および性能分析装置 | |
EP2695057A1 (en) | Creating a correlation rule defining a relationship between event types | |
CN104205062A (zh) | 剖析数据可视化 | |
CN106411609A (zh) | 一种it软硬件运行状态监控系统 | |
JP2016100005A (ja) | リコンサイル方法、プロセッサ及び記憶媒体 | |
Zhang et al. | Exstream: Explaining anomalies in event stream monitoring | |
AU2014216441B2 (en) | Queue monitoring and visualization | |
CN111160329A (zh) | 一种根因分析的方法及装置 | |
CN109753490A (zh) | 基于漏洞修复的数据库优化方法、系统、设备及介质 | |
US20060026143A1 (en) | System for querying databases | |
Paulheim | Efficient semantic event processing: Lessons learned in user interface integration | |
Azatchi et al. | Advanced analysis techniques for cross-product coverage | |
Fossier et al. | Maintenance of complex systems—from preventive to predictive |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190621 |