Flow maps present a dynamic, visual representation of the components and activities of your monitored application environment. Flow maps show the tiers, nodes, message queues, and databases in the environment, and the business transactions that flow through them.
The following figure shows a basic flow map for an ecommerce 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 dotted lines indicate asynchronous connections.
The numbers above the flow lines present some basic information about the performance of the services. They 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.
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.
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:
- All Applications flow map shows all applications. When one application makes exit calls to another, the flow map shows cross application flow within the monitored environment, if the intermediate transport protocol is synchronous. Click View All Applications on the Home page to display the All Applications flow map:
- 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.
- 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. For more information, see "Business Applications" on AppDynamics Concepts.
What an item of information in a flow map represents can differ based on the context of the flow map. For example, for an application flow map, the average response time for calls to a database indicates the average for all calls to the database in the time range.
On the other hand, for a business transaction flow map, the average response time for the database represents the average time for calls to that database for each execution of the business transaction. If a business transaction makes multiple calls to a database, this number is the average response time for all calls to the database per transaction execution. If a business transaction makes two calls to a database, therefore, the value shown for the database connection in the business transaction flow map is likely to be twice the value shown for calls to the same database in the application flow map.
Interacting with Flow Maps
On flow maps, you can:
- Click on items in the flow map to see more details or right click to see additional actions.
- 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.
- Rename the tiers nodes, or backends using the Actions-Edit Properties option on the appropriate Tier, Node, Remote Services and Database dashboard.
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.
Managing Flow Maps
In a large scale deployment, the flow map may show hundreds of monitored nodes. The interests of specific users or teams may be limited to a subset of the nodes shown by default flow maps. You can create flow maps that are targeted to specific areas of interest by creating custom flow maps. You can then configure the flow maps to show only certain tiers or backends, set performance thresholds for display in the flow map, and group similar backend services. For example, flow maps can show:
- Only tiers from where the load exceeds fifty calls per minute and the average response time exceeds 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 in the upper left corner of the flow map and click Manage My Flow Maps.
In the Manage Flow Maps dialog, use the icons at the top to create, remove, or copy 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. Customize your new flow map as described next.
Customizing Flow Maps
You can customize a built-in flow map, but in most cases, you will likely want to customize a flow map you have created. To customize a flow map, first create it in the Manage Flow Maps dialog. Then follow these steps:
- Make the flow map you want to customize active by selecting it from the flow map menu.
- Optionally, zoom in or out and pan to a specific focus of the flow map. (You will have the option of persisting the focus you set here.)
- Choose Edit Current Flow from the flow map menu.
- Configure general settings for the flow map:
- Check the Shared check box if you want to share a custom flow map. When shared, your custom flow map appears in the flow map menu for all users.
- Check the Persist Zoom and Pan check box to save the currently active focus for the flow map.
From the Tiers tab, configure performance criteria or select specific tiers to hide. For example, the following configuration sets the flow map to display only backends in which, for the selected time range, the load is greater than 500 calls per minute.
For databases and remote services, similarly set performance criteria or select backend servers to hide if desired. See the following section for information on the option to automatically group databases and remote services.
- Click Apply to view the results before saving the configuration.
- Click Save to save the customized flow map or Cancel to cancel the changes.
Group databases or remote services
To simplify a flow map, you can group backend databases or remote services of the same type into a single icon on the flow map. For example, the following icon represents grouped backend databases:
Clicking the icon opens a pop-up that shows information on the individual backends in the group.
Backend services can be grouped if their types match. The types can vary between agent types and even between agent versions, since backend support is constantly being added. To see the supported backend types, examine the automatically discovered backend types for your agents. To do this, in the left navigation panel click Configure->Instrumentation, then click the Backend Detection tab and then the agent subtab. The backend types are listed In the Automatic Backend Discovery panel.
To group databases and remote services:
In the Configure Flow Map dialog, select the Databases & Remote Services tab.
Check the Automatically group databases and remote services of the same type when there are at least check box.
In the field, enter the minimum number of backends that must be present before grouping. For example, if you enter 4 and the agent detects only 3 HTTP backends, the HTTP backends are not grouped.
You can exclude a specific backend server from ever being grouped by the flow map, regardless of the grouping configuration, by checking the Ungroupable check box for that backend in the Visibility and Grouping list.