INCORPORATION OF A TRACE VISUALIZATION WITH A TRAFFIC GRAPH VISUALIZATION IN A SERVICE MESH
Incorporation of a trace visualization with a traffic graph visualization in a service mesh is disclosed. Traffic graph information that identifies a plurality of nodes and a plurality of edges is accessed. Each node corresponds to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service, each edge representing a path that at least one message has taken between two services. First trace information that identifies a first set of services that were invoked during a same first transaction is accessed. Each service in the first set of services is correlated with a corresponding node of the plurality of nodes. A traffic graph visualization and a first transaction trace visualization are presented concurrently on a display device.
This is a continuation of co-pending U.S. patent application Ser. No. 16/933,111, filed on Jul. 20, 2020, entitled “INCORPORATION OF A TRACE VISUALIZATION WITH A TRAFFIC GRAPH VISUALIZATION IN A SERVICE MESH,” the disclosure of which is hereby incorporated herein by reference in its entirety.
BACKGROUNDThere are benefits to dividing complex computing processing systems into separate, interrelated components. Separate components can increase scalability, compartmentalize related functionality, and reduce the likelihood that a problem in one component will impact other components.
SUMMARYThe examples disclosed herein incorporate a trace visualization with a traffic graph visualization in a service mesh. The examples, among other features, provide a concurrent and intuitive macro view of the overall traffic in a service mesh, and a micro view of a specific transaction in the service mesh. The examples therefore allow individuals to rapidly understand how a service mesh is processing traffic generally, as well as how a specific transaction is processed.
In one implementation a method is provided. The method includes accessing, by at least one processor device, traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services. The method further includes accessing first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction. The method further includes correlating each service in the first set of services with a corresponding node of the plurality of nodes. The method further includes presenting, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
In one implementation a computing device is provided. The computing device includes a memory and at least one processor device coupled to the memory. The processor device is to access traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services. The processor device is further to access first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction. The processor device is further to correlate each service in the first set of services with a corresponding node of the plurality of nodes, and present, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
In another implementation a non-transitory computer-readable storage medium is provided. The non-transitory computer-readable storage medium includes executable instructions to, upon execution by a processor device, access traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services. The instructions further cause the processor device to access first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction. The instructions further cause the processor device to correlate each service in the first set of services with a corresponding node of the plurality of nodes. The instructions further cause the processor device to present, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
Individuals will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description of the examples in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
The examples set forth below represent the information to enable individuals to practice the examples and illustrate the best mode of practicing the examples. Upon reading the following description in light of the accompanying drawing figures, individuals will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
Any flowcharts discussed herein are necessarily discussed in some sequence for purposes of illustration, but unless otherwise explicitly indicated, the examples are not limited to any particular sequence of steps. The use herein of ordinals in conjunction with an element is solely for distinguishing what might otherwise be similar or identical labels, such as “first message” and “second message,” and does not imply a priority, a type, an importance, or other attribute, unless otherwise stated herein. The term “about” used herein in conjunction with a numeric value means any value that is within a range of ten percent greater than or ten percent less than the numeric value. As used herein and in the claims, the articles “a” and “an” in reference to an element refers to “one or more” of the element unless otherwise explicitly specified. The word “or” as used herein and in the claims is inclusive unless contextually impossible. As an example, the recitation of A or B means A, or B, or both A and B.
There are benefits to dividing complex computing processing systems into separate, interrelated components. Separate components can increase scalability, compartmentalize related functionality, and reduce the likelihood that a problem in one component will impact other components. Such systems are sometimes referred to as a microservices architecture, and/or a service mesh, where individual services interact with one another to implement a business or other desired function.
Tools exist that provide insight into data processing statistics of interrelated services. Such tools may be able to provide, for example, a traffic graph that shows traffic, in the form of messages, which flow between services, and various information about such traffic, such as the volume of messages, and the like. Such tools can be useful, at a macro level, to understand overall load on certain services, and may be helpful, for example, to know whether or not to initiate multiple instances of a same service.
Such tools, however, are unaware of how or whether messages between different services relate to one another. For example, a web page generation system that builds a web page in response to a user request may involve a plurality of different services, each of which plays a role in building a particular portion of the web page. The generation of a single web page may involve tens of messages that are communicated between the services, and the web page generation may be building hundreds or thousands of pages substantially concurrently. Traffic tools are not able to determine which messages between services relate to the generation of the same web page.
Tracing tools exist that allow a service developer to generate information, sometimes referred to as trace information, while a service is processing a message or otherwise implementing a desired function. The information can comprise, for example, the duration of the processing of the service for the particular message, a start time and end time, attributes and characteristics about the particular message being processed, the values of variables at that point in time, and basically any other data available to the service at that instant in time.
The trace information is generally written to some data structure for subsequent analysis. The trace information is a micro level view into a specific transaction, and does not provide an intuitive understanding of how that transaction relates to the overall services of the web page generation system.
The examples disclosed herein incorporate a trace visualization with a traffic graph visualization in a service mesh. The examples, among other features, provide a concurrent and intuitive macro view of the overall traffic in a service mesh, and a micro view of a specific transaction in the service mesh. The examples therefore allow individuals to rapidly understand how a service mesh is processing traffic generally, as well as how a specific transaction is processed.
In some implementations, the services 14-1-14-5 may be containers, and the service mesh infrastructure may automatically inject the SMF 16 into each of the services 14-1-14-5. In some implementations, each of the services 14-1-14-5 may be implemented as a Kubernetes pod (kubernetes.io), and the service mesh infrastructure may automatically inject the SMF 16 into the Kubernetes pod as a separate container.
The service mesh infrastructure may include other components that facilitate communications in the service mesh 12, and may include other functions such as telemetry (e.g., the collection of traffic statistics), policy control, load balancing, and the like. In
Although not illustrated, the services 14-1-14-5 execute on computing devices that include a processor device and a memory. The services 14-1-14-5 may execute on separate computing devices, or some or all of the services may execute on a same computing device. In some implementations, the service mesh 12 is implemented in a cloud computing environment.
Interrelated services may not be exposed to any services outside of the service mesh 12. Thus, each service can only be passed a message from another service within the service mesh 12. It is noted that the passing of messages among services may be by any desired message-passing mechanism, including, by way of non-limiting example, the transmission of one or more packets from one service 14 to another service 14, the transfer of information from one service 14 to another service 14 via variables, or any other inter-process communication mechanisms that facilitate the communication of information from one process to another process.
The environment 10 also includes a computing device 26, which includes a processor device 28, a memory 30, and a display device 32. As the service mesh 12 executes to generate web pages, statistics associated with the message traffic in the service mesh 12 are captured and maintained. In some examples, the statistics may be generated by the underlying service mesh architecture, such as, by way of non-limiting example, the Istio service mesh architecture. The statistics are captured and stored as traffic information 34. The traffic information 34 may include a plurality of entries 36-1-36-N (generally, entries 36), each of which identify a particular sending service 14 and particular receiving service 14 for a respective message communicated in the service mesh 12. In this example, the entry 36-1 indicates a message was communicated by the service 14-1 (productpage) to the instance 20-1 of the service 14-4 (reviews). The traffic information 34 may comprise thousands or even millions of entries 36.
The services 14 may also implement tracing functionality to generate trace information 38. The trace information 38 can comprise, for example, a unique transaction identifier that establishes a relationship between the traces generated by different services 14 during the generation of the same web page. The trace information 38 can also include, for example, the duration of the processing of a service 14 for the particular message, a start time and end time, attributes and characteristics about the particular message being processed, the values of variables at that point in time, and basically any other data available to the service at that instant in time. Any suitable tracing technology may be utilized. In some implementations, the Jaeger tracing technology (www.jaegertracing.io) may be utilized in the service mesh 12.
The trace information 38 includes a plurality of trace records 40-1-40-3, each of which comprises a plurality of entries associated with the same transaction, and each of which identifies a set of the services 14 that were invoked during a same transaction. Some of the entries correspond to traces generated during the transaction. Traces can be nested such that a first trace is initiated, and before the first trace is terminated, a second trace is initiated. Thus, the duration time of the first trace includes the duration time of the second trace. Any number of traces can be initiated by a single service 14 during the same transaction.
As an example, the trace record 40-1 includes a plurality of entries 42-1-42-8. The entry 42-1 contains information that identifies the unique transaction identifier (23245) of the transaction that corresponds to the trace record 40-1, the date of the trace (Jun. 3, 2020), the duration of the longest trace (28.41 milliseconds (ms)), and the start time of the first trace (11:03:15.374).
The entry 42-2 corresponds to a trace generated by a service. The entry 42-2 contains a trace service identifier (TSI) that identifies the service 14-1 (productpage) as the service 14 that initiated the trace. The entry 42-2 identifies a duration of the trace, and may include additional data, such as the start time of the trace, the end time of the trace, values of variables at the time of the trace, and any other suitable or desirable information.
The entry 42-3 corresponds to another trace also generated by the service 14-1 (productpage). The entry 42-3 is indented with respect to the entry 42-3 to visually convey that the entry 42-3 is a nested trace. In other words, the trace that corresponds to the entry 42-2 was initiated first, and not terminated at the time the trace that corresponds to the entry 42-3 was initiated. This nested relationship may be determined in any number of ways, such as, by way of non-limiting example, start time and end time for each entry 42-2-42-8.
The entry 42-4 corresponds to a trace generated by the service 14-2 (details). The entry 42-4 is indented with respect to the entry 42-3 to visually convey that the entry 42-4 is also a nested trace. The entry 42-5 corresponds to another trace generated by the service 14-1 (productpage). The entry 42-5 is indented with respect to the entry 42-2 to visually convey that the entry 42-5 is also a nested trace, but that the trace was initiated after the traces that correspond to the entries 42-3 and 43-4 had completed.
The entry 42-6 corresponds to a trace generated by the service 14-4 (reviews), and in particular, to the instance 20-2. The entry 42-7 is a nested trace that also corresponds to the service 14-4 (reviews), and in particular, to the instance 20-2. The entry 42-8 corresponds to a trace generated by the service 14-5 (ratings). Thus, during the same transaction to generate a single web page, seven traces were generated and stored in the trace information 38.
The graph visualizer 46 uses the traffic graph information 50 to generate a traffic graph visualization 54 which is presented on the display device 32. The traffic graph visualization 54 includes a plurality of nodes 56-1-56-5, each of which corresponds to a service 14-1-14-5, respectively. The traffic graph visualization 54 includes indicia 58-1-58-5 which identifies the particular service 14 that is represented by the node 56. The traffic graph visualization 54 also depicts a gateway node 60 that corresponds to the gateway service 22. The traffic graph visualization 54 includes a plurality of edges 62 that extend between pairs of the nodes 56, and which represent paths of messages that have been communicated from one corresponding service 14 to another corresponding service 14. Thus, the edges 62 are based on the existence of actual message traffic between two services 14. The traffic graph visualization 54 allows the operator 44 to visually and intuitively understand the processing relationship of the services 14 with respect to one another, and the flow of information between the services 14.
It is noted that, because the graph visualizer 46 is a component of the computing device 26, functionality implemented by the graph visualizer 46 may be attributed to the computing device 26 generally. Moreover, in examples where the graph visualizer 46 comprises software instructions that program the processor device 28 to carry out functionality discussed herein, functionality implemented by the graph visualizer 46 may be attributed herein to the processor device 28.
Either by default, or in response to user input from the operator 44, the graph visualizer 46 may access the trace information 38, generate trace controls 64-1-64-3 (generally, trace controls 64), and present the trace controls 64 on the display device 32 concurrently with the traffic graph visualization 54. Each trace control 64-1-64-3 corresponds to a trace record 40-1-40-3, respectively. For purposes of illustration, assume that the operator 44 selects the trace control 64-1
Referring now to
The graph visualizer 46 generates a transaction trace visualization 66 that identifies the nodes 56-1, 56-2, 56-4, and 56-5 that correspond to the services 14-1, 14-2, 14-4, and 14-5, respectively, and presents the transaction trace visualization 66 on the display device 32 concurrently with the traffic graph visualization 54. In this example, the identification of the nodes 56-1, 56-2, 56-4, and 56-5 is via cross-hatching to conform with drawing requirements; however, in practice, any mechanism for visually distinguishing the nodes 56-1, 56-2, 56-4, and 56-5 may be used, such as by making the nodes 56-1, 56-2, 56-4, and 56-5 a different color from, for example, the node 56-3, or by having a thicker perimeter, by having a different font, or via textual indicia.
The transaction trace visualization 66 may also identify which of the edges 62 (e.g., paths) of the traffic graph visualization 54 between the nodes 56-1, 56-2, 56-4 and 56-5, were utilized during the transaction. In this example, some of the edges 62 have been replaced by a different visual indicator, such as dotted edges 68-1-68-3, each of which corresponds to a communication of a message associated with the transaction to a service 14 and/or a receipt of a message associated with the transaction from a service 14. As an example, the edge 68-1 indicates that during the transaction 23245, the sending service 14-1 sent a message to the receiving service 14-2 (sender and receiver denoted via the direction of the arrowhead of the edge 68-1). The edge 68-2 indicates that during the transaction 23245, the sending service 14-1 also sent a message to the receiving service 14-4, which was handled by the instance 20-2. The edge 68-3 indicates that during the transaction 23245, the instance 20-2 of the sending service 14-4 sent a message to the receiving service 14-5. While in this implementation, the edges 68-1-68-3 replaced certain of the edges 62 of the traffic graph visualization 54, in other implementations, the edges 68-1-68-3 may be placed adjacent to or otherwise be visually depicted in addition to the edges 62.
Assume that the operator 44 hovers a cursor 70 over the node 56-2, or otherwise selects the node 56-2. Referring now to
Assume that the operator 44 next hovers the cursor 70 over the node 56-1, or otherwise selects the node 56-1. Referring now to
Assume that the operator 44 next selects a traffic graph control 73. Referring now to
The graph visualizer 46 correlates each of the services 14-1, 14-2, and 14-3 with the corresponding nodes 56-1, 56-2, and 56-3, respectively, as discussed above. The graph visualizer 46 generates a transaction trace visualization 78 that identifies the nodes 56-1, 56-2, and 56-3 that correspond to the services 14-1, 14-2, and 14-3, respectively, and presents the transaction trace visualization 78 on the display device 32 concurrently with the traffic graph visualization 54. The transaction trace visualization 78 identifies edges 80-1 and 80-2 between the nodes 56-1, 56-2, and 56-3, each edge 80-1, 80-2 corresponding to a communication of a message associated with the transaction to a service 14 and/or a receipt of a message associated with the transaction from a service 14.
Assume that the operator 44 hovers the cursor 70 over the node 56-3, or otherwise selects the node 56-3. Referring now to
In this manner, the examples disclosed herein provide a highly intuitive mechanism by which the operator 44 can simultaneously view the traffic graph visualization 54 of the service mesh 12, which illustrates the flow of traffic generally of the service mesh 12, and of the transaction trace visualization 78 of a particular transaction performed in the service mesh 12, as well as particular statistics that relate to that transaction.
The graph visualizer 46 accesses the trace information 38 that identifies the set of services 14-1, 14-2, 14-4, and 14-5 of the plurality of services 14 that were invoked during the same transaction (
The system bus 86 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. The system memory 30 may include non-volatile memory 88 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 90 (e.g., random-access memory (RAM)). A basic input/output system (BIOS) 92 may be stored in the non-volatile memory 88 and can include the basic routines that help to transfer information between elements within the computing device 26. The volatile memory 90 may also include a high-speed RAM, such as static RAM, for caching data.
The computing device 26 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 94, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device 94 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
A number of modules can be stored in the storage device 94 and in the volatile memory 90, including an operating system and one or more program modules, such as the graph visualizer 46, which may implement the functionality described herein in whole or in part.
All or a portion of the examples may be implemented as a computer program product 96 stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device 94, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device 28 to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device 28. The processor device 28, in conjunction with the graph visualizer 46 in the volatile memory 90, may serve as a controller, or control system, for the computing device 26 that is to implement the functionality described herein.
The operator 44 may also be able to enter one or more configuration commands through a keyboard, a pointing device such as a mouse (not illustrated), or a touch-sensitive surface such as the display device 32. Such input devices may be connected to the processor device 28 through an input device interface 98 that is coupled to the system bus 86 but can be connected by other interfaces such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computing device 26 may also include a communications interface 100, such as a transceiver, suitable for communicating with a network as appropriate or desired.
Individuals will recognize improvements and modifications to the preferred examples of the disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
Claims
1. A method comprising:
- accessing, by at least one processor device, traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services;
- accessing first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction;
- correlating each service in the first set of services with a corresponding node of the plurality of nodes; and
- presenting, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
2. The method of claim 1 wherein the traffic graph information comprises information about a plurality of messages communicated between the services in the plurality of interrelated services, the information identifying, for at least some of the plurality of messages, a sending service and a receiving service.
3. The method of claim 1 wherein the plurality of interrelated services comprises a service mesh, wherein each service has a corresponding proxy, and wherein each service receives messages from other services via the corresponding proxy and each service sends messages to the other services via the corresponding proxy.
4. The method of claim 1 further comprising:
- prior to presenting, concurrently, the traffic graph visualization and the first transaction trace visualization, presenting, on the display device, the traffic graph visualization;
- presenting, on the display device, concurrently with the traffic graph visualization, a plurality of trace controls, each trace control corresponding to a transaction trace of a plurality of transaction traces, each transaction trace identifying a corresponding set of services that were invoked during a corresponding transaction;
- receiving user input that identifies a first trace control of the plurality of trace controls; and
- wherein the first transaction trace visualization is based on a transaction trace that corresponds to the first trace control.
5. The method of claim 1 further comprising presenting, in association with a node of the plurality of nodes that corresponds to a service in the first set of services, on the display device a duration time that identifies an amount of time spent by the service servicing the first transaction.
6. The method of claim 1 wherein the first transaction trace visualization identifies edges between the nodes that correspond to the services in the first set of services, each edge corresponding to a communication of a message associated with the first transaction to a service in the first set of services and/or a receipt of a message associated with the first transaction from a service in the first set of services.
7. The method of claim 6 wherein at least some of the edges identify a sender service and a receiver service for a corresponding message.
8. The method of claim 1 wherein correlating each service in the first set of services with a corresponding node of the plurality of nodes comprises:
- accessing, in the first trace information, a trace record that includes, for each respective service in the first set of services, a trace service identifier that identifies the respective service;
- accessing the traffic graph information, the traffic graph information including information that identifies, for each respective node, a node service identifier that identifies the service that corresponds to the respective node; and
- correlating each service in the first set of services with the corresponding node by matching the trace service identifier of each service in the first set of services with the node service identifier of the corresponding node.
9. The method of claim 1 further comprising:
- presenting, on the display device, concurrently with the traffic graph visualization and the first transaction trace visualization, a plurality of trace controls, each trace control corresponding to a transaction trace of a plurality of transaction traces, each transaction trace identifying a corresponding set of services that were invoked during a corresponding transaction;
- receiving user input that identifies a trace control of the plurality of trace controls;
- in response to the user input, accessing second trace information that identifies a second set of services invoked during a same second transaction;
- correlating each service in the second set of services with a corresponding node of the plurality of nodes; and
- presenting, concurrently, on the display device, the traffic graph visualization and a second transaction trace visualization that is different from the first transaction trace visualization, the second transaction trace visualization identifying the nodes that correspond to the services in the second set of services.
10. The method of claim 1 further comprising:
- receiving user input that identifies a node;
- determining a service that corresponds to the node;
- accessing the first trace information to obtain information that identifies an amount of time spent by the service servicing the first transaction; and
- presenting, concurrently, on the display device, the traffic graph visualization, the first transaction trace visualization, and the information that identifies the amount of time spent by the service servicing the first transaction.
11. A computing device, comprising:
- a memory; and
- at least one processor device coupled to the memory to: access traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services; access first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction; correlate each service in the first set of services with a corresponding node of the plurality of nodes; and present, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
12. The computing device of claim 11 wherein the at least one processor device is further to:
- prior to presenting, concurrently, the traffic graph visualization and the first transaction trace visualization, present, on the display device, the traffic graph visualization;
- present, on the display device, concurrently with the traffic graph visualization, a plurality of trace controls, each trace control corresponding to a transaction trace of a plurality of transaction traces, each transaction trace identifying a corresponding set of services that were invoked during a corresponding transaction;
- receive user input that identifies a first trace control of the plurality of trace controls; and
- wherein the first transaction trace visualization is based on a transaction trace that corresponds to the first trace control.
13. The computing device of claim 11 wherein the at least one processor device is further to present, in association with a node of the plurality of nodes that corresponds to a service in the first set of services, on the display device a duration time that identifies an amount of time spent by the service servicing the first transaction.
14. The computing device of claim 11 wherein to correlate each service in the first set of services with a corresponding node of the plurality of nodes, the at least one processor device is further to:
- access, in the first trace information, a trace record that includes, for each respective service in the first set of services, a trace service identifier that identifies the respective service;
- access the traffic graph information, the traffic graph information including information that identifies, for each respective node, a node service identifier that identifies the service that corresponds to the respective node; and
- correlate each service in the first set of services with the corresponding node by matching the trace service identifier of each service in the first set of services with the node service identifier of the corresponding node.
15. The computing device of claim 11 wherein the at least one processor device is further to:
- receive user input that identifies a node;
- determine a service that corresponds to the node;
- access the first trace information to obtain information that identifies an amount of time spent by the service servicing the first transaction; and
- present, concurrently, on the display device, the traffic graph visualization, the first transaction trace visualization, and the information that identifies the amount of time spent by the service servicing the first transaction.
16. A non-transitory computer-readable storage medium that includes executable instructions to, upon execution by a processor device:
- access traffic graph information that identifies a plurality of nodes and a plurality of edges, each node corresponding to a particular service of a plurality of interrelated services, each service being configured to receive and/or send a message to at least one other service in the plurality of interrelated services, each edge representing a path that at least one message has taken between two services;
- access first trace information that identifies a first set of services of the plurality of interrelated services that were invoked during a same first transaction;
- correlate each service in the first set of services with a corresponding node of the plurality of nodes; and
- present, concurrently, on a display device, a traffic graph visualization and a first transaction trace visualization, the traffic graph visualization depicting the plurality of edges and the plurality of nodes, the first transaction trace visualization identifying the nodes that correspond to the services in the first set of services.
17. The non-transitory computer-readable storage medium of claim 16 wherein the instructions further, when executed by the processor device:
- prior to presenting, concurrently, the traffic graph visualization and the first transaction trace visualization, present, on the display device, the traffic graph visualization;
- present, on the display device, concurrently with the traffic graph visualization, a plurality of trace controls, each trace control corresponding to a transaction trace of a plurality of transaction traces, each transaction trace identifying a corresponding set of services that were invoked during a corresponding transaction;
- receive user input that identifies a first trace control of the plurality of trace controls; and
- wherein the first transaction trace visualization is based on a transaction trace that corresponds to the first trace control.
18. The non-transitory computer-readable storage medium of claim 16 wherein the instructions further, when executed by the processor device, present, in association with a node of the plurality of nodes that corresponds to a service in the first set of services, on the display device a duration time that identifies an amount of time spent by the service servicing the first transaction.
19. The non-transitory computer-readable storage medium of claim 16 wherein to correlate each service in the first set of services with a corresponding node of the plurality of nodes, the instructions further, when executed by the processor device:
- access, in the first trace information, a trace record that includes, for each respective service in the first set of services, a trace service identifier that identifies the respective service;
- access the traffic graph information, the traffic graph information including information that identifies, for each respective node, a node service identifier that identifies the service that corresponds to the respective node; and
- correlate each service in the first set of services with the corresponding node by matching the trace service identifier of each service in the first set of services with the node service identifier of the corresponding node.
20. The non-transitory computer-readable storage medium of claim 16 wherein the instructions further, when executed by the processor device:
- receive user input that identifies a node;
- determine a service that corresponds to the node;
- access the first trace information to obtain information that identifies an amount of time spent by the service servicing the first transaction; and
- present, concurrently, on the display device, the traffic graph visualization, the first transaction trace visualization, and the information that identifies the amount of time spent by the service servicing the first transaction.
Type: Application
Filed: May 9, 2022
Publication Date: Aug 25, 2022
Inventor: Joel Takvorian (Paris La Defense Cedex)
Application Number: 17/739,571