Service dependencies
Service dependencies maps let you visualize the relationships between the application and technical services defined in your Service Catalog. The direction of arrows on the map indicates what a service depends on. For example, in the image below, 'Service A' depends on 'Service B' and 'Service C' (and conversely, 'Service A' is depended on by 'Service 1' and 'Service 2').
The icon for each service lets you see at a glance if the service is impacted by any active incidents, and the highest severity level of those incidents. While the map displays a focused view by default, you can expand the map to view additional upstream and downstream services. The icon to indicate if a branch of the map can be extended is color-coded by the highest severity of any active incidents impacting services in the hidden branch.
You can access the dependencies map for a service to view that service's direct dependencies, explore how that service relates to other services in your architecture, and manually define the dependencies between your services. You can also access the dependencies map for an incident to view which services are impacted, investigate which other services may be affected or had recent changes, identify potential root causes, and run automations for impacted services.
Getting around the map
By default, the dependency map for a service displays a focused view of that service's direct dependencies, while the dependencies map for an incident displays services impacted by the incident and paths to any identified potential root causes or recent changes. You can extend that view by expanding and collapsing branches of the map to view or hide additional upstream or downstream services, as well as search for specific services.
To expand the map:
When the map continues beyond a displayed service, you can click the circular service icon to extend the branch to the next level of dependencies. The icon is color-coded by the highest severity of any active incidents impacting services in the hidden branch (such as 'High' severity in the example below).
To collapse the map:
- Locate the controls to minimize the branches on the left or right side of the service (these controls appear as squares that contain the minus "-" symbol).
- Do one of the following:
- Click the control on the right of a service to Hide services that this service depends on (the branch to the right).
- Click the control on the left of a service to Hide services that depend on this service (the branch to the left).
You can hover over a control to preview which parts of the map will be hidden when you click:
If you're viewing the dependencies map for a service, that service always remains visible on the map.
By default, the dependencies map is collapsed to display a focused view for the service or incident of interest. If you want to view a service connected to the map that's not currently visible, you can search for that service to automatically expand the map and display it. You can also use search to locate services that are currently being displayed – this is helpful if your map is large and complex and you want to quickly locate a service on it.
To find a service on the map:
- Click in the 'Find or add services' search bar.
- Search for or scroll to the name of the service you want to find.
- Under 'Find service on map', select the service to highlight it on the map.
- If the service isn't currently visible on the map, the branch of the map that contains it expands to display it.
You can change the layout of the service dependencies map to make it easier for users to find and manage service dependencies.
To move around the dependencies map, do one of the following:
- Drag the dependencies map if you want to focus on another area.
- Zoom in and out using the scroll wheel on your mouse or the + and - buttons under the mini-map.
- Click and drag on the mini-map so it highlights the area you want to show on-screen.
To change the layout of your services on the dependencies map, do one of the following:
- Click and drag a service to the location you want to place it on the map.
- Click the Auto Layout button under the mini-map to align all your services. This also fits the map to the window if you've zoomed in.
You can tell at a glance which services on the map are impacted because their icons are color-coded by the highest severity of any active incidents they are impacted by (or black if they are not impacted).
Click a service to display an info card with its name, type (indicated by the icon next to its name), description, active incidents, tier, owner, when it was last changed, and a link to view the service. If a service is undefined (not included in the Service Catalog), no additional information is included.
To view who is on call for a service:
Click the Owner group to view who is currently on call (including shifts, members, and escalations).
To view active incidents associated with a service:
The service info card includes a count of the number of active incidents currently impacting that service (incidents are considered active if their status is 'Open' or 'In Progress'). The incident (flame) icon is also color-coded by the highest severity of any active incidents impacting the service. In the example above, the service has 7 associated active incidents and the highest severity level of one or more of those incidents is 'Critical'. You can click the incident count to drill through to a filtered view of those incidents in the Incidents list.
Dependencies map for a service
You can use the dependencies map for a service to view and define the relationships between the services in your architecture.
A service's details page includes a dependencies map that you can use to add and remove dependencies and to explore how that service relates to other upstream or downstream services. If a service is experiencing an incident, service owners can use the map to identify which services may also be affected, and whether they need to communicate with stakeholders from other services about incident resolution activities.
The service appears near the center of the map, visually distinguished from other services by gray shading and a darker outline. By default, the map displays a focused view of the service's direct dependencies (the services it directly depends on and the services it's directly depended on by), indicated by bold arrows. Any additional dependencies that exist between the displayed services are included as lighter gray arrows.
To access the dependencies map for a service:
- In the side navigation menu, click Services.
- In the Service Catalog, click the name of a service to view the service's details page, which includes the service dependencies map.
You can manually add or remove dependencies between services by drawing or deleting arrows on the dependencies map.
To add a dependency:
- Hover over a service to display its port (the little circle on the and right side of the service).
- Click the port and drag an arrow onto another service that it depends on.
To remove a dependency:
- Click the arrow between two services to highlight it and display the delete icon (the 'x' icon).
- Click the delete icon.
- In the Delete Dependency dialog window that appears, click Delete.
To define service dependencies, you'll need to add services to your map so that you can draw connections between them. You can use the 'Find or add services' search bar to find and add existing services to the map. There's also a convenient option to add new services directly from the here, so you won't need to navigate to the Service Catalog to add new services when you're defining dependencies.
To add a service to the map:
- Click in the 'Find or add services' search bar and do one of the following:
- Add an existing service: Search for or scroll to the service in the list and click + Add next to its name.
- Add a new service: Start typing the name of the service and select to add it as a new service.
- Add an existing service: Search for or scroll to the service in the list and click + Add next to its name.
- After you add the service, your cursor displays the grab handle icon 'holding' the service. Move your pointer to the location you want to place the service and click to drop it on the map.
- Connect the service to your map by adding one or more dependencies with other services.
Dependencies map for an incident
You can view a service dependencies map for an incident to explore which services are impacted or potentially impacted, identify root causes and recently changed services, engage service owners as resolvers, and run service-specific automations.
You can access the service dependencies map during an incident to view the services impacted by the incident, explore the current extent of the issue and identify which other services may potentially be impacted
In the Impacted Services section of the Incident Console, click View Dependencies.
By default, the incident dependencies map displays a focused view of the services impacted by the incident and the paths to any identified potential root causes or services changed within the past 24 hours. Impacted services are indicated by gray shading and dark outlines and any of their direct dependencies are indicated by bold arrows. Any additional dependencies that exist between displayed services are included as lighter gray arrows. The dependencies map for an incident may display disconnected branches if the impacted services are not connected to any of the same services.
The incident service dependencies map is read only. To manage dependencies, open the service dependencies map for a specific service.
The service dependencies map for an incident includes an option to Show Potential Root Cause of the incident. When selected, the map traces incidents in your service dependencies and highlights which services are suspected root causes. This can help reduce diagnosis time by giving you visibility into the scope of a problem across services, and indicating which services you should focus your efforts on.
The option is selected by default and highlights suspected root causes of the incident with a pulsing red glow around their borders. You can clear the check box if you want to view the map without root cause suggestions.
Potential root causes of an incident include services that:
- Have one or more active incident, and
- Are depended on (directly or indirectly) by impacted services associated with the incident, and
- Do not depend (directly or indirectly) on a service with one or more active incidents, or are in a dependency loop.
The service dependencies map for an incident includes an option to Show Potentially Impacted Applications for the incident. When selected, the map traces incidents in your service dependencies and highlights services with the 'Application' type that could be impacted by the incident. This gives you a wider perspective on the full scope of the problem and allows you to adjust your resolution and communication processes by displaying possible connections between potentially impacted applications and already impacted services.
The option is selected by default and highlights applications that may be impacted by the incident with a pulsing red glow around their borders. You can clear the check box if you want to view the map without potentially impacted application suggestions.
Potentially impacted applications of an incident include services that:
- Have the 'Application' service type, and
- Have one or more active incident, and
- Depend on (directly or indirectly) impacted services associated with the incident, and
- Are not depended on (directly or indirectly) by impacted services associated with the incident, or are in a dependency loop.
The service dependencies map for an incident includes an option within the Display Settings menu to Highlight Recent Changes within select timeframes (Past 15 Minutes, 1 Hour, 2 Hours, 6 Hours, 12 Hours, and 24 Hours). When selected, any services with changes in the specified timeframe are highlighted with a blue badge. This is useful for identifying whether recent changes to services may be responsible for issues experienced by other services that depend on them.
In the example above, the API service is identified as a potential root cause of the incident, but it depends on the Proxy service, which was recently changed. You can view the changes to the Proxy service to investigate whether these changes may have caused the incident with the API Service.
When viewing an incident service dependencies map, click the three dots on a service pill and select View Changes to open a drawer below the map with change records for the specific service. For more information, see View Service Changes.
When a service is reported as impacted, it's important to engage the team responsible for it to ensure the incident is resolved as quickly as possible. The service info card accessible from the incident dependencies map and the incident console includes a 'Notify to Engage' option that you can use to easily engage the owners of impacted services as resolvers.
To notify an impacted service owner to engage from the incident dependencies map:
- Click the name of the service to open its info card.
- Click Notify to Engage next to the name of the group that owns the service (this only appears if the service has an owner).
- The group is added to the Resolvers section of the console and the first on-call resource to respond to the notification will be listed below the name of the group. The name of the service will automatically be added as a resolver role at the top of the group resolver card.
To stop notifying a service owner to engage:
If you're in the process of notifying a service owner to engage and you determine you no longer require them, you can stop the notification process. To do this, click the options menu (vertical ellipses icon) next to the owner's resolver status and select Stop notifying. You can also stop notifying service owners from the Resolvers section of the Incident Console.
To renotify a service owner to engage:
If a service owner does not respond, you can renotify them to engage by clicking the options menu (vertical ellipses icon) and selecting Notify to Engage.You can also renotify service owners from the Resolvers section of the Incident Console.
If you no longer require a service owner to actively engage in resolving the incident, you can dismiss them from their role as a resolver. This is helpful for keeping an accurate record of when and how long the service owner was engaged. You can dismiss engaged service owners from the Resolvers section of the Incident Console.
Automations may be available for common tasks related to an impacted service, such as rolling back a previous deployment, running health checks, and collecting logs for information purposes.
When viewing an incident service dependencies map, click the three dots on an impacted service pill and select Run Automation to view a list of available automations that the impacted service is associated with. Select an automation to open its associated form, fill it out with the required details, and click Submit to run the automation.
If the service is not associated with any automations, the Run Automation option will be disabled.