CN106030456A - 自动异步切换标识 - Google Patents

自动异步切换标识 Download PDF

Info

Publication number
CN106030456A
CN106030456A CN201480063050.2A CN201480063050A CN106030456A CN 106030456 A CN106030456 A CN 106030456A CN 201480063050 A CN201480063050 A CN 201480063050A CN 106030456 A CN106030456 A CN 106030456A
Authority
CN
China
Prior art keywords
thread
affairs
computer
readable recording
monitored parameter
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.)
Granted
Application number
CN201480063050.2A
Other languages
English (en)
Other versions
CN106030456B (zh
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.)
Cisco Technology Inc
Vihana Inc
Original Assignee
Power Applications Inc
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 Power Applications Inc filed Critical Power Applications Inc
Publication of CN106030456A publication Critical patent/CN106030456A/zh
Application granted granted Critical
Publication of CN106030456B publication Critical patent/CN106030456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

可以自动地检测线程与其他软件组件之间的异步切换,并且可以跟踪对应的工作对象。系统可以报告包括原始请求和对应的异步请求的整个事务的监视信息。自动地检测异步请求可以包括仪表化虚拟机例如Java虚拟机(JVM)以检测线程切换对象的创建以及对象和/或线程执行。可以自动地跟踪、基于随时间推移而学习到的数据来跟踪、基于用户输入来跟踪以及以另外的方式配置线程切换对象。在一些实施方式中,在检测到线程切换对象的创建之后,调用的对象的标识可以被标识为在其他服务器或应用中被跟踪。

Description

自动异步切换标识
背景技术
万维网已扩展为使Web服务成为消费者的日常生活的一部分。Web服务可以由使用一种或更多种服务来处理事务的Web应用来提供。应用可以分布在几个机器上。内容页(例如,Web页)可以呈现在网络浏览器应用中并且可以提供来自由几个内容页元素请求的内容的信息。在一些内容页中,可以从不同的远端应用来异步地加载页元素。例如,响应于请求,内容页可以启动多个异步请求。
当前的应用跟踪工具不跟踪该多个异步请求。典型的系统监视单个内容页的后端事务。因此,当多个元素启动不同的进程和服务时,不使用现有技术的监视系统来跟踪它们。这提供了作为提供内容页的一部分的事务以及内容页呈现的真实性质的不充分的视图。
在本技术领域中需要具有改善了的监视能力的应用监视。
发明内容
本技术可以自动地检测线程与其他软件组件之间的异步切换(asynchronous handoff)。该系统可以报告包括原始请求以及对应的异步请求的整个事务的监视信息。自动地检测异步请求可以包括仪表化(instrument)虚拟机例如Java虚拟机(JVM)以检测线程切换对象的创建以及对象和/或线程执行。可以自动地跟踪、基于随时间推移而学习到的数据来跟踪、基于用户输入来跟踪以及以另外的方式配置线程切换对象。在一些实施方式中,在检测到线程切换对象的创建之后,调用的目标的标识可以被标识为在其他服务器或应用中被跟踪。
实施方式可以包括用于监视业务事务的方法。所述方法可以由服务器上的代理自动地检测对象的构造。所述对象可以被配置成将事务的控制从第一线程切换至第二线程。所构造的对象可以与监视参数相关联并且第二线程可以与所述监视参数相关联。
所述方法可以作为系统或者是在计算机可读介质上实现的可执行程序来实现。
附图说明
图1是用于监视业务事务的示例性系统的框图。
图2是具有多个元素的内容页的框图。
图3是用于监视业务事务的示例性方法。
图4是用于自动地仪表化构造器对象的示例性方法。
图5是用于检测线程切换对象的构造的示例性方法。
图6是将数据发送至控制器的示例性方法。
图7是控制器的操作的示例性方法。
图8是示例性计算设备的框图。
具体实施方式
本技术监视由一个或更多个分布式应用提供的网络应用或Web应用。Web应用可以由各自被实现为虚拟机的或被实现为在虚拟机上实施的一个或更多个应用的一个或更多个Web服务来提供。可以在一个或更多个虚拟机上通过跟踪工作对象创建和执行来自动地检测异步切换。检测异步切换可以帮助监视系统标识和跟踪内容页以及具有多个异步请求的其他模块的分布式业务事务。
自动地检测异步请求可以包括仪表化虚拟机例如Java虚拟机(JVM)以检测线程切换对象的创建。线程切换对象可以预先被知晓,可以随时间推移被学习到,可以由用户提供或者可以以其他方式被标识。例如,线程切换对象可以包括java调用,例如java.runable、java.callable和java.thread。
图1是用于监视业务事务的示例性系统的框图。图1的系统100包括客户端设备105、移动设备115、网络120、网络服务器125、应用服务器130、140、150和160、异步网络机170、数据库180和185以及控制器190。
客户端设备105可以包括网络浏览器110并且可以被实现为计算设备,例如便携式计算机、台式机、工作站或一些其他计算设备。网络浏览器110可以是用于对由应用服务器例如应用服务器130通过网络120经由网络服务器125提供的内容进行查看的客户端应用。移动设备115被连接至网络120并且可以被实现为适用于通过网络接收内容的便携式设备,例如移动电话、智能手机或其他便携式设备。客户端设备105和移动设备115两者可以包括被配置成对由网络服务器125提供的Web服务进行访问的硬件和/或软件。
网络120可以促进不同服务器、设备和机器之间的数据通信。该网络可以被实现为专用网络、公共网络、内联网、因特网、无线网络、蜂窝网络或这些网络的组合。
网络服务器125被连接至网络120并且可以接收和处理通过网络120接收的请求。网络服务器125可以被实现为实施网络服务的一个或更多个服务器。当网络120为因特网时,网络服务器125可以被实现为Web服务器。
应用服务器130与网络服务器125、应用服务器140和150以及控制器190通信。应用服务器130还可以与其他机器和设备(图1中未示出)通信。应用服务器130可以托管应用或者分布式应用的一部分并且包括虚拟机132、代理134及其他软件模块。如图1所示,应用服务器130可以被实现为一个服务器或多个服务器。
虚拟机132可以由在一个或更多个应用服务器上运行的代码来实现。上述代码可以实现计算机程序、模块和数据结构以实现用于执行程序和应用的虚拟机模式。在一些实施方式中,不止一个虚拟机132可以在应用服务器130上执行。虚拟机可以被实现为Java虚拟机(JVM)来实现。虚拟机132可以执行由包括系统100的应用服务器执行的业务事务的全部或一部分。虚拟机可以被看作是实现Web服务的几种服务之一。
可以使用字节代码插入或字节代码仪表化来仪表化虚拟机132,以修改虚拟机的对象代码。经仪表化的对象代码可以包括用于以下操作的代码:检测由虚拟机132接收的调用,检测由虚拟机132发送的调用,以及在虚拟机132上的应用执行期间与代理134通信。可替代地,其他代码可以是经仪表化的字节代码,例如包括在虚拟机132中执行的应用或在应用服务器130上而且在虚拟机132外部执行的应用的代码。
应用服务器130上的代理134可以通过对象代码的仪表化、将应用下载至该服务器或以某种其他方式被安装在应用服务器130上。可以执行代理134以监视应用服务器130和监视虚拟机132并且与应用服务器130、虚拟机132或在应用服务器130上的另一个应用上的字节仪表化代码通信。代理134可以通过应用服务器130和虚拟机132来检测例如接收调用和发送请求的操作。代理134可以接收来自于虚拟机132的经仪表化的代码的数据、处理上述数据并且将上述数据发送至控制器190。如本文所讨论的,代理134可以执行与监视虚拟机132和应用服务器130相关的其他操作。例如,代理134可以标识其他应用,共享业务事务数据,聚集检测运行时间数据以及执行其他操作。
代理134可以包括用于存储对象标识符和监视参数相关配对的映射表。当经仪表化的线程切换对象构造器被创建时,代理可以检测上述创建并且存储对象ID以及所创建的对象的监视数据。监视ID可以由代理或其他实体来创建。当在所创建的对象上执行经修改的对象运行方法时,针对该对象ID而存储的监视参数与该对象的线程处理执行相关联,并且监视参数可以包括在本地的对象执行中或包括在远端应用的对象执行中。可以通过将监视参数与执行对象相关联来监视执行对象。监视数据被报告至具有监视参数的控制器,并且分布的(例如,“连续的”)事务可以由可以使来自不同代理和应用的数据相关联的控制器绑结在一起。
应用服务器140、150和160中的每一个可以包括应用和代理。每个应用可以在对应的应用服务器上或虚拟机上运行。应用服务器140至160上的虚拟机142、152和162中的每一个的操作可以类似于虚拟机132的操作并且托管执行分布式业务事务的至少一部分的一个或更多个应用。代理144、154和164可以监视虚拟机142至162,采集和处理虚拟机的运行时间处的数据并且与控制器190通信。虚拟机132、142、152和162可以彼此通信作为执行分布式事务的一部分。具体地,每个虚拟机可以调用另一个虚拟机的任何应用或方法。
控制器190可以控制和管理分布在应用服务器130至160上的业务事务的监视。控制器190可以从代理134至164中的每一个接收运行时间数据,使业务事务数据的各部分相关联,与代理通信以配置运行时间数据的采集并且提供性能数据和通过接口的报告。该接口可以被看作是能够通过移动设备115、客户端设备105或一些其他设备查看的基于Web的接口。在一些实施方式中,客户端设备192可以与控制器190直接通信以查看用于监视数据的接口。
异步网络机170可以参与与例如应用服务器150和160的一个或更多个应用服务器的异步通信。例如,应用服务器150可以将几个调用或消息发送至异步网络机。异步网络机可以处理信息并且最终向应用服务器160提供例如处理信息的响应,而不是传回应用服务器150。由于从异步网络机至应用服务器150没有返回信息,所以异步网络机与应用服务器150之间的通信是异步的。
数据库180和185可以各自由例如应用服务器150的应用服务器访问。数据库185还可以由应用服务器150访问。数据库180和185中的每个数据库可以存储数据,处理所述数据并且返回从应用服务器接收的查询。数据库180和185中的每个数据库可以包括或不包括代理。
图2是具有多个元素的内容页的框图。图2包括内容页200和250。可以根据从一个或更多个远端应用例如Web服务应用接收的内容来在网络浏览器应用中呈现内容页200和250中的每个内容页。
内容页200包括可选内容页元素205。当被用户选择时,提供内容页200的网络浏览器可以用内容页250来替换内容页200。内容页250包括异步内容页元素210、220、230和240。
在实施方式中,当网络浏览器呈现内容页250时异步内容页元素210至240中的一个或更多个可以启动针对内容的异步调用。例如,上述内容页元素中的一个或更多个可以设置对网页服务、资源、远端对象或其他元素的调用。异步内容页元素所做出的每个调用可以独立于其他异步内容页元素的操作并且可以与其自身的分布式事务相关联。同样地,当内容页250被呈现时,内容页元素210至240可以并行地操作以检索要在网络浏览器应用内的内容页200中再现的内容。
由于内容页元素并行地工作以接收内容,与内容页200相关联的线程可以将控制切换至与各个异步内容页元素中的每个异步内容页元素相关联的单独的线程。类似地,每个内容页元素线程可以将控制切换至另一线程,例如在远端应用处的线程。现有技术的应用监视系统无法将针对可选内容页元素205而接收的请求与和异步内容页元素210至240相关联的一个或更多个异步请求相关联。本技术能够自动跟踪线程切换对象以提供较好的跟踪以及在内容页250中提供内容的整个过程(分布式事务或连续性事务)的相关性。
图3是用于监视业务事务的示例性方法。首先,在步骤310处可以自动地仪表化构造器对象。上述仪表化可以包括仪表化应用服务器字节代码或对象代码。构造器可以被仪表化以使得当构造器随后创建对象(具体为线程切换对象)时,该对象可以被跟踪。线程切换对象可以是很可能导致新线程被分配以从现有线程取得对进程的控制的任何对象。经自动地仪表化的构造器的示例包括构造可调用对象、可运行对象和线程对象的构造器。新线程可以是原始线程的子线程。尽管参照步骤310讨论了虚拟机,但为了检测线程切换对象的创建,可以仪表化应用的其他部分。关于仪表化字节代码和/或对象代码以检测线程切换对象的创建的更多细节参照图4的方法来讨论。
在步骤315处可以自动地仪表化运行方法。运行方法可以包括用于执行在步骤310处被仪表化的线程切换对象的一种或更多种方法。例如,针对可调用对象、可运行对象和线程对象,执行所述对象的方法可以包括调用方法、运行方法和线程方法。无论用户输入、系统行为及其他因素如何,都可以自动地仪表化步骤310的构造器和步骤315的方法。
在步骤320处可以构造另外的构造器和运行方法。所述另外的构造器和运行方法可以不像步骤310和315中那些构造器和运行方法那样构造,而是可以基于用户输入、随时间推移的系统行为学习及其他因素来构造。
在以下美国专利申请中讨论了关于仪表化代码、安装代理以及监视事务的另外的信息:于2010年9月9日提交的标题为“MonitoringDistributed Web Application Transactions”的美国专利申请No.12/878,919、于2011年7月22日提交的标题为“Automatic Capture ofDiagnostic Data Based on Transaction Behavior Learning”的美国专利申请No.13/189,360、以及于2012年2月2日提交的标题为“AutomaticCapture of Detailed Analysis Information for Web Application Outlierswith Very Low Overhead”的美国专利申请No.13/365,171,以上三个申请的全部内容通过引用而合并到本文中。
在步骤325处可以将代理安装在应用中并且可以配置控制器。代理可以被安装在应用服务器上以及虚拟机内、应用内或虚拟机外。可以通过字节代码仪表化、通过将要安装的代码下载到应用服务器上或者通过一些其他方法来添加代理。在某个点处,还可以配置控制器190。配置控制器190可以包括将软件加载到控制器190上用于与一个或更多个代理通信,处理运行时间数据,报告性能信息以及执行其他操作。参照图7来更加详细地讨论某个控制器190的操作。
在步骤330处可以检测线程切换对象的构造。当构造器创建对象时经仪表化的构造器可以通知代理。该对象可以是由在步骤310处被自动地仪表化的构造器或在步骤320处非自动地仪表化的构造器创建的对象之一。
在某些情况下,当检测到线程切换对象的构造时,可以用监视参数来修改用于执行线程切换对象的调用。应用服务器上的作出该调用的代理可以修改该调用作为业务事务的一部分。代理可以用例如应用标识符、事务标识符、请求标识符、调用链信息和诊断状态的监视参数来修改所述调用。在一些实施方式中,通过向输出线程添加例如来自“线程本地”文件的监视参数的线程信息来修改调用。可以由代理将监视参数数据添加至“线程本地”文件。步骤330的更多细节参照图5的方法来讨论。
在步骤335处,当创建了线程切换对象时,存储对象标识符和监视参数。对象标识符可以标识所创建的例如具有唯一标识符的对象。监视参数可以标识与最终启动对象创建的请求相关联的事务ID。可以由虚拟机上的代理或者可以执行所创建的对象的其他节点来将对象标识符和监视参数存储在内存映射中。
在步骤340处可以检测对象的执行。当经仪表化的运行方法在例如在步骤330处创建的线程切换对象的对象上被调用时可以检测对象执行。经仪表化的调用方法可以告知代理何时通过该方法执行对象。
在步骤345处检索与被执行的对象相关联的事务监视参数。代理可以接收包括正在被执行的对象的标识符的对象执行消息。代理可以检索与该对象标识符对应的监视参数。然后在步骤350处,代理可以将被执行的对象与检索到的监视参数相关联。在一些情况下,代理可以通过将监视参数与正执行对象的线程相关联来将被执行的对象与监视参数相关联。
在步骤355处完成对象执行。对象的执行可以包括将对象执行的控制切换至另一线程,该另一线程可以在本地位于调用该对象的同一虚拟机或应用上或者在远端位于另外的虚拟机或应用上。在任何情况下,监视参数可以保持与对象执行相关联。在某些情况下,对象的执行可以包括创建并且执行另一线程切换对象。当这种情况发生时,如在前的对象一样,另外的线程切换对象与监视参数相关联,另外的对象的执行完成,并且可以基于另外的线程切换对象执行的结果来执行在前的线程切换对象直至完成。
在步骤360处可以将数据发送至控制器。该数据可以包括监视数据、所聚集的运行时间数据及其他数据。可以通过监视线程切换对象创建和执行的代理来报告该数据。参考图6的方法来讨论将数据发送至控制器的更多信息。
图4是用于自动地仪表化构造器对象的示例性方法。图4的方法提供关于图3的方法的步骤310的更多细节。在步骤410处仪表化虚拟机以检测可运行对象构造器。可运行对象可以被称为线程切换对象,并且将期望监视该对象的创建。在步骤420处可以仪表化虚拟机以检测可调用对象构造器。在步骤430处可以仪表化虚拟机以检测线程对象构造器。
在步骤410至430处的仪表化可以检测很可能将控制从一个线程切换至另一线程的对象。可以执行仪表化以使得:当构造器创建对象时,代码被插入到构造器、构造器的代理以及代理名称中。
图4的方法的步骤可以以任何顺序来执行并且可以单独执行。例如,可以在可运行对象构造器之前仪表化可调用对象构造器,或者可以仅针对特定的应用来仪表化可调用对象构造器。此外,除了仪表化在图4的方法的步骤中列出的对象构造器之外,还可以仪表化其他的对象构造器。
图5是用于检测线程切换对象的构造的示例性方法。图5的方法提供了关于图3的方法的步骤330的更多细节。步骤510至520首先确定是否检测到很可能执行切换的对象构造。在步骤510处,确定是否检测到可运行对象的构造。如果检测到可运行对象,则图5的方法继续至跟踪该对象的步骤525。跟踪该对象可以包括在存储映射中存储关于该对象的数据。在步骤515处确定是否检测到可调用对象的构造。如果检测到可调用对象的构造,则在步骤525处跟踪所构造的对象。在步骤520处确定是否检测到线程对象的构造。如果未检测到线程对象的构造,则图5的方法结束而不跟踪对象的构造。如果在步骤520处检测到线程对象的构造,则可以在步骤525处跟踪检测到的对象。
图6是用于将数据发送至控制器的示例性方法。在步骤610处可以聚集运行时间数据。代理所收集的运行时间数据可以基于监视参数来聚集以及在例如1分钟的时间段内被平均。
当与调用相关联的运行时间数据被接收时可以将其存储。在一些实施方式中,运行时间数据可以指示完成调用的响应时间。运行时间数据可以包括与业务事务、调用链及其他参数信息相关联的定时信息及其他数据。代理可以接收或检索与应用调用、方法调用及其他操作的开始和结束对应的时间戳。当调用完成时,可以产生用于整个调用以及将调用插入至其他应用的响应时间。
在步骤620处可以检测运行时间数据报告事件。运行时间报告事件可以是几个事件中的任何事件,例如,计时器的终止、报告运行时间数据的应用服务器的一个或更多个资源的状态或者另一个事件。然后可以在步骤630处由代理将运行时间数据发送至控制器190。控制器190可以接收来自一个或更多个代理的数据,处理该数据并且可以提供关于正被监视的系统的监视信息。
图7是用于控制器的操作的示例性方法。在步骤710处可以从一个或更多个代理接收聚集运行时间数据。可以基于事件,基于数据的负载大小或者基于一些其他标准来定期接收聚集运行时间数据。聚集运行时间数据可以指示业务事务、调用链数据、时间戳数据及其他数据。业务事务可以与请求相关联。聚集数据中的调用链数据可以包括在请求的头部中接收的调用链数据,如果存在的话,还可以包括处理请求的应用或虚拟机的标识符。聚集数据可以被发送以用于每个调用链组合。
在步骤720处可以根据所接收的聚集数据来构造用于业务事务的调用链。可以基于所接收的聚集数据中的调用链数据通过连接与业务事务的一部分相关联的数据来构造调用链。
构造调用链可以包括将一个或更多个异步请求与父请求相关联。例如,在客户端处的内容页中接收的请求可以导致由不同于处理原始请求的线程的多个线程启动多个异步请求。在本文所描述的每个技术中,多个异步请求可以被绑定至原始请求,所有这些原始请求由不同的线程处理。控制器可以将原始请求的性能数据及其他数据与后续的异步请求相关联作为单一的分布式或连续事务以进行进一步分析。
在步骤730处可以确定针对业务事务的性能信息。性能信息可以指示针对业务事务的总响应时间和每个节点(例如,在业务事务中的每个应用服务器或虚拟机的处理时间)的本地响应时间、系统内的虚拟机之间的时间段、以及性能是否能够被接受。
可以在步骤740处基于所确定的性能来确定用于业务事务的性能基线和告警。在一些实施方式中,可以针对业务事务的一部分来确定平均性能或基线性能,例如通过对一段时间内每个部分的性能数据求平均。可以在步骤750处报告业务事务的性能。
图8是示例性计算设备的框图。图8的系统800可以在像应用服务器130至160、网络服务器125、数据库180和185以及客户端105和192这样的环境中来实现。图8的计算系统800包括一个或更多个处理器810和存储器810。主存储器810部分地存储供处理器810执行的指令和数据。当操作时主存储器810可以存储可执行代码。图8的系统800还包括大容量存储设备830、便携式存储介质驱动840、输出设备850、用户输入设备860、图形显示器870和外围设备880。
图8所示的组件被描述为经由单个总线890来连接。然而,上述组件可以通过一个或更个数据传输装置来连接。例如,处理器单元810和主存储器810可以经由本地微处理器总线来连接,并且大容量存储设备830、外围设备880、便携式存储设备840和显示系统870可以经由一个或更多个输入/输出(I/O)总线来连接。
可以用磁盘驱动器或光盘驱动器来实现的大容量存储设备830是用于对供处理器单元810使用的数据和指令进行存储的非易失性存储设备。为将用于实现本发明的实施方式的系统软件加载至主存储器810,大容量存储设备830可以存储该系统软件。
便携式存储设备840结合例如软盘、致密盘或数字视频盘的便携式非易失性存储介质来操作以往/从图8的计算机系统800输入/输出数据和代码。用于实现本发明的实施方式的系统软件可以存储在这样的便携式介质上并且经由便携式存储设备840被输入至计算机系统800。
输入设备860提供了用户接口的一部分。输入设备860可以包括字母数字小键盘,例如键盘,用于输入字母数字及其他信息;或定点设备,例如鼠标、追踪球、手写笔或光标方向键。此外,如图8所示的系统800包括输出设备850。合适的输出设备的示例包括扬声器、打印机、网络接口和监视器。
显示系统870可以包括液晶显示器(LCD)或其他合适的显示设备。显示系统870接收文本和图形信息,并且处理该信息以输出至显示设备。
外围设备880可以包括任意类型的用于为计算机系统添加另外功能的计算机支持设备。例如,外围设备880可以包括调制解调器或路由器。
包括在图8的计算机系统800中的组件是通常在计算机中出现的可能适用于本发明的实施方式的那些组件并且意在表示本领域所熟知的这样的计算机组件的广泛类别。因此,图8的计算机系统800可以是个人计算机、手持计算设备、电话、移动计算设备、工作站、服务器、小型计算机、大型计算机或任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统,包括Unix、Linux、Windows、Mac OS、Palm OS及其他合适的操作系统。
类似于图8的计算系统的计算系统可以用于实现移动设备115,但是还可以包括通常出现在这样的移动设备中的另外的元件。例如,实现移动设备15的系统除了包括图8的系统的元件以外,还可以包括用于无线通信的一个或更多个天线及相关电路、扬声器、触摸屏以及用于实现例如智能手机、平板电脑等移动设备的其他组件。
上面出于说明和描述的目的而对本文的技术进行了详细描述。上述描述非意在为穷尽性或者将本技术限于所公开的精确形式。根据上述教导,可以作出许多修改和变型。为了最佳地解释本技术的原理及其实际应用而选择了所描述的实施方式,从而使本领域的其他技术人员能够最佳地利用不同实施方式中的技术并且利用本技术的适用于所设想的具体用途的多种修改。意在通过所附权利要求书来限定本技术的范围。

Claims (30)

1.一种用于监视业务事务的方法,包括:
由服务器上的代理自动地检测对象的构造,所述对象被配置成将事务的控制从第一线程切换至第二线程;
将所构造的对象与监视参数相关联;以及
将所述第二线程与所述监视参数相关联。
2.根据权利要求1所述的方法,其中,所述对象是可调用对象。
3.根据权利要求1所述的方法,其中,所述对象是可运行对象。
4.根据权利要求1所述的方法,其中,所述对象是线程对象。
5.根据权利要求1所述的方法,还包括:
自动地检测所述对象的执行,其中,所述对象的执行将事务的控制从第一线程传递至第二线程,其中,所述监视参数与所述第一线程相关联。
6.根据权利要求1所述的方法,其中,所述对象创建要作为事务的一部分执行的子线程。
7.根据权利要求1所述的方法,其中,所述对象由多个独立执行内容页元素中的第一独立执行内容页元素来启动。
8.根据权利要求1所述的方法,其中,所述对象构造由在构造所述对象的服务器上执行的代理来检测。
9.根据权利要求1所述的方法,其中,所述事务由构造所述对象的第一线程以及由所述对象启动的第二线程来执行。
10.根据权利要求9所述的方法,其中,监视所述事务包括监视所述第一线程和所述第二线程。
11.一种包含有程序的计算机可读存储介质,所述程序能够由处理器执行以执行用于监视业务事务的方法,所述方法包括:
自动地检测对象的构造,所述对象被配置成将事务的控制从第一线程切换至第二线程;
将所构造的对象与监视参数相关联;以及
将所述第二线程与所述监视参数相关联。
12.根据权利要求11所述的计算机可读存储介质,其中,所述对象是可调用对象。
13.根据权利要求11所述的计算机可读存储介质,其中,所述对象是可运行对象。
14.根据权利要求11所述的计算机可读存储介质,其中,所述对象是线程对象。
15.根据权利要求11所述的计算机可读存储介质,自动地检测所述对象的执行,其中,所述对象的执行将事务的控制从第一线程传递至第二线程,其中,所述监视参数与所述第一线程相关联。
16.根据权利要求11所述的计算机可读存储介质,其中,所述对象创建要作为事务的一部分执行的子线程。
17.根据权利要求11所述的计算机可读存储介质,其中,所述对象由多个独立执行内容页元素中的第一独立执行内容页元素来启动。
18.根据权利要求11所述的计算机可读存储介质,其中,所述对象构造由在构造所述对象的服务器上执行的代理来检测。
19.根据权利要求11所述的计算机可读存储介质,其中,所述事务由构造所述对象的第一线程以及由所述对象启动的第二线程来执行。
20.根据权利要求19所述的计算机可读存储介质,其中,监视所述事务包括监视所述第一线程和所述第二线程。
21.一种用于监视业务事务的系统,所述系统包括:
处理器;
存储器;以及
一个或更多个模块,所述一个或更多个模块存储在所述存储器中并且能够由所述处理器执行以由服务器上的代理自动地检测对象的构造,所述对象被配置成将事务的控制从第一线程切换至第二线程、将所构造的对象与监视参数相关联以及将所述第二线程与所述监视参数相关联。
22.根据权利要求21所述的系统,其中,所述对象是可调用对象。
23.根据权利要求21所述的系统,其中,所述对象是可运行对象。
24.根据权利要求21所述的系统,其中,所述对象是线程对象。
25.根据权利要求21所述的系统,自动地检测所述对象的执行,其中,所述对象的执行将事务的控制从第一线程传递至第二线程,其中,所述监视参数与所述第一线程相关联。
26.根据权利要求21所述的系统,其中,所述对象创建要作为事务的一部分执行的子线程。
27.根据权利要求21所述的系统,其中,所述对象由多个独立执行内容页元素中的第一独立执行内容页元素来启动。
28.根据权利要求21所述的系统,其中,所述对象构造由在构造所述对象的服务器上执行的代理来检测。
29.根据权利要求21所述的系统,其中,所述事务由构造所述对象的第一线程以及由所述对象启动的第二线程来执行。
30.根据权利要求29所述的系统,其中,所述一个或更多个模块能够被执行以监视所述第一线程和所述第二线程。
CN201480063050.2A 2013-10-18 2014-10-20 自动异步切换标识 Active CN106030456B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/058,200 US9515901B2 (en) 2013-10-18 2013-10-18 Automatic asynchronous handoff identification
US14/058,200 2013-10-18
PCT/US2014/061402 WO2015058204A1 (en) 2013-10-18 2014-10-20 Automatic asynchronous handoff identification

Publications (2)

Publication Number Publication Date
CN106030456A true CN106030456A (zh) 2016-10-12
CN106030456B CN106030456B (zh) 2019-04-30

Family

ID=52827185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480063050.2A Active CN106030456B (zh) 2013-10-18 2014-10-20 自动异步切换标识

Country Status (4)

Country Link
US (2) US9515901B2 (zh)
EP (1) EP3058438A4 (zh)
CN (1) CN106030456B (zh)
WO (1) WO2015058204A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871290A (zh) * 2019-03-07 2019-06-11 腾讯科技(深圳)有限公司 应用于Java的调用堆栈追踪方法、装置和存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9515901B2 (en) 2013-10-18 2016-12-06 AppDynamics, Inc. Automatic asynchronous handoff identification
US9529691B2 (en) 2014-10-31 2016-12-27 AppDynamics, Inc. Monitoring and correlating a binary process in a distributed business transaction
US9535811B2 (en) 2014-10-31 2017-01-03 AppDynamics, Inc. Agent dynamic service
US9535666B2 (en) 2015-01-29 2017-01-03 AppDynamics, Inc. Dynamic agent delivery
US20160323397A1 (en) * 2015-04-30 2016-11-03 AppDynamics Inc. Aysnchronous Custom Exit Points
US9838488B2 (en) * 2015-04-30 2017-12-05 Appdynamics Llc Agent asynchronous transaction monitor
US10481936B2 (en) * 2017-02-22 2019-11-19 Red Hat Israel, Ltd. Efficient virtual machine memory monitoring with hyper-threading
CN109669720B (zh) * 2018-11-22 2022-05-10 北京字节跳动网络技术有限公司 基于Promise的链式异步请求处理方法、装置及电子设备
US11516234B1 (en) * 2019-07-08 2022-11-29 Cisco Technology, Inc. In-process correlation through class field injection
CN111695884B (zh) * 2020-08-17 2020-11-20 广东新视野信息科技股份有限公司 一种基于智慧工地的物联网大数据可视化方法及系统
US11327817B2 (en) 2020-09-17 2022-05-10 Cisco Technology, Inc. Automatic scope configuration of monitoring agents for tracking missing events at runtime

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423456A (zh) * 2001-12-03 2003-06-11 深圳市中兴通讯股份有限公司上海第二研究所 共享线程实现和调度方法
US20050039190A1 (en) * 2003-08-12 2005-02-17 Jeffrey Rees Propagating web transaction context into common object model (COM) business logic components
CN1608246A (zh) * 2001-12-31 2005-04-20 英特尔公司 多线程处理器中对线程执行的挂起
CN1740974A (zh) * 2005-09-14 2006-03-01 艾默生网络能源有限公司 一种线程调度管理方法和系统
CN101171570A (zh) * 2005-03-14 2008-04-30 高通股份有限公司 多线程处理器和线程切换方法
US20120297371A1 (en) * 2007-08-14 2012-11-22 Bernd Greifeneder Method and System for tracing individual Transactions at the Granularity Level of Method Calls Throughout Distributed Heterogeneous Applications without Source Code Modifications Including the Detection of Outgoing Requests

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651108B2 (en) * 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
JPH10187638A (ja) 1996-10-28 1998-07-21 Mitsubishi Electric Corp クラスタ制御システム
US6125382A (en) 1997-07-25 2000-09-26 International Business Machines Corporation Distributed thread mechanism and method
US6493816B1 (en) * 1998-03-30 2002-12-10 International Business Machines Corporation Method and apparatus for encapsulating address translation for shared persistent virtual storage
US7373410B2 (en) * 2002-10-23 2008-05-13 Genesys Telecommunications Laboratories, Inc. Method and system for providing adaptive and proactive interaction management for multiple types of business interactions occurring in a multimedia communications environment
US6898411B2 (en) 2000-02-10 2005-05-24 Educational Testing Service Method and system for online teaching using web pages
US6601086B1 (en) 2000-06-06 2003-07-29 Emware, Inc. Service provider for providing data, applications and services to embedded devices and for facilitating control and monitoring of embedded devices
US7065566B2 (en) 2001-03-30 2006-06-20 Tonic Software, Inc. System and method for business systems transactions and infrastructure management
US20030093551A1 (en) 2001-10-17 2003-05-15 Graham Taylor Adaptive software interface
JP2004164554A (ja) 2002-09-24 2004-06-10 Hitachi Ltd プログラム実行監視装置および方法
US20050005025A1 (en) 2003-07-04 2005-01-06 Michael Harville Method for managing a streaming media service
US7519912B2 (en) 2004-01-22 2009-04-14 International Business Machines Corporation Method and system for sensing and communicating the use of communication modes by remote users
US20050273709A1 (en) 2004-06-04 2005-12-08 Ira Lough System and method for conversion of legacy language conforming data entries to industry-standard language conforming data entries
US7596546B2 (en) 2004-06-14 2009-09-29 Matchett Douglas K Method and apparatus for organizing, visualizing and using measured or modeled system statistics
US20060168526A1 (en) 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US20060271930A1 (en) 2005-05-25 2006-11-30 Letizi Orion D Clustered object state using synthetic transactions
US9632817B2 (en) 2005-07-29 2017-04-25 International Business Machines Corporation Correlating business workflows with transaction tracking
US7752607B2 (en) 2005-10-13 2010-07-06 Sap Ag System and method for testing business process configurations
US8630965B2 (en) 2006-04-06 2014-01-14 Yale University Framework of hierarchical sensory grammars for inferring behaviors using distributed sensors
FR2905812B1 (fr) 2006-09-08 2008-10-24 Alcatel Sa Traverssee d'un equipement de traduction d'adresse nat pour messages de signalisation conformes au protocole sip
US8726257B2 (en) 2006-10-20 2014-05-13 Analog Devices, Inc File attributes for flexible linking
US8032884B2 (en) 2006-10-31 2011-10-04 Hewlett-Packard Development Company, L.P. Thread hand off
US8239871B2 (en) * 2008-06-24 2012-08-07 International Business Machines Corporation Managing timeout in a multithreaded system by instantiating a timer object having scheduled expiration time and set of timeout handling information
US7953850B2 (en) 2008-10-03 2011-05-31 Computer Associates Think, Inc. Monitoring related content requests
US8312249B1 (en) 2008-10-10 2012-11-13 Apple Inc. Dynamic trampoline and structured code generation in a signed code environment
US8572627B2 (en) * 2008-10-22 2013-10-29 Microsoft Corporation Providing supplemental semantics to a transactional queue manager
US7992045B2 (en) 2008-12-02 2011-08-02 Computer Associates Think, Inc. Identifying and monitoring asynchronous transactions
US8359568B2 (en) 2008-12-22 2013-01-22 International Business Machines Corporation Method and system for automatically adding generic change log to legacy application
US8423973B2 (en) 2009-05-08 2013-04-16 Ca, Inc. Instrumenting an application with flexible tracers to provide correlation data and metrics
US8938533B1 (en) 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US9167028B1 (en) 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
US8965952B1 (en) 2009-09-22 2015-02-24 Cellco Partnership Processing service requests of multiple types on a common communication port for a service that accepts only one type
US8429624B2 (en) 2010-08-17 2013-04-23 Lsi Corporation Application programming interface (API) router implementation and method
JP5569269B2 (ja) 2010-09-06 2014-08-13 ソニー株式会社 端末装置、情報処理システム、依頼先選択方法、及びプログラム
US20120167057A1 (en) 2010-12-22 2012-06-28 Microsoft Corporation Dynamic instrumentation of software code
US9274919B2 (en) 2011-04-29 2016-03-01 Dynatrace Software Gmbh Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth
US20130067069A1 (en) 2011-09-13 2013-03-14 International Business Machines Corporation Flow topology of computer transactions
US8931016B2 (en) 2011-09-15 2015-01-06 Verizon Patent And Licensing Inc. Program handoff between devices and program network offloading
WO2013111144A2 (en) 2011-11-04 2013-08-01 Vserv Digital Services Pvt.Ltd. System for inserting services in a software application
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
US20150067146A1 (en) 2013-09-04 2015-03-05 AppDynamics, Inc. Custom correlation of a distributed business transaction
US9515901B2 (en) 2013-10-18 2016-12-06 AppDynamics, Inc. Automatic asynchronous handoff identification
US9529691B2 (en) 2014-10-31 2016-12-27 AppDynamics, Inc. Monitoring and correlating a binary process in a distributed business transaction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423456A (zh) * 2001-12-03 2003-06-11 深圳市中兴通讯股份有限公司上海第二研究所 共享线程实现和调度方法
CN1608246A (zh) * 2001-12-31 2005-04-20 英特尔公司 多线程处理器中对线程执行的挂起
US20050039190A1 (en) * 2003-08-12 2005-02-17 Jeffrey Rees Propagating web transaction context into common object model (COM) business logic components
CN101171570A (zh) * 2005-03-14 2008-04-30 高通股份有限公司 多线程处理器和线程切换方法
CN1740974A (zh) * 2005-09-14 2006-03-01 艾默生网络能源有限公司 一种线程调度管理方法和系统
US20120297371A1 (en) * 2007-08-14 2012-11-22 Bernd Greifeneder Method and System for tracing individual Transactions at the Granularity Level of Method Calls Throughout Distributed Heterogeneous Applications without Source Code Modifications Including the Detection of Outgoing Requests

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871290A (zh) * 2019-03-07 2019-06-11 腾讯科技(深圳)有限公司 应用于Java的调用堆栈追踪方法、装置和存储介质
CN109871290B (zh) * 2019-03-07 2021-02-05 腾讯科技(深圳)有限公司 应用于Java的调用堆栈追踪方法、装置和存储介质

Also Published As

Publication number Publication date
CN106030456B (zh) 2019-04-30
WO2015058204A1 (en) 2015-04-23
US20150113122A1 (en) 2015-04-23
EP3058438A1 (en) 2016-08-24
US9515901B2 (en) 2016-12-06
US20170222891A1 (en) 2017-08-03
US10298469B2 (en) 2019-05-21
EP3058438A4 (en) 2017-04-05

Similar Documents

Publication Publication Date Title
CN106030456A (zh) 自动异步切换标识
US9639446B2 (en) Trace monitoring
Chen Path-based failure and evolution management
CN102129372B (zh) 通过事件相关来进行根本原因问题标识
CN110768872B (zh) 巡检方法、系统、装置、计算机设备和存储介质
US20060074946A1 (en) Point of view distributed agent methodology for network management
US10084637B2 (en) Automatic task tracking
GB2518052A (en) Group server performance correction via actions to server subset
CN110807064A (zh) Rac分布式数据库集群系统中的数据恢复装置
CN110474822A (zh) 一种区块链节点检测方法、装置、设备及介质
CN113010392B (zh) 大数据平台的测试方法、装置、设备、存储介质和系统
US11782958B2 (en) Multi-user cross-device tracking
CN114363144B (zh) 一种面向分布式系统的故障信息关联上报方法及相关设备
CN104484094A (zh) 基于多屏工作站的隧道监控多网页界面的实现方法
CN104809057A (zh) 应用测试系统及应用测试方法
CN112799741A (zh) 一种应用程序分身方法、装置、电子设备及存储介质
CN102063366B (zh) 调试进程的方法和系统
US20190384691A1 (en) Methods for providing an enterprise synthetic monitoring framework
US10432490B2 (en) Monitoring single content page application transitions
US20160321173A1 (en) Automatic garbage collection thrashing monitoring
US10389818B2 (en) Monitoring a network session
US20090240987A1 (en) Test amplification for datacenter applications via model checking
CN116467188A (zh) 一种多环境场景下的通用本地复现系统和方法
US7681198B2 (en) Workload categorization for detecting role changes in a host computing device
Favarim et al. Adaptive Fault-Tolerant CORBA Components.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Power Applications Ltd.

Address before: California, USA

Applicant before: APPDYNAMICS Inc.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20180119

Address after: California, USA

Applicant after: Cisco Technology, Inc.

Address before: California, USA

Applicant before: VIHANA, Inc.

Effective date of registration: 20180119

Address after: California, USA

Applicant after: VIHANA, Inc.

Address before: California, USA

Applicant before: Power Applications Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant