CN102495787A - 跟踪在子系统之间流动的请求 - Google Patents

跟踪在子系统之间流动的请求 Download PDF

Info

Publication number
CN102495787A
CN102495787A CN2011103083286A CN201110308328A CN102495787A CN 102495787 A CN102495787 A CN 102495787A CN 2011103083286 A CN2011103083286 A CN 2011103083286A CN 201110308328 A CN201110308328 A CN 201110308328A CN 102495787 A CN102495787 A CN 102495787A
Authority
CN
China
Prior art keywords
subsystem
calculation task
action
calculating
things
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
CN2011103083286A
Other languages
English (en)
Other versions
CN102495787B (zh
Inventor
S·阿德勒
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102495787A publication Critical patent/CN102495787A/zh
Application granted granted Critical
Publication of CN102495787B publication Critical patent/CN102495787B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及用于跟踪在子系统之间流动的请求的方法、系统和计算机程序产品。本发明的各实施例便于遵循来自入口点的用户交互/事物通过被调用的任何子系统直到实现该交互/事物。关于事物的所生成的信息(例如,日志数据)可跨所子系统来聚集,诸如例如在中央储存库中。在发生故障时,可自动地为后续调用提升日志和跟踪水平。

Description

跟踪在子系统之间流动的请求
技术领域
本发明涉及计算机技术,尤其涉及监视计算任务的技术。
背景技术
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。由此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境上(常常被称为“分布式系统”)。
分布式系统中的每一个机器可被配置成为计算任务执行一个或多个本地计算,然后将计算任务转发至其他机器系统上以供将来计算。由此,计算任务在完成之前可在多个不同的计算机系统之间传递。例如,将服务(应用)递送给顾客可包括若干子系统,诸如例如Web服务、工作、数据库等。基于这些子系统上的负载,各子系统可在跨多个数据中心分布的大量(例如,成百个)机器上运行。此外,可跨多个机器对每一子系统进行负载平衡以使得任何一个机器都不过载。
每一子系统可被配置成生成与其执行的计算有关的日志文件和跟踪信息。然而,每一子系统可生成不同的日志文件和跟踪信息并使用不同的数据格式。有时,一个或多个子系统可能出错,这得到计算任务不及最优的结果。在许多情况下,差错的起因可基于一个或多个机器处的时间戳从日志记录和跟踪信息中导出。然而,即使利用时间戳,当计算任务流过多个不同的分布式且负载平衡的机器时,可能仍然难以获得计算任务的日志记录和跟踪信息。
即使可从不同的机器获得日志记录和跟踪信息,但不同的机器可能缺乏相关数据或不同的数据格式,这使得难以将来自不同机器的本地计算与指定的计算任务进行匹配。例如,如果不同的机器以不同的(或即使只是不同地格式化的)标识符来存储信息,可能没有容易的方法将来自不同机器的跟踪和日志记录信息进行相关。一个典型的通常用于对来自不同机器的日志记录和跟踪信息进行相关的机制包括跨日志手动地发放全文搜索。
例如,图4描绘了已执行作为更大计算任务的一部分的计算的四个不同子系统处日志跟踪。在子系统401处,分量数据411是可用于标识与更大的计算任务的关联的数据的一部分。在子系统402处,分量数据411仍然存在。此外,PUID低412和PUID高413已经被赋值。因此,PUID低412和PUID高413也可用于标识与更大的计算任务的关联。在子系统402处,分量数据416不再匹配分量数据411。PUID低412和PUID高413仍然存在。此外,用其他数据419对其他标识数据进行了编码。因此,其他数据419也可用于标识与更大的计算任务的关联。在子系统404处,分量数据421未被赋值并因此不再匹配分量数据411或分量数据416。PUID低422和PUID高423被赋值0并因此不再分别与PUID低412和PUID高413匹配。其他数据419仍然存在。
因此,确定来自后续子系统的日志跟踪与同一特定计算任务相对应是可能的。例如,通过参考分量数据411确定来自子系统401和子系统402的日志跟踪与同一特定任务相对应是可能的。然而,确定来自较大互连子系统组的日志跟踪与同一特定计算任务相对应是困难的且劳动密集型的。例如,将来自子系统401的日志跟踪与来自子系统404的日志跟踪匹配将是困难的,因为它们之间没有匹配字段。为了这么做将要求按来自不同子系统的日志跟踪的顺序链来匹配日志跟踪之间的数据,诸如,例如,从子系统404到403,接着子系统403到402,然后子系统402到401。日志跟踪之间的每一匹配通常还需要搜索准则的手动输入,该手动输入易于出现人为差错。
另外,随着发放的计算任务以及分布式负载平衡机器的数量的增加,由于生成的日志记录和跟踪信息的数量而使得难度被极大地复合。例如,在某些环境中,分布式系统每分钟处理成千个计算任务,其中的每一个遍历跨过在(例如,地理上位于)各个不同数据中心中的成百个负载平衡的机器的某一路径。在这些环境中为各个计算任务将来自不同机器的日志记录和跟踪信息进行相关是(如果甚至是可能的)劳动密集型的且易于出错的。由此,诊断这些环境中的差错是尤其困难的。
许多分布式系统总是具有在操作期间发生但不损害用户体验的特定量的差错。为收集足够的信息,这些分布式系统通常总是使用信息日志记录或甚至是跟踪水平日志记录。然而,使日志记录总是活动导致大量(且通常是不必要的)的数据,这使得日志文件膨胀。
发明内容
本发明涉及用于跟踪在子系统之间流动的请求的方法、系统和计算机程序产品。第一子系统接收要执行计算任务的用户请求。第一子系统是被包括在分布式系统中在多个互连机器处的一个子系统。第一子系统为计算任务生成事物标识符。第一子系统将事物标识符分配给计算任务。事物标识符被配置成随着计算任务的通信在分布式系统内的不同子系统之间流动时沿着计算任务移动。
第一子系统为计算任务执行一个或多个计算。第一子系统为一个或多个计算生成日志信息。第一子系统将事物标识符连同所生成的日志信息一起存储在第一日志中。第一子系统与第二子系统通信以发起在第二子系统处对计算任务的进一步计算的执行。该通信向第二子系统通知事物标识符。由此,使第二子系统知道该事物标识符要与为计算任务生成的任何日志数据相关联。
第二子系统为计算任务执行进一步的计算。第二子系统为进一步的计算生成进一步的日志信息。第二子系统将事物标识符连同所生成的进一步的日志信息一起存储在第二日志中。在适当时,第二子系统可将事物标识符传递给第三子系统。
中央储存库可被配置成聚集来自多个互连机器的日志信息。对于分布式系统中的每一子系统,中央储存库为该子系统访问来自子系统日志的日志信息。每一日志条目包含标识与日志条目相对应的计算任务的事物标识符。中央储存库可通过将包含相同事物标识符的日志信息分组在一起来在每个计算任务的基础上组织数据。
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些发明内容。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其他优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出便于跟踪在子系统之间流动的请求的示例计算机体系结构。
图2示出用于跟踪在子系统之间流动的请求的示例方法的流程图。
图3是各自为计算任务执行一个或多个计算的多个不同子系统的日志数据(包括事物标识符)的示例。
图4(现有技术)描绘了来自为计算任务执行计算的多个不同的子系统的日志数据。
具体实施方式
本发明涉及用于跟踪在子系统之间流动的请求的方法、系统和计算机程序产品。第一子系统接收要执行计算任务的用户请求。第一子系统是被包括在分布式系统中在多个互连机器处的一个子系统。第一子系统为计算任务生成事物标识符。第一子系统将事物标识符分配给计算任务。事物标识符被配置成随着计算任务的通信在分布式系统内的不同子系统之间流动时沿着计算任务移动。
第一子系统为计算任务执行一个或多个计算。第一子系统为一个或多个计算生成日志信息。第一子系统将事物标识符连同所生成的日志信息一起存储在第一日志中。第一子系统与第二子系统通信以发起在第二子系统处对计算任务的进一步计算的执行。该通信向第二子系统通知事物标识符。由此,使第二子系统知道该事物标识符要与为计算任务生成的任何日志数据相关联。
第二子系统为计算任务执行进一步的计算。第二子系统为进一步的计算生成进一步的日志信息。第二子系统将事物标识符连同所生成的进一步的日志信息一起存储在第二日志中。在适当时,第二子系统可将事物标识符传递给第三子系统。
中央储存库可被配置成聚集来自多个互连机器的日志信息。对于分布式系统中的每一子系统,中央储存库为该子系统访问来自子系统日志的日志信息。每一日志条目包含标识与日志条目相对应的计算任务的事物标识符。中央储存库可通过将包含相同事物标识符的日志信息分组在一起来在每个计算任务的基础上组织数据。
本发明的各实施例可包括或利用包括诸如例如,一个或多个处理器和系统存储器之类的计算机硬件的专用或通用计算机,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这些计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链接。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于承载计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链接。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或者反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链接、无线数据链接,或者通过硬连线和无线数据链接的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。
图1示出便于跟踪在子系统之间流动的请求的示例计算机体系结构100。参考图1,计算机体系结构100包括分布式系统101和用户103。分布式系统101可包括多个互连机器。用户可见子系统102、内部子系统103、内部子系统104、内部子系统106和中央储存库109可在互连机器中的一个或多个上运行。所描绘的组件中的每一个可通过系统总线和/或诸如例如局域网(“LAN”)、广域网(“WAN”)以及甚至因特网等网络(或作为网络的一部分)彼此连接。因此,所描绘的计算机组件中的每一个以及任何其他连接的计算机系统及其组件都可以创建消息相关数据并通过系统总线和/或网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
一般地,用户可见子系统102展示在分布式系统101中实现的指定计算任务的功能。指定计算任务的执行可包括在用户可见子系统102、内部子系统103、内部子系统104和内部子系统106中的每一个处执行一个或多个计算。子系统102、103、104和106中的每一个实际上可以是任何类型的服务,诸如例如Web服务。
在每一子系统执行计算时,子系统可生成指示与子部件的功能有关的潜在问题的日志数据。在某些实施例中,每一子系统直接将日志数据记录在中央储存库109中。在其他实施例中,每一子系统将数据记录在各个子系统日志中。在这些其他实施例中,来自各个子系统日志的日志数据稍后可被传输至中央储存库109或以某种其他方式被聚集。所聚集的日志数据(无论是在中央储存库109中还是使用其他机制)可用于为分布式系统101提供日志记录信息的统一视图。
每一子系统可允许不同的日志水平来定义日志文件条目:差错、警告、信息、跟踪的粒度,例如,当差错最高(最不详细)而跟踪是日志记录的最低水平(最详细)。
图2示出用于跟踪在子系统之间流动的请求的示例方法200的流程图。方法200将参考计算机体系结构100的组件和数据来描述。
用户133可制定任务请求111(例如,在客户机计算机系统处)并将任务请求111提交给用户可见子系统102。如所描绘的,任务请求111包括用户数据112。任务请求111可以是要执行在分布式系统101中实现的指定计算任务的请求。提交任务请求111可包括向用户可见系统102发出Web服务调用。
方法200包括第一子系统接收要执行计算任务的用户请求的动作,该第一子系统被包括在多个互连机器中的一个中(动作201)。例如,用户可见子系统102可从用户133接收任务请求111。用户可见子系统102可被包括在分布式系统101中的互连机器中的一个或多个上。
方法200包括第一子系统为计算任务生成事物标识符的动作(动作202)。例如,响应于接收到任务请求111,用户可见子系统102可生成事物ID 113。事物ID 113可以是与对用户可见子系统102的Web服务调用相关联的唯一上下文ID。
用户可见子系统102还可生成定义用于为指定计算任务生成日志数据的日志记录(差错、警告等)水平的日志记录水平114。
方法200包括第一子系统将事物标识符分配给计算任务的动作,该事物标识符被配置成在计算任务的通信在分布式系统中的不同子系统之间流动时沿着计算任务移动(动作203)。例如,用户可见子系统102可将事物ID 113连同日志记录水平114一起分配给在分布式系统101中实现的指定计算任务。事物标识符113(以及日志记录水平114)被配置成在通信在分布式系统101中的不同子系统之间流动时沿着该通信移动。
方法200包括第一子系统为计算任务执行一个或多个计算的动作(动作204)。例如,用户可见子系统102可为在分布式系统101中实现的指定计算任务执行一个或多个计算。作为该一个或多个计算的一部分,用户可见子系统102可将用户数据112处理成数据112A。
方法200包括第一子系统为一个或多个计算生成日志信息的动作(动作205)。例如,用户可见子系统102可为一个或多个所执行的计算生成日志数据121。方法200包括第一子系统将事物标识符连同所生成的日志信息一起存储在第一日志中的动作(动作206)。例如,用户可见子系统102可将事物ID113连同日志数据121一起存储在子系统专用日志中或直接存储在中央储存库109中。
方法200包括第一子系统与第二子系统通信以发起在第二子系统处对计算任务的进一步计算的执行的动作,该通信向第二子系统通知该事物标识符要与为计算任务生成的任何日志数据相关联(动作207)。例如,用户可见子系统102可将数据112A、事物ID 113和日志记录水平114发送给内部子系统103来发起对在分布式系统101中实现的指定计算任务的进一步计算的执行。数据112A、事物ID 113和日志记录水平114共同地向内部子系统103通知事物ID113要与为指定计算任务生成的任何日志数据相关联。内部子系统103可被包括在分布式系统101中的互连机器中的一个或多个上。
在某些实施例中,事物ID 113和日志记录水平114不作为本地调用的方法参数被传递。使用其他机制来避免延伸现有方法实现。对于本地调用,事物ID 113和日志记录水平114可使用用HttpContext的线程本地存储(“TLS”)在子系统之间传递。对于网络调用,诸如例如,当子系统向另一子系统发出Web服务调用时,调用子系统可将事物ID和所请求的日志记录水平连同其他调用参数一起传递。
接收事物ID 113和日志记录水平114的其他子系统有义务将事物ID添加到日志/跟踪条目并遵守所请求的日志记录水平。
方法200包括从第一子系统接收要发起对计算任务的进一步计算的执行的通信,该通信指示第二子系统要将事物标识符与为计算任务生成的任何日志数据相关联(动作207)。例如,内部子系统103可从用户可见子系统102接收数据112A、事物ID 113和日志记录水平114。数据112A、事物ID 113和日志记录水平114共同地指示内部子系统103要将事物ID 113与为在分布式系统101中实现的指定计算任务生成的任何日志数据相关联。
方法200包括为计算任务执行进一步的计算(动作208)。例如,内部子系统103可为在分布式系统101中实现的指定计算任务执行一个或多个计算。作为该一个或多个计算的一部分,内部子系统103可将数据112A处理成数据112B和112C。
方法200包括为进一步计算生成进一步的日志信息(动作209)。例如,内部子系统103可为一个或多个所执行的计算生成日志数据117。方法200包括将事物标识符连同所生成的进一步的日志信息一起存储在第二日志中(动作210)。例如,内部子系统103可将事物ID 113连同日志数据117一起存储在子系统专用日志中或直接存储在中央储存库109中。
方法200包括与第三子系统通信以发起在第三子系统处对计算任务的一个或多个附加计算的执行,该通信向第三子系统通知该事物标识符要与为计算任务生成的任何日志数据相关联(动作211)。例如,内部子系统104可将数据112B、事物ID 113和日志记录水平114发送给内部子系统103来发起对在分布式系统101中实现的指定计算任务的进一步计算的执行。数据112B、事物ID 113和日志记录水平114共同地向内部子系统104通知事物ID 113要与为指定计算任务生成的任何日志数据相关联。内部子系统104可被包括在分布式系统101中的互连机器中的一个或多个上。
另选地或组合地,内部子系统104可将数据112C、事物ID 113和日志记录水平114发送给内部子系统106来发起对在分布式系统101中实现的指定计算任务的进一步计算的执行。数据112C、事物ID 113和日志记录水平114共同地向内部子系统106通知事物ID 113要与为指定计算任务生成的任何日志数据相关联。内部子系统106可被包括在分布式系统101中的互连机器中的一个或多个上。
然后,内部子系统104可为在分布式系统101中实现的指定计算任务执行一个或多个计算。作为该一个或多个计算的一部分,内部子系统104可处理数据112B。内部子系统104可为一个或多个所执行的计算生成日志数据118。内部子系统104可将事物ID 113连同日志数据118一起存储在子系统专用日志中或直接存储在中央储存库109中。
内部子系统106也可为在分布式系统101中实现的指定计算任务执行一个或多个计算。作为该一个或多个计算的一部分,内部子系统106可处理数据112C。内部子系统106可为一个或多个所执行的计算生成日志数据119。内部子系统106可将事物ID 113连同日志数据119一起存储在子系统专用日志中或直接存储在中央储存库109中。
有时,来自子系统日志(或其他数据中心位置)的数据可被拉入中央储存库109。因此,对于分布式系统101中的每一子系统,中央储存库109可为该子系统访问来自子系统日志的日志信息。每一日志条目可包含标识与日志条目相对应的计算任务的事物标识符。中央储存库可通过将包含相同事物标识符的日志信息分组在一起来在每个计算任务的基础上组织数据。例如,日志数据117、118、119和121可被分组在一起,因为日志数据117、118、119和121包含事物ID 113。
因此,中央储存库109通过匹配作为所有日志文件中的每一条目的一部分的事物ID来便于对日志数据的事务性视图。中央储存库109包括各种不同水平的日志数据聚集。例如,中央储存库109包括在(例如,对用户可见子系统102的)每一调用的基础上的更高水平的日志数据聚集。中央储存库109还准许深入每一调用的细节。中央储存库109可将每一调用信息聚集成分布式系统101的健康视图。该健康视图可包括,例如,统计视图,诸如成功调用对不成功调用的比率,并分解成在交互或每一子系统基础上的不同差错情况。
图3是各自为计算任务执行一个或多个计算的多个不同子系统的日志数据(包括事物标识符)的示例。如所描绘的,子系统301、302、303和304中的每一个的日志跟踪包括事物ID 311。事物ID 311可以是在指定日志数据条目格式内赋予事物ID字段的值。基于事物ID 311,来自子系统301、302、303和304的日志跟踪可更高效地被分组在一起。
此外,包括事物ID 311还为在日志数据条目中的其他字段中使用的不同值和/或不同格式作出补偿。例如,事物ID 311允许来自子系统301和303的日志跟踪进行匹配,即使分量数据312和317不同。此外,事物ID 311允许来自子系统302和304的日志跟踪进行匹配,即使PUID低314和PUID高316分别与PUID低322和PUID高323不同。另外,事物ID 311允许来自子系统301和304的日志跟踪直接进行匹配,即使它们不具有共同的日志数据。
各实施例还准许至少部分地基于在过去调用期间接收到的差错来有选择地调整日志记录水平。例如,再次参考图1,可能的情况是:在从内部子系统103对内部子系统104的先前调用上,内部子系统103从内部子系统104接收到差错。内部子系统103可存储先前差错的指示。当内部子系统103再次与内部子系统104交互时,内部子系统103可通过调整日志记录水平114的值来请求跟踪水平日志记录(并因此生成更多的日志数据)。
由此,本发明的各实施例便于遵循来自入口点的用户交互/事物通过被调用的任何子系统直到实现该交互/事物。关于事物的所生成的信息(例如,日志数据)可跨所有子系统来聚集。在发生故障时,可自动地为后续调用提升日志和跟踪水平。
本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.一种在分布式系统(101)处的用于在多个互连机器的两个或更多个机器处执行计算时监视计算任务的方法,所述分布式系统包括所述多个互连机器,所述多个互连机器中的每一个包括一个或多个子系统(102、103、104、106),每一子系统被配置成执行一个或多个计算,所述互连机器的某些子集被配置成执行特定计算以准许跨各子集的对特定计算的负载平衡,所述分布式系统包括一个或多个处理器和系统存储器,所述分布式系统被配置成处理包括在所述多个互连机器中的两个或更多个处执行计算的计算任务,所述方法包括:
第一子系统(102)接收要执行计算任务的用户请求(111)的动作,所述第一子系统(102)被包括在所述多个互连机器中的一个中;
所述第一子系统(102)为所述计算任务(111)生成事物标识符(113)的动作;
所述第一子系统将所述事物标识符(113)分配给所述计算任务的动作,所述事物标识符(113)被配置成在所述计算任务在所述分布式系统(101)中的不同子系统之间流动时沿着所述计算任务移动;
所述第一子系统(102)为所述计算任务执行一个或多个计算的动作;
所述第一子系统(102)为所述一个或多个计算生成日志信息(121)的动作;
所述第一子系统(102)将所述事物标识符(113)连同所生成的日志信息(121)一起存储在第一日志(109)中的动作;以及
所述第一子系统(102)与第二子系统(103)通信以发起在所述第二子系统(103)处对所述计算任务的进一步计算的执行的动作,所述通信向所述第二子系统(103)通知所述事物标识符(113)要与为所述计算任务生成的任何日志数据相关联。
2.如权利要求1所述的方法,其特征在于,还包括:
所述第二子系统为所述计算任务执行进一步的计算的动作;
所述第二子系统为所述进一步的计算生成进一步的日志信息的动作;
所述第二子系统将所述事物标识符连同所生成的进一步的日志信息一起存储在不同的第二日志中的动作;以及
所述第二子系统与第三子系统通信以发起在所述第三子系统处对所述计算任务的一个或多个附加计算的执行的动作,所述通信向所述第三子系统通知所述事物标识符要与为所述计算任务生成的任何日志数据相关联。
3.如权利要求2所述的方法,其特征在于,所述第一子系统与所述第二子系统通信以发起在所述第二子系统处对所述计算任务的进一步计算的执行的动作包括所述第一子系统指定所述第二子系统要用于为所述计算任务生成日志记录信息的日志记录水平的动作。
4.如权利要求3所述的方法,其特征在于,所述第二子系统为所述进一步的计算生成进一步的日志信息的动作包括所述第二子系统生成符合所指定的日志记录水平的进一步的日志信息的动作。
5.如权利要求2所述的方法,其特征在于,还包括:
所述第三子系统为所述计算任务执行一个或多个附加计算的动作;
所述第三子系统为所述一个或多个附加计算生成附加日志信息的动作;
所述第三子系统将所述事物标识符连同所生成的附加日志信息一起存储在第三不同的日志中的动作;以及
所述第三子系统与第四子系统通信以发起在所述第四子系统处对所述计算任务的更多进一步计算的执行的动作,所述通信向所述第四子系统通知所述事物标识符要与为所述计算任务生成的任何日志数据相关联。
6.如权利要求1所述的方法,其特征在于,所述第一子系统与所述第二子系统通信以发起在所述第二子系统处对所述计算任务的进一步计算的执行的动作包括所述第一子系统将所述事物标识符存储在线程本地存储(“TLS”)中的动作。
7.如权利要求6所述的方法,其特征在于,还包括所述第二子系统从所述线程本地存储(“TLS”)访问所述事物标识符。
8.如权利要求1所述的方法,其特征在于,所述第一子系统与所述第二子系统通信以发起在所述第二子系统处对所述计算任务的进一步计算的执行的动作包括所述第一子系统将所述事物标识符包括在Web服务调用中的动作。
9.如权利要求8所述的方法,其特征在于,还包括所述第二子系统从所述Web服务调用访问所述事物标识符。
10.一种在分布式系统(101)处使用的计算机程序产品,所述分布式系统包括多个互连机器,所述多个互连机器中的每一个包括一个或多个子系统(102、103、104、106),每一子系统被配置成执行一个或多个计算,所述互连机器的某些子集被配置成执行特定计算以准许跨所述子集的对特定计算的负载平衡,所述分布式系统包括一个或多个处理器和系统存储器,所述分布式系统被配置成处理包括在所述多个互连机器中的两个或更多个处执行计算的计算任务,所述计算机程序产品用于实现一种用于在所述两个或更多个机器处执行计算时监视计算任务的方法,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机存储设备,所述指令在处理器处被执行时使得来自所述一个或多个子系统中的第一子系统执行以下动作:
接收要执行计算任务的用户请求(111),所述第一子系统(102)被包括在所述多个互连机器中的一个中;
为所述计算任务(111)生成事物标识符(113);
将所述事物标识符(113)分配给所述计算任务,所述事物标识符(113)被配置成在所述计算任务的通信在所述分布式系统(101)中的不同子系统之间流动时沿着所述计算任务移动;
为所述计算任务执行一个或多个计算;
为所述一个或多个计算生成日志信息(121);
将所述事物标识符(113)连同所生成的日志信息(121)一起存储在第一日志(109)中;以及
与第二子系统(103)通信以发起在所述第二子系统(103)处对所述计算任务的进一步计算的执行,所述通信向所述第二子系统(103)通知所述事物标识符(113)要与为所述计算任务生成的任何日志数据相关联。
11.如权利要求10所述的计算机程序产品,其特征在于,还包括在被执行时使来自所述一个或多个子系统中的第二子系统执行以下动作的计算机可执行指令:
为所述计算任务执行所述进一步的计算;
为所述进一步的计算生成进一步的日志信息;
将所述事物标识符连同所生成的进一步的日志信息一起存储在不同的第二日志中;以及
与第三子系统通信以发起在所述第三子系统处对所述计算任务的一个或多个附加计算的执行,所述通信向所述第三子系统通知所述事物标识符要与为所述计算任务生成的任何日志数据相关联。
12.如权利要求11所述的计算机程序产品,其特征在于,在被执行时使得所述第一子系统与第二子系统通信以发起在所述第二子系统处对所述计算任务的进一步计算的执行的计算机可执行指令包括在被执行时使得所述第一子系统指定所述第二子系统要用于为所述计算任务生成日志记录信息的日志记录水平的计算机可执行指令。
13.如权利要求12所述的计算机程序产品,其特征在于,在被执行时使得所述第一子系统指定所述第二子系统要用于为所述计算任务生成日志记录信息的日志记录水平的计算机可执行指令包括在被执行时使得所述第一子系统基于从调用所述第二子系统接收的先前差错来指定日志记录水平的计算机可执行指令。
14.一种分布式系统(101),所述分布式系统包括:
一个或多个处理器;
系统存储器;
多个互连机器,所述多个互连机器中的每一个包括一个或多个子系统(102、103、104、106),每一子系统被配置成执行一个或多个计算,所述互连机器中的某些子集被配置成执行特定计算以准许跨所述子集对所述特定计算的负载平衡,其中所述多个互连机器可处理包括在所述多个互连机器中的两个或更多个处执行计算的计算任务,其中对于指定计算任务,每一子系统被配置成:
访问为所述指定计算任务所分配的事物标识符(113)和日志记录水平(114),所分配的事物标识符(113)被配置成在所述计算任务的通信在所述分布式系统(101)中的不同子系统之间流动时沿着所述计算任务移动,所述日志记录水平(114)指示所述子系统要用来为所述计算任务记录信息的日志记录水平;
为所述计算任务执行一个或多个计算;
为所述一个或多个计算生成符合所述日志记录水平的日志信息(121);
将所述事物标识符(113)连同所生成的日志信息(121)一起存储在子系统日志中;以及
与下一子系统(103、104、106)通信以发起在所述下一子系统处对所述计算任务的进一步计算的执行,所述通信向所述下一子系统通知所述事物标识符(113)要向所述下一子系统指示所述事物标识符(113)要与为所述计算任务生成的任何日志数据相关联;以及
中央储存库(109),所述中央储存库被配置成聚集来自所述多个互连机器分布式系统的日志信息,包括:
对于所述分布式系统中的每一子系统,为子系统访问来自所述子系统日志的日志信息(121、119),每一日志条目包含标识与所述日志条目相对应的计算任务的事物标识符;以及
通过将包含相同事物标识符的日志信息分组在一起来在每个计算任务的基础上组织数据。
15.如权利要求14所述的系统,其特征在于,所述中央储存库还被配置成在每一子系统的基础上呈现所述分布式系统的健康视图。
CN201110308328.6A 2010-09-30 2011-09-29 跟踪在子系统之间流动的请求 Expired - Fee Related CN102495787B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/894,854 US8635617B2 (en) 2010-09-30 2010-09-30 Tracking requests that flow between subsystems using transaction identifiers for generating log data
US12/894,854 2010-09-30

Publications (2)

Publication Number Publication Date
CN102495787A true CN102495787A (zh) 2012-06-13
CN102495787B CN102495787B (zh) 2015-01-14

Family

ID=45890939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110308328.6A Expired - Fee Related CN102495787B (zh) 2010-09-30 2011-09-29 跟踪在子系统之间流动的请求

Country Status (2)

Country Link
US (1) US8635617B2 (zh)
CN (1) CN102495787B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021129849A1 (zh) * 2019-12-26 2021-07-01 中兴通讯股份有限公司 日志处理方法、装置、设备和存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9559928B1 (en) * 2013-05-03 2017-01-31 Amazon Technologies, Inc. Integrated test coverage measurement in distributed systems
US20150244600A1 (en) * 2014-02-26 2015-08-27 Microsoft Corporation Structured logging schema of usage data
US20160034191A1 (en) * 2014-08-01 2016-02-04 Kabushiki Kaisha Toshiba Grid oriented distributed parallel computing platform
US9588868B2 (en) * 2014-10-08 2017-03-07 International Business Machines Corporation Correlating multiple disjoint events via an operation identifier
RU2015102736A (ru) 2015-01-29 2016-08-20 Общество С Ограниченной Ответственностью "Яндекс" Система и способ обработки запроса в сети распределенной обработки данных
CN106326099B (zh) * 2015-07-01 2019-10-29 阿里巴巴集团控股有限公司 一种用于程序跟踪的方法、装置及电子设备
US20170012814A1 (en) * 2015-07-06 2017-01-12 Bank Of America Corporation System Resiliency Tracing
US20170012839A1 (en) * 2015-07-06 2017-01-12 Bank Of America Corporation System Architecture Mapping
DE102015117949A1 (de) * 2015-10-21 2017-04-27 Sontheim Industrie Elektronik GmbH Verfahren zur Verfolgung des Verlaufes in einem verteilten System
CN106656536B (zh) * 2015-11-03 2020-02-18 阿里巴巴集团控股有限公司 一种用于处理服务调用信息的方法与设备
US20170168881A1 (en) * 2015-12-09 2017-06-15 Sap Se Process chain discovery across communication channels
US10250511B2 (en) 2016-06-10 2019-04-02 International Business Machines Corporation Persistent flow identifiers enabling disparate applications
CN106502874B (zh) * 2016-10-26 2019-05-10 南京途牛科技有限公司 一种调用链跟踪方法
CN108733698B (zh) * 2017-04-19 2023-08-08 腾讯科技(深圳)有限公司 一种日志消息的处理方法及后台服务系统
US10489225B2 (en) 2017-08-10 2019-11-26 Bank Of America Corporation Automatic resource dependency tracking and structure for maintenance of resource fault propagation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820261B1 (en) * 1999-07-14 2004-11-16 Sun Microsystems, Inc. Inheritable thread-local storage
US20060136360A1 (en) * 2004-12-22 2006-06-22 Alexander Gebhart Preserving log files in a distributed computing environment
US20070050425A1 (en) * 2005-08-23 2007-03-01 Masaya Ichikawa Log management program of a computer, log management method thereof, and computer system
US20070282920A1 (en) * 2006-05-30 2007-12-06 Hitachi, Ltd. Job management system and method for minimizing log data
CN101663661A (zh) * 2007-04-26 2010-03-03 微软公司 建模应用程序的分布式行为受控执行

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058928B2 (en) 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
US7392505B2 (en) 2001-11-09 2008-06-24 Microsoft Corporation Task tracing in a distributed computing environment
US7401141B2 (en) 2003-01-07 2008-07-15 International Business Machines Corporation Method and system for monitoring performance of distributed applications
US7716652B2 (en) 2004-03-30 2010-05-11 Symantec Corporation System and methods for tracing transactions
CA2584269A1 (en) * 2004-10-06 2006-04-20 Digipede Technologies, Llc Distributed processing system
US20070225943A1 (en) 2004-12-06 2007-09-27 Marano Howard T Executable application operation monitoring system
US8095830B1 (en) * 2007-04-03 2012-01-10 Hewlett-Packard Development Company, L.P. Diagnosis of system health with event logs
US8028201B2 (en) * 2008-05-09 2011-09-27 International Business Machines Corporation Leveled logging data automation for virtual tape server applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820261B1 (en) * 1999-07-14 2004-11-16 Sun Microsystems, Inc. Inheritable thread-local storage
US20060136360A1 (en) * 2004-12-22 2006-06-22 Alexander Gebhart Preserving log files in a distributed computing environment
US20070050425A1 (en) * 2005-08-23 2007-03-01 Masaya Ichikawa Log management program of a computer, log management method thereof, and computer system
US20070282920A1 (en) * 2006-05-30 2007-12-06 Hitachi, Ltd. Job management system and method for minimizing log data
CN101663661A (zh) * 2007-04-26 2010-03-03 微软公司 建模应用程序的分布式行为受控执行

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021129849A1 (zh) * 2019-12-26 2021-07-01 中兴通讯股份有限公司 日志处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US20120084779A1 (en) 2012-04-05
CN102495787B (zh) 2015-01-14
US8635617B2 (en) 2014-01-21

Similar Documents

Publication Publication Date Title
CN102495787A (zh) 跟踪在子系统之间流动的请求
US10754764B2 (en) Validation sets for machine learning algorithms
US10599496B2 (en) End-to-end application tracking framework
US9239771B2 (en) Method and system for collecting and providing application usage analytics
Lampkin et al. Building smarter planet solutions with mqtt and ibm websphere mq telemetry
CN105900396B (zh) 移动云服务体系架构
US20210124858A1 (en) Transformation and Evaluation of Disallowed Combinations in Designed Experiments
JP2016173862A (ja) ユーザ開始動作を監視し、バックエンドオペレーションと相互に関連付けるための方法およびコンピュータプログラム
JP2017513080A (ja) 動的トランザクションデータストリーミングシステム及び方法
US20170249557A1 (en) Predictive Analytics And Services
Donahue et al. Veterans health information exchange: successes and challenges of nationwide interoperability
CN110011875A (zh) 拨测方法、装置、设备及计算机可读存储介质
US9760874B2 (en) Transaction tracing in a network environment
US20170012837A1 (en) Transaction Identification in a Network Environment
CN110458485A (zh) 数据配送运行状态的监控方法及装置、存储介质、终端、监控系统
US11470167B2 (en) Method and apparatus for generating information
US20120016978A1 (en) Method and Apparatus for Performing Services in a Network Data Processing System
US20230244643A1 (en) Methods and systems for providing database development recommendations based on multi-modal correlations detected through artificial intelligence
CN101482816B (zh) 中介软件桥接系统及方法
US8965966B2 (en) System and method for logging a scheduler
CN105868091B (zh) 管理方法和管理装置
US20170171030A1 (en) System and method for digital optimization of electronic discovery
CN103548317B (zh) 管理会话发起协议订阅对话状态丢失的方法及装置
WO2018134680A1 (en) System and method for integrating disparate computer systems and applications
CN109391642A (zh) 一种订单处理方法及装置、存储介质、服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150423

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150423

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150114

Termination date: 20190929