APM

Service Maps

  • Find and view different types of Service Maps
  • Understand and interpret connections between services
  • Understand group nodes

Transcript 

Service maps help you understand your microservice architecture by generating diagrams of how your services connect.

This tutorial will cover how to:

  • Find and view [different types of] Service Maps
  • Understand and interpret connections [between services]
  • Understand group nodes

There are a couple different ways to navigate to Service Maps. How I get to my service maps page depends on what I want to see when I first get there. To see an empty map, I’ll click on “service maps” in the top left corner of the page from anywhere in my New Relic account.

Alternatively, if I’m already looking at a particular application, I can navigate to the service maps page from that application, which results in an automatically generated service map of that app. To do this, I’ll go to the left-bar menu from any APM page, and click on “service maps” under the monitoring section.

Map list tab

Here I am on the Service Maps page. In the “map list” tab, I can create a new map by clicking on one of the “suggested maps” buttons such as “Most visited App or Service” or “Highest traffic App or Service”. New Relic generates these maps based on data about the services in my system. The “discover your environment” button will create a map containing all of my services.

Under the suggested maps, this list shows the existing maps that I’ve created, as well as any shared maps created by anyone in my organization. I can search for a specific map using the the search bar.

To the right of the “Map List” tab, is the “app/service list” which shows the services I’ve instrumented with New Relic.

I can search for services using the search bar at the top of the tab column.

The icons below the search bar allow me to look at different service types; web applications are selected by default, but I can look at mobile applications by clicking the phone icon, or at plugins by clicking the puzzle piece.

I can add anything I’ve instrumented in my account to my service map by clicking on it. Services already on the map will have a check mark next to them.

I can remove the left bar from the screen by clicking whichever tab is currently open.

Top Bar

I can save my map by clicking on the “save” icon in the top bar and duplicate a saved map with the “save as new” button.

I’ll go over this in more detail in a later tutorial.

Next on the top bar is the view menu, which I can use to customize the appearance of my maps.

Midnight mode converts the map to a darker color scheme.

Traffic light mode, which is enabled by default, fills each service icon with a solid color for its status when zoomed out, providing a clearer overview of the system health as a whole.

The auto-arrange button will arrange nodes on the map to make them easier to read. It will not add, remove, or ungroup nodes.

The select mode buttons allow you to change what clicking and dragging on the map does. Brush select mode means dragging will allow me to select all the map nodes in an area, which is useful when I want to create groups. Pan map mode, which is enabled by default, means dragging will move the map around, allowing me to navigate without the scroll bars.

Map Content

Now I’ll take a look at the map itself, and see what it tells me about my application architecture.

Each node on the map represents a single service in my application architecture. Entities that have been instrumented with multiple New Relic products, such as a front-end web app with both Browser and APM instrumentation, may have multiple nodes to represent the different products.

New Relic automatically generates connections on your map based on the activity in your apps. Two entities will have lines drawn between them if there has been an HTTP request from one to the other. A line coming out of the left side indicates incoming connections from services that have made requests to this one. A line from the right indicates outgoing connections to services that this one has made requests to.

These requests are sampled starting from 15 minutes before I first visited the service maps page. If I stay on the page, requests will continue to accumulate, and connections will be added between the existing nodes on the map as needed. If I reload the map, any connections older than 15 minutes will disappear.

Some nodes on the map will have rounded tabs on their sides; these indicate connected services that have not yet been added to the map. I can click on the rounded tabs to see what services are connected, and from this list, I can click on any entities I want to add to the map.

Sometimes this will reveal entities that aren’t on the service list, such as external services and databases.

In addition to showing me how the services in my architecture interact with one another, a Service Map summarizes a service’s performance, using health status colors and charts.

For nodes representing a service instrumented with New Relic, the colors are determined by their alert status--a green service has no alert violations, a yellow one has a warning violation in progress, and a red service is undergoing a critical alert violation. If I have an instrumented app with no alert policies, it will be light green.

For other nodes, such as those representing external services, the health status color code is determined by comparing the current response time to an average baseline.

I can click on the three dots on the right to see a link to the service’s overview dashboard page, and for APM nodes, a list of any labels the service has. To remove a node from the map, I can hover over it, then click the “x” that appears in its top right corner.

I can learn more about how a service is doing by clicking on the node to open a detail view. I’ll see a response time chart for the service with additional averaged metrics below. I can look at charts for those other metrics by clicking on them.

For APM apps, the available metrics are Response Time, Apdex, Throughput, and Error Rate. Other node types will have different metrics displayed.

Groups

Sometimes applications will have a number of entities performing similar tasks. Group nodes are a good way to organize information about similar services.

Connections into and out of a group node work the same as connections to an individual node; requests to or from any member of the group will result in a line connecting to the group node.

The health status color of the group node will correspond to its worst-performing member node; for example, if there are 5 green nodes, one yellow node, and one red node within a group, the group node will be red. I can see a summary of how many nodes are which color by looking at the bar chart at the bottom of the group node.

I can learn more about a group node by clicking on it to open a list of its members. The worst-performing nodes within the list will be at the top. I can click the “show metrics” gear icon in the top right of this list to to open a display of some statistics about each service - I may need to scroll to see all the data about each node in this view . And I can click on the name of a service to visit its overview dashboard page.

Conclusion

Now that you know how to view and interpret service maps, you’re ready to learn more about your application architecture.