Flow maps present a dynamic visual representation of the components and activities of your monitored application environment. See Overview of Application Monitoring.
This page describes how to view and use flow maps.
Flow Map Overview
Flow maps show the tiers, nodes, message queues, and databases in the environment, and the business transactions that flow through them. This sample shows a basic flow map for an e-commerce application. In the sample, three server tiers interact with databases and an Apache ActiveMQ message broker.
Flow lines represent connections between components in the flow map. Solid lines indicate synchronous connections, while dashed lines indicate asynchronous connections.
Many modern frameworks use asynchronous patterns even if you do not explicitly call an asynchronous function or method. For example, your application code may employ a synchronous call to a framework or an Object-relational mapping style API, but the framework itself invokes an asynchronous executor to handle the call. These types of asynchronous segments show up as a dotted line on the flow map. For more about asynchronous exit calls, see Trace Multithreaded Transactions for Java or Asynchronous Exit Points for .NET.
The numbers above the flow lines indicate the calls made per minute to the tier and the average time taken for the request to be serviced; that is, the round-trip time for the request. The round-trip time includes time spent on the network, if applicable to your topology, and the time that the backend server or other process spends processing the request. The calls per minute for a given context, such as a tier, must be one or more for the flow map to display.
If performance baselines are set for transactions represented in the flow map, the flow lines use color to indicate the performance of the service represented by the flow line relative to the baseline. For example, a green flow line indicates that that response times in the time range do not differ significantly from the baseline. A yellow line indicates that response times are slower than the baseline. It takes some time for the Controller to establish baselines for a new installation. If there are no baselines for comparison, the flow lines are blue.
Live Entity Data
By default, the flow map only shows the nodes receiving performance data to optimize the rendering of the flow map and to enable you to quickly view the active nodes. You can set a filter to view the nodes not receiving performance data or all nodes. Choosing to view the nodes not receiving performance data can help you troubleshoot node issues.
When an entity is alive, it will affect other associated entities:
- When a business transaction entity is alive, the associated node, tier, and application will be alive.
- When a node is alive, the associated tier, and application will be alive.
- When a tier is alive, the associated application will be alive.
If the Controller detects that a flow map is taking a long time to load, it does not load the flow map automatically. In this case, you can click Show Flow Map to display the flow map if you choose.
Types of Flow Maps
Flow maps appear in several of the built-in dashboards in the UI, and show different information depending upon the context in which they appear:
- Cross Application flow maps show exit calls between applications within the monitored environment. A pattern of such calls is known as cross-application flow.
- Application flow maps show the topology and activities within an application. It displays metric values across all business transactions in the application for the selected time range. For example, the application flow map displays calls per minute; average response time for calls made to databases and remote services; and business transaction errors per minute. These metrics are based on all calls made from a specific tier to a database or remote service across all business transactions.
- When an application is one of several in a one-app-per-service architecture, business transactions can represent service endpoints. For these applications, the application flow map displays a Cross-BT Hovercard that shows calls to upstream and downstream business transactions which represent endpoints of other services.
- Tier and node flow maps display these metric values across all business transactions for the subset of the application flow related to the selected tier or node.
- Business transaction flow maps show the activity for a business transaction. The START label indicates the tier where the transaction starts (the originating tier). The business transaction flow map shows metrics that are calculated based on all executions of the business transaction during the selected time range.
Snapshot flow maps illustrate the metrics associated with a single snapshot. The metrics values shown in the map are specific to a particular execution of the transaction.
AppDynamics shows cross-application flow on all flow maps where appropriate. For example, a tier flow map shows correlation when there are exit calls from the tier to another instrumented application.
Context can determine the meaning of what flow maps represent. For example, consider the average response time (ART) for calls to a database.
- In the context of an application, ART averages all calls to the database that happen within the application. Suppose that the application flow map shows that ART for those calls is 20 milliseconds.
- In the context of a business transaction, ART represents average execution time for the business transaction as a whole. Suppose that in a BT within the same application, the database gets called twice each time the business transaction executes. In the business transaction flow map, ART represents the average duration of a pair of database calls, meaning that ART is 40 milliseconds.
Flow Map Interactions
On flow maps you can:
- Click items in the flow map to see key performance indicators in an informational popup. For some components of the flow map, like tiers, the popup displays additional details.
- Change the Time Range setting to have the flow map represent the activity of the system within the selected time frame.
- For SaaS Controllers, note that the flow maps show a maximum of the last 60 minutes of data, even if the time range in the UI is set to a greater range. This only applies to flow maps; the data in other graphs on the dashboard represent the selected time range.
Click Legend to learn more about how flow maps represent data.
- Use a filter to view tiers and nodes (all associated entities) receiving performance data, not receiving performance data, or all nodes.
- Select Show Tiers / Nodes with performance data to show entities and metrics for live entities over the specified time range.
- Select Show Tiers / Nodes with no performance data to show metrics/entities of entities that are not alive over the specified time range.
- Select both Show Tiers / Nodes with performance data and Show Tiers / Nodes with no performance data checkboxes to show metrics and entities without checking the liveness of entities.
Drag and drop items to rearrange the flow map layout or use automatic arrangement options using the controls at the top right of the flow map:
Use the controls to view the mapped components as a list, auto arrange the flow map—in which components are arranged for the fewest crossing flows—maximize the view, and more.
The Cross-BT Hovercard in the Application Flow Map
For an application in a one-app-per-service architecture, the application flow map displays a Cross-BT Hovercard showing calls from upstream and to downstream business transactions representing endpoints of other services.
This enables you to isolate the service which is the origin of any problem that arises, to one of three possibilities:
- The service whose endpoint is a BT that you are monitoring ("your" service)
- An upstream or downstream service, that "your" service communicates with through cross-BT calls
- Yet another upstream or downstream service, that "your" service communicates with indirectly through a chain of cross-BT calls between several services
To access the Cross-BT Hovercard, select the line representing either the incoming or outgoing cross-application call, and then select the Business Transactions tab.
Manage Flow Maps
In a large scale deployment, the flow map may show hundreds of monitored nodes, not all of which may be of interest to specific users or teams. You can create flow maps that are targeted to specific areas of interest by creating custom flow maps.
The custom flow map can be configured to show only certain tiers or those based on performance thresholds, for example:
- Only tiers from where the load exceeds fifty calls per minute and the average response time exceed 10,000 ms
- Only backends receiving at least 400 calls per minute and generating more than 10 errors per minute
To create, copy, or delete a flow map, click the flow map menu and click Manage My Flow Maps.
When you create a flow map, the new flow map inherits the context of the flow map in which it was created, whether created from an application, business transaction, tier, or node flow map. To customize your new flow map, see Customize Flow Maps.