CN110515808B - 数据库监控方法、装置、计算机设备及存储介质 - Google Patents
数据库监控方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110515808B CN110515808B CN201910824225.1A CN201910824225A CN110515808B CN 110515808 B CN110515808 B CN 110515808B CN 201910824225 A CN201910824225 A CN 201910824225A CN 110515808 B CN110515808 B CN 110515808B
- Authority
- CN
- China
- Prior art keywords
- database
- access request
- data
- application program
- program
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Abstract
本发明实施例公开了一种数据库监控方法、装置、计算机设备及存储介质。所述方法包括:在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过所述探针程序获取所述服务访问请求的第三访问数据,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据。本发明实施例可以减少日志分析的复杂度和工作量,提高数据库性能数据的获取效率。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种数据库监控方法、装置、计算机设备及存储介质。
背景技术
数据库是所有应用架构中必不可少的组成部分。同样,要监控应用的性能,就必须监控数据库的性能数据。数据库监控可以帮助研发和运维人员定位应用性能瓶颈,提高应用的可用性。
目前监控数据库访问的方式包括:1、配置网站的容器和数据库驱动框架,在容器日志中得到数据库执行语句的记录;2、打开数据库服务本身的访问日志,在数据库日志中得到数据库执行语句的记录。
上述两种方法可以达到一定的监控效果。但存在一定缺陷,尤其是在复杂的系统中:1)无法把数据库监控得到的性能数据跟应用的业务性能数据直接关联;2)在数据库集群的条件下,日志分析的复杂度和工作量会成比例增加。
发明内容
本发明实施例提供了一种数据库监控方法、装置、计算机设备及存储介质,可以减少日志分析的复杂度和工作量,提高数据库性能数据的获取效率。
第一方面,本发明实施例提供了一种数据库监控方法,包括:
在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;
在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;
在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过所述探针程序获取所述服务访问请求的第三访问数据。
在检测到所述应用程序反馈所述服务访问请求的响应结果时,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
第二方面,本发明实施例提供了一种数据库监控装置,包括:
服务访问请求接收模块,用于在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;
数据库调用模块,用于在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;
服务访问请求响应模块,用于在检测到监测的应用程序反馈服务访问请求的响应结果时,通过探针程序获取所述服务访问请求的第三访问数据;
数据库性能数据获取模块,用于在检测到所述应用程序反馈所述服务访问请求的响应结果时,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
第三方面,本发明实施例还提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的数据库监控方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据库监控方法。
本发明实施例通过检测到应用程序在接收到服务请求时,获取服务访问请求的第一访问数据,并检测到应用程序发起调用数据库的数据访问请求时,获取第二访问数据,检测到应用程序反馈服务访问请求的响应结果时,获取第三访问数据,实现监控应用程序接收服务请求并调用数据库的工作流程,并在监控的过程中即时获取访问数据,省却在后期从日志中查询服务请求关联的数据以及数据访问请求关联的数据,解决了现有技术中从日志中获取数据库调用的数据库性能数据的复杂度高,工作量大的问题,减少在日志中查询的数据量,提高数据库监控的效率,同时避免对日志进行分析统计的工作,降低数据库调用的数据库性能数据的采集难度。
附图说明
图1是本发明实施例一中的一种数据库监控方法的流程图;
图2a是本发明实施例二中的一种数据库监控方法的流程图;
图2b是本发明实施例所适用的应用场景的示意图;
图3是本发明实施例三中的一种数据库监控装置的结构示意图;
图4是本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种数据库监控方法的流程图,本实施例可适用于在应用程序接收服务访问请求,并在服务访问请求的处理过程中调用数据库的过程中进行监控,并采集监控数据的情况,该方法可以由本发明实施例提供的数据库监控装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,例如服务器等。如图1所示,本实施例的方法具体包括:
S110,在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据。
其中,应用程序可以是客户端,还可以是服务实例。
在本发明实施例中,应用程序可以是指部署在微服务系统中的微服务,也即服务实例。其中,一个服务器中可以部署多个应用程序,各应用程序可以分别部署到不同的容器中;或者一个服务器中仅部署一个应用程序。
服务访问请求用于访问和/或调用应用程序。具体的,服务访问请求可以是外部设备或其他应用程序发送的请求。
可选的,所述应用程序为微服务系统中的服务实例;所述检测到监测的应用程序接收到服务访问请求,包括:检测到第一服务实例接收到客户端发送的服务访问请求;或检测到所述第一服务实例接收到第二服务实例发送的服务访问请求。
通过将数据库监控方法应用在微服务系统中,可以快速在服务实例的集群中快速采集数据库数据,减少后期从大量的日志中提取数据的工作量,从而,提高在复杂系统中的数据库性能数据采集的效率。
探针程序用于监控应用程序的操作行为,并获取操作行为数据发送至服务器,以使服务器对应用程序进行性能评估。其中,探针程序的监控操作不会影响应用程序的正常工作。
第一访问数据用于描述应用程序针对服务访问请求做出的操作行为。第一访问数据包括服务访问请求的上下文。可选的,所述第一访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息。
应用程序的标识信息可以是应用程序的名称。统一资源定位器地址可以是指URL地址(Uniform Resource Locator)。内存信息可以包括分配给应用程序的内存空间,例如应用程序可以使用的内存空间的大小。
需要说明的是,如果应用程序处理服务访问请求,不存在调用数据库的需求,应用程序可以无需发起调用数据库的数据库访问请求。若此时探针程序采集的是调用数据库的监控数据,可以在未检测到数据库访问请求时,放弃采集的第一访问数据。
S120,在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据。
通常,应用程序在处理服务访问请求时,会调用至少一个数据库,以获取数据库中存储的数据。示例性的,电商客户端从显示商品购买页面跳转到支付页面时,需要调用数据库获取生成支付页面的数据。
数据库访问请求用于应用程序访问数据库,获取数据库中的数据。
第二访问数据用于描述数据库访问请求关联的操作行为。具体的,可以通过数据库驱动程序处理数据库访问请求。第二访问数据包括数据库访问请求的上下文,此外,第二访问数据还包括数据库反馈的数据。可选的,所述第二访问数据包括所述应用程序的标识信息和/或调用所述数据库关联的线程信息。
调用数据库关联的线程信息可以是指,处理调用所述数据库关联的任务的线程的信息。示例性的,调用数据库关联的线程信息可以包括:线程开始执行调用数据库的任务的起始时刻、响应调用数据库的任务的结束时刻和响应结果(获取数据库中的数据)等。
第一访问数据包括服务访问请求的上下文信息,第二访问数据包括数据库访问请求的上下文信息,服务访问请求的上下文信息和数据库访问请求的上下文信息用于建立第一访问数据和第二访问数据之间的关联关系,以便后续进行应用程序的性能评估时,可以准确获取第一访问数据和第二访问数据作为完整的数据库性能数据,并进行性能评估,提高评估结果的准确性。
S130,在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过所述探针程序获取所述服务访问请求的第三访问数据,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
第三访问数据用于描述应用程序针对服务访问请求做出的操作行为。第三访问数据包括服务访问请求的上下文。可选的,所述第三访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息、线程数量,和各线程的追踪信息。
线程数量可以是指分配给应用程序的计算资源,例如,线程数量越多,应用程序可以同时响应的请求的数量越多。线程的追踪信息用于描述线程处理的任务的信息,具体可以包括线程开始执行任务的起始时刻、响应任务的结束时刻和响应结果等。
需要说明的是,如果应用程序处理服务访问请求,不存在调用数据库的需求,应用程序可以无需发起调用数据库的数据库访问请求。若此时探针程序采集的是调用数据库的监控数据,可以在未检测到数据库访问请求时,放弃采集的第三访问数据。
检测到应用程序反馈服务访问请求的响应结果,表明应用程序针对服务访问请求执行的任务已经完成。也即,此时,探针程序需要采集的数据均已采集完成。
其中,第一访问数据和第三访问数据的区别在于,第一访问数据采集的是服务访问请求未经过处理的上下文信息,第三访问数据采集的是服务访问请求经过处理后的上下文信息。
此时采集到的第一访问数据、第二访问数据和第三访问数据均具备应用程序的标识信息,通过应用程序的标识信息串联起整个服务访问请求的处理流程,从而可以针对服务访问请求采集到的完整的数据库性能数据。
可选的,在通过探针程序获取所述服务访问请求的第一访问数据之前,还包括:在检测到所述应用程序的启动指令时,加载所述探针程序。
其中,在检测到所述应用程序的启动指令时,加载探针程序,实际是在应用程序启动的同时,启动探针程序。其中,一个应用程序中可以部署一个探针程序,或者多个应用程序中共同部署一个探针程序。
通过探针程序与应用程序同时启动,可以避免探针程序遗漏应用程序进行请求处理的数据,保证采集的数据的完整性。
可选的,在将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据之后,还包括:将所述数据库性能数据发送至监控服务器,以使所述监控服务器根据所述数据库性能数据评估所述应用程序的性能。
其中,监控服务器与探针程序通信,探针程序用于监控应用程序,并将采集到的数据上报到监控服务器中。监控服务器用于接收多个探针程序上报的多个应用程序的数据库性能数据,并对数据库性能数据进行统计分析,确定应用程序的性能评估结果。具体的,统计分析方式,可以是统计应用程序从开始调用数据库的起始时刻,到获取数据库数据的结束时刻之间的时间,该时间越短,表明应用程序的数据库性能越好;该时间越长,表明应用程序的数据库性能越差。此外,还有其他统计分析方式评估应用程序的性能,对此,本发明实施例不作具体限制。
通过将第一访问数据、第二访问数据和第三访问数据共同作为数据库性能数据发送至监控服务器,以使监控服务器获取完整的数据库性能数据,保证数据库性能数据的统计分析结果的准确性。
本发明实施例通过检测到应用程序在接收到服务请求时,获取服务访问请求的第一访问数据,并检测到应用程序发起调用数据库的数据访问请求时,获取第二访问数据,在检测到所述应用程序反馈所述服务访问请求的响应结果时,获取第三访问数据,实现监控应用程序接收服务请求并调用数据库的工作流程,并在监控的过程中即时获取访问数据,省却在后期从日志中查询服务请求关联的数据以及数据访问请求关联的数据,解决了现有技术中从日志中获取数据库调用的数据库性能数据的复杂度高,工作量大的问题,减少在日志中查询的数据量,提高数据库监控的效率,同时避免对日志进行分析统计的工作,降低数据库调用的数据库性能数据的采集难度。
实施例二
图2a为本发明实施例二中的一种数据库监控方法的流程图,本实施例以上述实施例为基础进行具体化,将在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据具体化为:当监控到所述服务访问请求到达所述应用程序的入口点时,触发所述应用程序的第一埋点,通过探针程序获取所述服务访问请求的第一访问数据。将在检测到所述应用程序的发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据具体化为:当监控到所述数据库访问请求到达所述数据库的驱动程序的入口点时,触发所述驱动程序的第二埋点,通过探针程序获取所述数据访问请求的第二访问数据。将在在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过探针程序获取所述服务访问请求的第三访问数据具体化为:当监控到所述服务访问请求的处理指令到达所述应用程序的出口点时,触发所述应用程序的第三埋点,通过探针程序获取所述服务访问请求的第三访问数据。
如图2所示,本实施例的方法具体包括:
S210,当监控到所述服务访问请求到达所述应用程序的入口点时,触发所述应用程序的第一埋点,通过探针程序获取所述服务访问请求的第一访问数据。
通常,在应用程序运行的过程中,服务请求方发起服务访问请求,当服务访问请求到达应用程序的入口点时,应用程序接收到该服务访问请求并进行处理。应用程序根据调用数据库,发起数据库访问请求,并发送至数据库驱动程序。当数据库访问请求到达数据库驱动程序的入口点时,数据库驱动程序接收到该数据库访问请求并进行处理。将处理得到的数据库响应数据返回给应用程序。应用程序获取数据库响应数据,并与服务访问请求处理得到的其他数据,返回给服务请求方。
其中,服务请求方可以是外部客户端,也可以是其他应用程序。
埋点在应用程序运行时的预设流程中收集预设数据,用于跟踪应用程序运行的状态,以后续优化应用程序。示例性的,埋点用于收集页面统计数据以及操作行为统计数据。具体的,收集的数据包括访问数(Visits),访客数(Visitor),停留时长(Time On Site),页面浏览数(Page Views)和跳出率(Bounce Rate)等。
应用程序的入口点可以是指应用程序开始执行的首个函数。
由此,可以在应用程序的入口点(Entry Point)设置第一埋点,用于检测是否有服务访问请求到来。
通过应用程序的第一埋点获取第一访问数据,并通过应用程序的第三埋点获取第三访问数据时,以及通过数据库的驱动程序的第二埋点获取服务访问请求的上下文,以使第一访问数据、第二访问数据与第三访问数据建立关联关系。
具体的,在应用程序的入口点对应的第一埋点被触发时,通过探针程序开始采集数据,将获取到的数据作为第一访问数据。
S220,当监控到所述数据库访问请求到达所述数据库的驱动程序的入口点时,触发所述驱动程序的第二埋点,通过探针程序获取所述数据访问请求的第二访问数据。
数据库的驱动程序用于根据数据库访问请求,对数据库进行相应处理,得到数据库访问请求的响应结果。
驱动程序的入口点可以是指驱动程序开始执行的首个函数,驱动程序的出口点可以是指驱动程序执行的最后一个函数。
可以在驱动程序的入口点设置第二埋点,用于检测是否有数据库访问请求到来。还可以在驱动程序的出口点设置第二埋点,用于检测是否响应数据库访问请求,也即判断处理数据库访问请求的操作是否完成。
通过驱动程序的第二埋点获取第二访问数据时,还需要获取数据库访问请求的上下文,以使与第一访问数据建立关联关系。
具体的,在驱动程序的入口点对应的第二埋点被触发时,通过探针程序开始采集数据,并在驱动程序的出口点对应的第四埋点被触发时,通过探针程序停止采集数据,将获取到的数据作为第二访问数据。
在触发第一埋点和第二埋点时,通过探针程序获取第一访问数据和第二访问数据,同时,第一访问数据和第二访问数据中均包括上下文信息,可以根据上下文信息将属于一条调用链的第一访问数据和第二访问数据串联起来。
S230,当监控到所述服务访问请求的处理指令到达所述应用程序的出口点时,触发所述应用程序的第三埋点,通过所述探针程序获取所述数据访问请求的第三访问数据。
应用程序的出口点可以是指应用程序执行的最后一个函数。由此,可以在应用程序的出口点(Return Point)设置第三埋点,用于检测是否响应服务访问请求,也即判断处理服务访问请求的操作是否完成。
处理指令用于将服务访问请求的响应结果发送至应用程序的最后一个函数,以使最后一个函数将响应结果反馈给服务请求方。当服务访问请求的处理指令到达第三埋点时,确定服务访问请求处理完成。
具体的,在应用程序的出口点对应的第三埋点被触发时,通过探针程序开始采集数据,将获取到的数据作为第三访问数据。
在触发第一埋点、第二埋点和第三埋点时,通过探针程序获取第一访问数据、第二访问数据和第三访问数据,同时,第一访问数据、第二访问数据和第三访问数据中均包括上下文信息,可以根据上下文信息将属于一条调用链的第一访问数据、第二访问数据和第三访问数据串联起来,作为该服务访问请求对应的完整数据库性能数据。
S240,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
可选的,所述应用程序为微服务系统中的服务实例;所述检测到监测的应用程序接收到服务访问请求,包括:检测到第一服务实例接收到客户端发送的服务访问请求;或检测到所述第一服务实例接收到第二服务实例发送的服务访问请求。
可选的,在通过探针程序获取所述服务访问请求的第一访问数据之前,还包括:在检测到所述应用程序的启动指令时,加载所述探针程序。
可选的,在将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据之后,还包括:将所述数据库性能数据发送至监控服务器,以使所述监控服务器根据所述数据库性能数据评估所述应用程序的性能。
可选的,所述第一访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息。
可选的,所述第二访问数据包括所述应用程序的标识信息和/或调用所述数据库关联的线程信息。
可选的,所述第三访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息、线程数量,和各线程的追踪信息。
在一个具体的例子中,如图2b所示,数据库监控方法可以包括:服务发起方发起服务访问请求。在服务访问请求到达应用程序的入口点时,触发应用程序的入口点的第一埋点,传递上下文信息,同时通过探针程序采集上下文信息,形成第一访问数据。应用程序发起数据库访问请求,同时传递上下文信息。
在数据库访问请求到达数据库的驱动程序的入口点时,触发驱动程序的入口点的第二埋点,传递上下文信息,同时通过探针程序采集上下文信息。驱动程序运行完成,数据库响应数据到达驱动程序的出口点,触发驱动程序的出口点的第四埋点,传递上下文信息,同时通过探针程序采集上下文信息,形成第二访问数据。在驱动程序运行的过程中,通过探针程序采集事件数据。
应用程序接收到数据库响应数据,并继续执行服务访问请求的处理操作。应用程序运行完成,服务访问请求的处理指令到达应用程序的出口点,触发应用程序的出口点的第三埋点,传递上下文信息,同时通过探针程序采集上下文信息,形成第三访问数据。
应用程序将服务访问请求的响应结果反馈给服务请求方。在应用程序运行的过程中,通过探针程序采集事件数据。
同时,探针程序根据上下文信息,将第一访问数据、第二访问数据和第三访问数据进行关联,并结合采集到的事件数据,形成数据库性能数据,上报给监控服务器。
通过自动关联第一访问数据、第二访问数据和第三访问数据,实现将数据库的数据和应用程序的数据关联到一起,达到完整健全的数据库监控效果,解决了现有数据采集方式需要配备额外的日志分析系统才能达到完整健全的数据库监控效果,同时,可以灵活调整探针程序的采集对象,以及对采集的数据按照自定义方式进行统计和分析,增强采集数据上报的灵活性,以及便于将采集数据转换为各种数据协议和日志,能够接入不同的数据分析系统,具备更好的兼容性,而且,采集的数据是基于代码级的监控数据,数据产生的延时缩小到毫秒级,提高采集数据的实时性,为应用程序的监控和报警提供更好的实时性。
本发明实施例通过在应用程序的入口点和出口点以及在驱动程序的入口点和出口点分别进行埋点,并通过探针程序分别进行数据采集,准确获取第一访问数据、第二访问数据和第三访问数据,并将第一访问数据、第二访问数据和第三访问数据均作为数据库性能数据上报给服务器,保证数据库性能数据的完整性,从而提高应用程序性能评估的准确性。
实施例三
图3为本发明实施例三中的一种数据库监控装置的示意图。实施例三是实现本发明上述实施例提供的数据库监控方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,例如,服务器等。
相应的,本实施例的装置可以包括:
服务访问请求接收模块310,用于在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;
数据库调用模块320,用于在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;
数据库性能数据获取模块330,用于在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过探针程序获取所述服务访问请求的第三访问数据。将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
本发明实施例通过检测到应用程序在接收到服务请求时,获取服务访问请求的第一访问数据,并检测到应用程序发起调用数据库的数据访问请求时,获取第二访问数据,在检测到所述应用程序反馈所述服务访问请求的响应结果时,获取第三访问数据,实现监控应用程序接收服务请求并调用数据库的工作流程,并在监控的过程中即时获取访问数据,省却在后期从日志中查询服务请求关联的数据以及数据访问请求关联的数据,解决了现有技术中从日志中获取数据库调用的数据库性能数据的复杂度高,工作量大的问题,减少在日志中查询的数据量,提高数据库监控的效率,同时避免对日志进行分析统计的工作,降低数据库调用的数据库性能数据的采集难度。
进一步的,所述应用程序为微服务系统中的服务实例;所述服务访问请求接收模块310,包括:服务访问请求检测单元,用于检测到第一服务实例接收到客户端发送的服务访问请求;或检测到所述第一服务实例接收到第二服务实例发送的服务访问请求。
进一步的,所述应用程序为微服务系统中的服务实例;所述服务访问请求接收模块310,包括:第一入口埋点单元,用于当监控到所述服务访问请求到达所述应用程序的入口点时,触发所述应用程序的第一埋点,通过探针程序获取所述服务访问请求的第一访问数据;所述数据库调用模块320,包括:第二入口埋点单元,用于当监控到所述数据库访问请求到达所述数据库的驱动程序的入口点时,触发所述驱动程序的第二埋点,通过探针程序获取所述数据访问请求的第二访问数据;所述数据库调用模块330,包括:第一出口埋点单元,用于当监控所述服务访问请求的处理指令到达所述应用程序的出口点时,触发所述应用程序的第三埋点,通过探针程序获取所述服务访问请求的第三访问数据;
进一步的,所述数据库监控装置,还包括:数据库性能数据上报模块,用于在将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据之后,将所述数据库性能数据发送至监控服务器,以使所述监控服务器根据所述数据库性能数据评估所述应用程序的性能。
进一步的,所述第一访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息。
进一步的,所述第二访问数据包括所述应用程序的标识信息和/或调用所述数据库关联的线程信息。
进一步的,所述第三访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息、线程数量,和各线程的追踪信息。
上述数据库监控装置可执行本发明实施例所提供的数据库监控方法,具备执行的数据库监控方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的一种数据库监控方法。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的数据库监控方法:
也即,该程序被处理器执行时实现:在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过探针程序获取所述服务访问请求的第三访问数据,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种数据库监控方法,其特征在于,包括:
在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;
在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;
在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过所述探针程序获取所述服务访问请求的第三访问数据,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能;
所述在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据,包括:
当监控到所述服务访问请求到达所述应用程序的入口点时,触发所述应用程序的第一埋点,通过探针程序获取所述服务访问请求的第一访问数据;
所述在检测到所述应用程序的发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据,包括:
当监控到所述数据库访问请求到达所述数据库的驱动程序的入口点时,触发所述驱动程序的第二埋点,通过所述探针程序获取所述数据访问请求的第二访问数据;
所述在检测到所述应用程序反馈所述服务访问请求的响应结果时,通过所述探针程序获取所述服务访问请求的第三访问数据,包括:
当监控到所述服务访问请求的处理指令到达所述应用程序的出口点时,触发所述应用程序的第三埋点,通过所述探针程序获取所述数据访问请求的第三访问数据。
2.根据权利要求1所述的方法,其特征在于,所述应用程序为微服务系统中的服务实例;
所述检测到监测的应用程序接收到服务访问请求,包括:
检测到第一服务实例接收到客户端发送的服务访问请求;或
检测到所述第一服务实例接收到第二服务实例发送的服务访问请求。
3.根据权利要求1所述的方法,其特征在于,在将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据之后,还包括:
将所述数据库性能数据发送至监控服务器,以使所述监控服务器根据所述数据库性能数据评估所述应用程序的性能。
4.根据权利要求1所述的方法,其特征在于,所述第一访问数据包括下述至少一项:所述应用程序的标识信息、统一资源定位器地址、内存信息。
5.根据权利要求1所述的方法,其特征在于,所述第二访问数据包括所述应用程序的标识信息和/或调用所述数据库关联的线程信息。
6.根据权利要求1所述的方法,其特征在于,所述第三访问数据包括所述应用程序的标识信息、统一资源定位器地址、请求访问耗时、内存信息、线程数量,和各线程的追踪信息。
7.一种数据库监控装置,其特征在于,包括:
服务访问请求接收模块,用于在检测到监测的应用程序接收到服务访问请求时,通过探针程序获取所述服务访问请求的第一访问数据;
数据库调用模块,用于在检测到所述应用程序发起调用数据库的数据库访问请求时,通过所述探针程序获取所述数据库访问请求的第二访问数据;
服务访问请求响应模块,用于在检测到监测的应用程序反馈服务访问请求的响应结果时,通过探针程序获取所述服务访问请求的第三访问数据;
数据库性能数据获取模块,用于在检测到所述应用程序反馈所述服务访问请求的响应结果时,将所述第一访问数据、所述第二访问数据和所述第三访问数据作为所述服务访问请求对应的数据库性能数据,所述数据库性能数据用于评估所述应用程序的性能;
所述服务访问请求接收模块,包括:第一入口埋点单元,用于当监控到所述服务访问请求到达所述应用程序的入口点时,触发所述应用程序的第一埋点,通过探针程序获取所述服务访问请求的第一访问数据;
所述数据库调用模块,包括:第二入口埋点单元,用于当监控到所述数据库访问请求到达所述数据库的驱动程序的入口点时,触发所述驱动程序的第二埋点,通过探针程序获取所述数据访问请求的第二访问数据;
所述数据库调用模块,包括:第一出口埋点单元,用于当监控所述服务访问请求的处理指令到达所述应用程序的出口点时,触发所述应用程序的第三埋点,通过探针程序获取所述服务访问请求的第三访问数据。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的数据库监控方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的数据库监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910824225.1A CN110515808B (zh) | 2019-09-02 | 2019-09-02 | 数据库监控方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910824225.1A CN110515808B (zh) | 2019-09-02 | 2019-09-02 | 数据库监控方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515808A CN110515808A (zh) | 2019-11-29 |
CN110515808B true CN110515808B (zh) | 2023-03-14 |
Family
ID=68629265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910824225.1A Active CN110515808B (zh) | 2019-09-02 | 2019-09-02 | 数据库监控方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515808B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965782A (zh) * | 2019-12-13 | 2021-06-15 | 天翼电子商务有限公司 | 针对Docker容器的智能监控方法、装置、存储介质及电子设备 |
CN111506475A (zh) * | 2020-04-15 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、系统、可读介质及电子设备 |
CN112527620A (zh) * | 2020-12-24 | 2021-03-19 | 北京百度网讯科技有限公司 | 数据库性能分析方法及装置、电子设备、介质、产品 |
CN112749062A (zh) * | 2021-01-18 | 2021-05-04 | 广州虎牙科技有限公司 | 服务端程序监控方法、装置、计算机设备及存储介质 |
CN113051499B (zh) * | 2021-03-23 | 2023-11-21 | 北京智慧星光信息技术有限公司 | 数据采集量的监测方法、系统、电子设备及存储介质 |
CN114546759B (zh) * | 2022-01-14 | 2022-09-02 | 北京基调网络股份有限公司 | 数据库访问错误监测、分析方法、装置和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710615A (zh) * | 2018-12-29 | 2019-05-03 | 江苏满运软件科技有限公司 | 数据库的访问管理方法、系统、电子设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166812B (zh) * | 2014-06-25 | 2017-05-24 | 中国航天科工集团第二研究院七〇六所 | 一种基于独立授权的数据库安全访问控制方法 |
US11347871B2 (en) * | 2018-01-16 | 2022-05-31 | International Business Machines Corporation | Dynamic cybersecurity protection mechanism for data storage devices |
CN108667840B (zh) * | 2018-05-11 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 注入漏洞检测方法及装置 |
-
2019
- 2019-09-02 CN CN201910824225.1A patent/CN110515808B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710615A (zh) * | 2018-12-29 | 2019-05-03 | 江苏满运软件科技有限公司 | 数据库的访问管理方法、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110515808A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515808B (zh) | 数据库监控方法、装置、计算机设备及存储介质 | |
CN110888783B (zh) | 微服务系统的监测方法、装置以及电子设备 | |
US9009544B2 (en) | User operation history for web application diagnostics | |
CN111274095B (zh) | 日志数据处理方法、装置、设备及计算机可读存储介质 | |
US20160274997A1 (en) | End user monitoring to automate issue tracking | |
CN111563014A (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
US20170147483A1 (en) | Tracking asynchronous entry points for an application | |
CN114398179B (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
US8572553B2 (en) | Systems and methods for providing feedback for software components | |
CN113238815B (zh) | 一种接口访问控制方法、装置、设备及存储介质 | |
US10191844B2 (en) | Automatic garbage collection thrashing monitoring | |
CN108153654B (zh) | 一种日志收集方法及装置 | |
CN112749062A (zh) | 服务端程序监控方法、装置、计算机设备及存储介质 | |
CN111258765B (zh) | 一种负载均衡方法、装置、计算设备和存储介质 | |
CN111784176A (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN112416762A (zh) | Api测试方法及装置、设备、计算机可读存储介质 | |
CN109766028B (zh) | 一种红外触摸屏触控分管系统和方法 | |
CN111741046B (zh) | 数据上报方法、获取方法、装置、设备及介质 | |
CN113656314A (zh) | 压力测试处理方法及装置 | |
CN114385457A (zh) | 应用程序数据采集方法、装置、设备及存储介质 | |
CN110413496B (zh) | 一种实现电子证照运行数据组件化收集的方法 | |
CN113656391A (zh) | 数据检测方法及装置、存储介质及电子设备 | |
US9858549B2 (en) | Business transaction resource usage tracking | |
CN113419887A (zh) | 主机联机事务异常的处理方法及装置 | |
CN113704088B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |