The dependency graph allows you to visualize all of the connections between your services and resources. You can access the graph under Tools in the navigation bar.
By default, the dependency graph will display all of your services and resources, unless you have over 100. If you have over 100 services and resources, the graph will initially be blank, and you’ll need to select a service or resource to display dependencies.
Within the graph, nodes that represent services appear in purple with an </> icon. Nodes that represent resources will appear with the color and icon selected for the corresponding resource definition.
You can click and drag the plane to adjust your view, and you can zoom in or out. You can also drag and reposition services within the graph to manually modify its layout.
Select a service or resource
You can select a service or a resource by clicking within the graph or by using the Filters on the right-hand side.
When you select a service or resource, the graph will display one degree of dependencies in and out. The service or resource you selected will be highlighted and listed under Entity Details.
In this example, we’ve selected Feed calculator job. At a glance, we can see that Feed calculator job is a service that depends on five services. We can also easily see that the Kafka Topic named Orders Data Event Stream depends on Feed calculator job.
If you click on any of services or resources listed under the selected entity, you’ll be taken to that entity’s home page. If you click on a service or resource within the graph, the view and details on the will update accordingly.
When you have selected an entity, you can adjust your view under Options. You can filter your view further, and you can also determine how many degrees in and out you want to display. You can also Hide nodes without dependencies.
Note: Secondary dependencies will not appear within the list, even if they display in the graph. For example, Feed calculator job does not directly depend on Autocomplete parser or Retail image labeler, so these services appear only in the graph.
Filtering and syncing
You can filter the data in the graph by Source and Group.
This makes it easy to visualize specific types of services and resources to see how they interact. If you’re using service groups to describe product areas or domains, filtering by service group will be particularly useful.
Scorecard data
You can also overlay scorecard data to determine if there are any bottlenecks. With this view, you can also easily distinguish services and resource by their performance. Select a scorecard from the dropdown list under Data display.
While in Scorecard view, the graph will include a key in the northeast corner that displays with your levels. You can choose to display or hide entities without scores from this view, if you just want to focus on entities meeting a certain baseline.
When you select an entity with scorecard view enabled, you can gain more insight into its performance. In the example below, the service Profile management, which is at the Silver level, depends on several services that are at the Gold level, which may contribute to Profile management's solid performance.
On the other hand, if a service is not meeting standards, but depends on a number of services that are performing well, you can deduce that the problem is more specific to that service alone.
Overlaying scorecard data can help you find critical points of failure and potential risk areas. Focus in on your most critical services to ensure that their dependencies are performing well.
Adding dependencies
There are three main ways to get dependencies into the graph:
- Within Cortex, you can manually define dependencies by hardcoding them into service and resource YAML files.
- If you have an internal request tracing tool, you can import that data into Cortex via an API.
- If you’ve established an integration with an APM, like Datadog, Cortex will automatically import those dependencies — as long as the service name is equivalent in Cortex and your APM, dependencies will sync automatically.
Check out our docs to learn more about adding dependencies.
Comments
0 comments
Article is closed for comments.