> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exact-Match Correlation

> Exact-Match Correlation combines related data points from multiple sources that share a common identifier, such as a process ID, session ID, or username.

Service
`Analytics`

Availability
8.6.0 or later

> [card] [Siebel Crash Example](#example-oracle-siebel-crm-crash)
>
> Linking records after crashes

> [card] [Create a Correlation Scenario](#create-a-correlation-scenario)
>
> Define shared correlation keys

> [card] [Create a KPI for the Correlated Data](#create-a-kpi-for-the-correlated-data)
>
> Track consolidated events

> [card] [Configuration Considerations](#configuration-considerations)
>
> Checks before enabling scenario

**Configure Exact-Match Correlation**

Exact-Match Correlation combines related data points from multiple sources when they share a common identifier—such as a process ID, thread ID, session ID, correlation ID, username, or server name.

GermainUX uses the matching properties to create a single correlated data point containing information from the original events.

This is useful when multiple sources describe different parts of the same incident, transaction, or business event.

## Example: Oracle Siebel CRM Crash

When an Oracle Siebel CRM component crashes, GermainUX may collect related data from several sources:

* Windows Event Log
* Crash dump
* Flight Data Recorder (FDR) file

Exact-Match Correlation can group these records using a shared key—such as the server name and process ID—and generate a single crash event containing the relevant information from all three sources.

## Create a Correlation Scenario

### 1. Open Correlation Configuration

Go to:

**Germain Workspace > Analytics > Correlation**

Under **Correlation Scenarios**, select the **Add** icon.

### 2. Define the Scenario

Configure the general properties of the correlation scenario:

| Field | Description |
| - | - |
| **Name** | Unique name for the scenario. This value can also be used by the KPI that displays the correlated output. |
| **Retention** | Length of time GermainUX retains unmatched or partially matched data in the correlation cache. Set this value long enough for all related source events to arrive. |
| **Type** | Data-model type used to store the correlated output. |
| **Name Generator** | MVEL expression used to populate the `name` field of the correlated data point. |

For the Siebel crash example, the retention could be set to one hour if all related crash records are expected to arrive within that period.

### 3. Select the Source KPIs

Select the KPIs containing the raw data to correlate.

For the Siebel crash scenario, these may include KPIs containing:

* Event Log crash records
* Crash dump information
* FDR records

Any incoming data point matching one of the selected KPIs is evaluated by the correlation service as part of this scenario.

### 4. Define the Correlation Type and Matching Key

Configure how GermainUX determines that incoming records belong to the same event.

| Field | Description |
| - | - |
| **Name** | Unique identifier for this correlation type. |
| **Key Expression** | MVEL expression that generates the matching key from each source record. Records that produce the same key are correlated. |
| **Filters** | Optional conditions that determine which source records belong to this correlation type. |

For example, a Siebel crash correlation key could combine:

```text theme={null}
<server name>|<process ID>
```

![Exact-Match Correlation: 4. Define the Correlation Type and Matching Key](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/exact-match-correlation/image2022-2-9_12-42-50.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=ee294da85de5d122319cfb3eeb47a012)

The appropriate key depends on the monitored use case. Other examples include:

* `sessionId`
* `correlationId`
* `threadId`
* `username`
* A combination of application, host, and transaction ID

The Key Expression must generate the same value from every source record that should be combined.

![Exact-Match Correlation: 4. Define the Correlation Type and Matching Key, image 2](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/exact-match-correlation/image2022-2-9_12-39-50.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=057196c1b25f990a733f866adab437a0)

### 5. Configure Fields to Exclude

Define which fields should not be copied from the raw records into the correlated output.

Any field not excluded can be transferred to the correlated data point. For example, if `system.name` is not excluded, the correlated event can retain the system name from its source records.

Exclude fields when they are:

* Irrelevant to the correlated result
* Duplicated across sources
* Likely to conflict
* Too large or unnecessary to retain
* Sensitive and not required for analysis

### 6. Save the Scenario

Save the correlation scenario.

GermainUX will begin evaluating incoming data against the selected KPIs, filters, and Key Expressions.

## Create a KPI for the Correlated Data

To display and analyze the correlated output:

**1. Go to Germain Workspace > Analytics > KPIs**

**2. Create a KPI**

**3. Set its Fact Class to the output type configured in the correlation scenario**

**4. Set its Name to match the name generated by the scenario**

**5. Save the KPI**

**6. Add the KPI to the appropriate dashboard**

The resulting KPI can be used to monitor, segment, alert on, and investigate the consolidated events.

## Configuration Considerations

Before enabling the scenario, confirm that:

* Every related source contains the fields required by the Key Expression.
* The generated key is specific enough to avoid combining unrelated events.
* Retention is long enough to accommodate delays between data sources.
* Filters exclude irrelevant source records.
* The output KPI matches the scenario’s Fact Class and generated name.

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.