Non-invasive time-based profiling tool
First Claim
1. A method comprising:
- collecting information from a plurality of subsystems of a client machine in a system, the information comprising an event report corresponding to each of a plurality of events occurring in the plurality of subsystems, each event report indicating one of the plurality of subsystems on which a corresponding event occurred, a first identifier of the event and a cause identifier, wherein each event report is generated by a reporting client in each respective subsystem, and wherein the cause identifier associated with a first event comprises at least one of a unique identifier of a second event which caused the first event or an empty field;
responsive to determining that the cause identifier comprises an empty field, profiling, by a processing device, the system using the information collected from the plurality of subsystems to determine time values in the information associated with the first event and the second event of the plurality of events;
determining that a time value of the second event is within a defined period of time of a time value of the first event;
determining to indicate a causation relationship between the first event and the second event in view of the time value of the second event being within the defined period of the time value of the first event;
generating a timeline to display the plurality of events along with measurement data and a source subsystem of the plurality of subsystems corresponding to each of the plurality of events, wherein the plurality of events are plotted at positions along a first timeline axis relative to the determined time values corresponding to each event and at positions along a second timeline axis relative to the source subsystem of each event, the timeline comprising a visual indication of the causation relationship between the first event and the second event in view of the determining to indicate the causation relationship;
presenting the plurality of events on the timeline, wherein the presenting is performed in a graphical user interface (GUI); and
in response to a user request made via the GUI, presenting additional details of a portion of the timeline comprising the visual indication of the causation relationship and corresponding to a period of time specified in the user request to initiate debugging of at least one of the plurality of subsystems.
1 Assignment
0 Petitions
Accused Products
Abstract
A software execution profiling method comprising: collecting, from a plurality of subsystems of a client machine, information including an event report corresponding to each of a plurality of events occurring in the plurality of subsystems, each event report specifying an event identifier and a cause identifier; responsive to determining that the cause identifier includes an empty field, determining time values in the information associated with the first event and a second which caused the first event; determining to indicate a causation relationship between the first event and the second event in view of the time value of the second event being within the defined period of the time value of the first event; and presenting via a graphical user interface (GUI) the events and an indicator of the causation relationship.
-
Citations
23 Claims
-
1. A method comprising:
-
collecting information from a plurality of subsystems of a client machine in a system, the information comprising an event report corresponding to each of a plurality of events occurring in the plurality of subsystems, each event report indicating one of the plurality of subsystems on which a corresponding event occurred, a first identifier of the event and a cause identifier, wherein each event report is generated by a reporting client in each respective subsystem, and wherein the cause identifier associated with a first event comprises at least one of a unique identifier of a second event which caused the first event or an empty field; responsive to determining that the cause identifier comprises an empty field, profiling, by a processing device, the system using the information collected from the plurality of subsystems to determine time values in the information associated with the first event and the second event of the plurality of events; determining that a time value of the second event is within a defined period of time of a time value of the first event; determining to indicate a causation relationship between the first event and the second event in view of the time value of the second event being within the defined period of the time value of the first event; generating a timeline to display the plurality of events along with measurement data and a source subsystem of the plurality of subsystems corresponding to each of the plurality of events, wherein the plurality of events are plotted at positions along a first timeline axis relative to the determined time values corresponding to each event and at positions along a second timeline axis relative to the source subsystem of each event, the timeline comprising a visual indication of the causation relationship between the first event and the second event in view of the determining to indicate the causation relationship; presenting the plurality of events on the timeline, wherein the presenting is performed in a graphical user interface (GUI); and in response to a user request made via the GUI, presenting additional details of a portion of the timeline comprising the visual indication of the causation relationship and corresponding to a period of time specified in the user request to initiate debugging of at least one of the plurality of subsystems. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
a memory; and a processing device, operatively coupled to the memory, the processing device to; collect information from a plurality of subsystems of a client machine in a system, the information comprising an event report corresponding to each of a plurality of events occurring in the plurality of subsystems, each event report indicating one of the plurality of subsystems on which a corresponding event occurred, a first identifier of the event and a cause identifier, wherein each event report is generated by a reporting client in each respective subsystem, and wherein the cause identifier associated with a first event comprises at least one of a unique identifier of a second event which caused the first event or an empty field; responsive to determining that the cause identifier comprises an empty field, profile the system using the information collected from the plurality of subsystems, the information being collected during execution of an application program in the system, to determine time values in the information associated with the first event and the second event of the plurality of events; and determine that a time value of the second event is within a defined period of time of a time value of the first event; determine to indicate a causation relationship between the first event and the second event in view of the time value of the second event being within the defined period of the time value of the first event; generate a timeline to display the plurality of events along with measurement data and a source subsystem of the plurality of subsystems corresponding to each of the plurality of events, wherein the plurality of events are plotted at positions along a first timeline axis relative to the determined time values corresponding to each event and at positions along a second timeline axis relative to the source subsystem of each event, the timeline comprising a visual indication of the causation relationship between the first event and the second event in view of the determining to indicate the causation relationship; present the plurality of events on the timeline, wherein the plurality of events are presented in a GUI; and in response to a user request made via the GUI, present additional details of a portion of the timeline comprising the visual indication of the causation relationship and corresponding to a period of time specified in the user request to initiate debugging of at least one of the plurality of subsystems; and a repository coupled to the processing device to store the time values. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable medium that provides instructions that, when executed by a processing device, will cause the processing device to:
-
collect information from a plurality of subsystems of a client machine in a system, the information comprising an event report corresponding to each of a plurality of events occurring in the plurality of subsystems, each event report indicating one of the plurality of subsystems on which a corresponding event occurred, a first identifier of the event and a cause identifier, wherein each event report is generated by a reporting client in each respective subsystem, and wherein the cause identifier associated with a first event comprises at least one of a unique identifier of a second event which caused the first event or an empty field; responsive to determining that the cause identifier comprises an empty field, profile, by the processing device, the system using the information collected from the plurality of subsystems to determine time values in the information associated with the first event and the second event of the plurality of events to determine whether to indicate a causation relationship between the first event and the second event; generate a timeline to display the plurality of events along with measurement data and a source subsystem of the plurality of subsystems corresponding to each of the plurality of events, wherein the plurality of events are plotted at positions along a first timeline axis relative to the determined time values corresponding to each event and at positions along a second timeline axis relative to the source subsystem of each event, the timeline comprising a visual indication of the causation relationship between the first event and the second event in view of the determining whether to indicate the causation relationship; present the plurality of events on the timeline, wherein the presenting is performed in a graphical user interface (GUI); and in response to a user request made via the GUI, present additional details of a portion of the timeline comprising the visual indication of the causation relationship and corresponding to a period of time specified in the user request to initiate debugging of at least one of the plurality of subsystems. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification