Custom Correlations

What are custom correlations?

A custom correlation allows you to do two different things:

  • Create a new link between two objects in your Knowledge Graph.
    Usually, links between objects are automatically indexed with their data source, but you can add new custom links. This is especially useful if you want to connect data from two different data sources, for example connecting objects from the GitHub data source to objects from the Azure DevOps data source.

  • Merge objects from different data sources into one object.

How does creating a link work?

Custom correlation rules can be added from Settings > Advanced > Correlations

You can create a link based on the value of properties. If the properties of two different objects have the exact same value, a link between them can be established.

Since a link between objects always has a direction, it matters which one is the From and which one is the To object. You describe the kind of relationship with the Association Label field, for example monitors, hosts, is owned by, etc. This way, you create a custom correlation in the format
From object --Association Label--> To object

To create useful connections you have to ask yourself "Is there are good reason the values of those two properties are identical?" If that's the case, it probably makes sense to base a custom correlation on those values to make the connection visible in the Knowledge Graph.

Example:

From:

Type: person
Property: email-address

To:

Type: project
Property: owner-email-address

Association label: manages

This creates a link between projects and their owners. If the value of a person's property email-address matches a project's property owner-email-address there will be a connection in the Knowledge Graph that looks like this:
person--manages-->project

How does merging work?

Automatic merge

If different data sources index the same object, the different objects get automatically merged into one object in SquaredUp. For example a server that runs as server in Azure, is monitored by Pingdom, and is part of an app in NewRelic gets indexed from each of those data sources, but ends up being just one object in SquaredUp, with all the properties it gets from all the different data sources.

Manual merge

You can merge objects yourself by using custom correlations. To merge objects from different data sources, their type and at least one other property must be identical. While links between two objects can be created just based on the value of a property, for merging objects the name of the property and its value must be identical.

After selecting the same type and property, enter "is" as the Association Label. The "is" label tells SquaredUp not to create a link between those objects but instead to merge them into one object if the values of the property match.

Example:

Let's say you indexed person objects from two different data sources. Both data sources use the type person and both types have a property called name. Instead of seeing two separate objects for the same person, you can merge them by creating this correlation (as long as the name is spelled exactly the same in the name property):

From:
Type: person
Property: name

To:
Type: person
Property: name

Association label: is


Have more questions or facing an issue?