> ## 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.

# Configure SLA

> GermainUX Service Level Agreements (SLAs) evaluate KPI data against configured thresholds, baselines or predictions.

Service
`Analytics`

Availability
2014.1 or later

> [card] [Open SLA Configuration](#open-sla-configuration)
>
> Launch from KPI page

> [card] [SLA Action Context](#sla-action-context)
>
> Use context values in actions

> [card] [SLA Objects](#sla-objects)
>
> Properties depend on SLA type

> [card] [Use Context Safely](#use-context-safely)
>
> Guard against missing values

## Overview

GermainUX Service Level Agreements (SLAs) evaluate KPI data against configured thresholds, baselines or predictions. An SLA can change a KPI's health status and trigger alerts or automated actions when its condition is met.

SLAs can be created through a guided wizard or managed directly from the SLA configuration screen.

## Open SLA Configuration

| Method | Navigation | Best used for |
| - | - | - |
| **SLA Wizard** | **Germain Workspace → Settings→ Wizards → SLA**  ![Configure SLA: Open SLA Configuration](https://mintcdn.com/germain-ux/npHkPTFCfiH3hzwe/images/main/configure-sla/image-20260824-181944.png?fit=max\&auto=format\&n=npHkPTFCfiH3hzwe\&q=85\&s=257becfa8e5fad6dea3baa92dc2e9d2c) | Creating an SLA through a guided workflow |
| **SLA Configuration** | **Germain Workspace → Settings → Analytics → SLA**  ![Configure SLA: Open SLA Configuration, image 2](https://mintcdn.com/germain-ux/npHkPTFCfiH3hzwe/images/main/configure-sla/image-20260824-181915.png?fit=max\&auto=format\&n=npHkPTFCfiH3hzwe\&q=85\&s=cc722d0a16b8985ff755cdfb1fb18b6f) | Viewing, editing or managing existing SLA definitions |

When the SLA Wizard is launched from a KPI configuration page, the KPI may already be selected and the KPI selector may be disabled.

## Create an SLA with the Wizard

**1. Go to Germain Workspace → Settings→ Wizards → SLA**

**2. Select the KPI to evaluate**

**3. Select the SLA type**

**4. Configure the measure, operator, threshold and evaluation period required by that SLA type**

**5. Select the health color or severity that should be assigned when the threshold is met**

**6. Select the alert template and action or actions to execute**

**7. Review the configuration**

**8. Select Finish to save the SLA**

After saving, validate the SLA with representative data before relying on it for production alerts or automation.

## Configure a Predictive SLA

A Predictive SLA uses historical KPI data to forecast a future value and take action when the prediction meets the configured condition.

### Steps

1. Go to **Germain Workspace → Settings→ Wizards → SLA**.
2. Select the KPI for which the prediction should be generated.
3. Select **Predictive-Curve** as the SLA type.

   ![Predictive-Curve on SLA wizard](https://mintcdn.com/germain-ux/npHkPTFCfiH3hzwe/images/main/configure-sla/image2020-11-10_15-38-23.png?fit=max\&auto=format\&n=npHkPTFCfiH3hzwe\&q=85\&s=903ebcedc59fd0e2a82d44cf546fa466)

   Predictive-Curve on SLA wizard - GermainUX
4. Select the measure to predict.
5. Configure the target value or threshold.
6. Specify the historical data granularity and the future period to predict.
7. Configure the comparison operator.
8. Select the alert template.
9. Select the action or actions to execute when the prediction violates the SLA.
10. Review and save the configuration.

The available prediction fields depend on the KPI, its measure and the GermainUX version.

See [Alert Template configuration](https://docs.germainux.com/main/templates.md) for information about editing notification content.

## Configure Smart Insights

Smart Insights evaluates a KPI against comparable business periods and identifies unusual increases, decreases or other deviations.

### Configure the Alert Action

Go to:

Germain Workspace
Settings
Automation
Alerts
analytical-sla-alert

Review the action and template used for analytical SLA notifications.

![Alert Action](https://mintcdn.com/germain-ux/npHkPTFCfiH3hzwe/images/main/configure-sla/image-20220902-161900.png?fit=max\&auto=format\&n=npHkPTFCfiH3hzwe\&q=85\&s=d3438e208b72d917be57a21e55805211)

Alert Action - GermainUX

### Configure the Smart Insights SLA

Go to:

Germain Workspace
Settings
Analytics
SLA
Smart Insights SLA – Day

![Smart Insights SLA – Day](https://mintcdn.com/germain-ux/npHkPTFCfiH3hzwe/images/main/configure-sla/image-20220902-161534.png?fit=max\&auto=format\&n=npHkPTFCfiH3hzwe\&q=85\&s=27276e4d0f37b693f32c25c2be770872)

Smart Insights SLA – Day - GermainUX

Review or modify the KPI scope, comparison period, thresholds and alert actions according to the behavior you want to detect.

Smart Insights can be configured for other business periods when supported, such as a week, month, quarter or equivalent recurring period.

## Validate an SLA

Before enabling production actions:

**1. Confirm that the KPI is receiving data**

**2. Verify that the selected measure exists for the KPI**

**3. Confirm the operator and threshold direction**

**4. Validate the evaluation and baseline periods**

**5. Test with known compliant and violating values**

**6. Confirm that the expected health color is assigned**

**7. Test the alert template with representative context**

**8. Confirm that every configured action executes only when intended**

For predictive and statistical SLAs, ensure that enough historical data exists to produce a meaningful result.

## SLA Action Context

When an SLA triggers an alert or action, GermainUX provides a `context` object. Templates, commands and action arguments can reference values from this object.

For example:

```text theme={null}
${context.fact.system.hostname}
${context.kpi.name}
```

The attributes available depend on whether the SLA is fact-based or statistical.

## Fact-Based SLA Context

| Attribute | Type | Description |
| - | - | - |
| `sla` | Object | Fact-Based SLA definition that produced the result |
| `threshold` | Object | Threshold that was evaluated |
| `kpi` | Object | KPI associated with the SLA |
| `fact` | Object | Individual fact evaluated by the SLA |
| `value` | Double | Numerical value evaluated |
| `resource` | String | Resource associated with the fact or SLA result |
| `violation` | Boolean | `true` for a violation notification and `false` for a recovery notification |
| `violationCount` | Integer | Number of consecutive violations recorded when state or activation tracking is enabled |

Use `context.violation` to distinguish a violation from a recovery in a stateful alert template.

## Statistical SLA Context

| Attribute | Type | Description |
| - | - | - |
| `sla` | Object | Statistical SLA definition that produced the result |
| `kpi` | Object | KPI associated with the SLA |
| `value` | Double | Primary calculated value evaluated by the SLA |
| `resource` | String | Resource or analytical scope associated with the result |
| `values` | `Map<String, Double>` | Additional calculated values available for the result |
| `timestamp` | Object | Time associated with the SLA evaluation |
| `result` | Object | Statistical result, including interval and measure information |

These attributes use the same `${context...}` reference pattern in supported templates and actions.

## Context Object Reference

## SLA Objects

The properties available on `context.sla` depend on the SLA type.

### FactBasedSLA

| Property | Type | Description |
| - | - | - |
| `name` | String | SLA name |
| `color` | Object | Health color assigned by the SLA |
| `constantValue` | String | Configured SLA threshold |

### AggregateSLA

| Property | Type | Description |
| - | - | - |
| `operator` | Object | Comparison operator |
| `thresholdValue` | Double | Configured threshold |
| `periodCount` | Integer | Number of evaluation periods |
| `periodGranularity` | Object | Unit of the evaluation period |
| `rank` | Double | Statistical rank or percentile when applicable |

### ColorPercentileSLA

| Property | Type | Description |
| - | - | - |
| `operator` | Object | Comparison operator |
| `thresholdValue` | Double | Required percentile or threshold |
| `periodCount` | Integer | Number of evaluation periods |
| `periodGranularity` | Object | Unit of the evaluation period |

### PercentChangeSLA

| Property | Type | Description |
| - | - | - |
| `operator` | Object | Comparison operator |
| `thresholdValue` | Double | Configured percentage or change threshold |
| `periodCount` | Integer | Number of periods evaluated |
| `periodGranularity` | Object | Unit of the current evaluation period |
| `baselineGranularity` | Object | Unit used for the baseline comparison |

### PredictiveSLA

| Property | Type | Description |
| - | - | - |
| `operator` | Object | Comparison operator |
| `thresholdValue` | Double | Predicted-value threshold |
| `periodCount` | Integer | Number of future periods evaluated |
| `periodGranularity` | Object | Unit of the prediction period |
| `dataGranularity` | Object | Granularity of historical input data |
| `extrapolateValue` | Boolean | Whether the value should be extrapolated |

## Threshold Object

| Property | Type | Description |
| - | - | - |
| `name` | String | Threshold name |
| `color` | Color | Health color associated with the threshold |
| `thresholdValue` | Double | Numerical threshold |
| `thresholdExpression` | String | Optional expression that controls whether the threshold applies |

## KPI Object

| Property | Type | Description |
| - | - | - |
| `name` | String | KPI name |
| `description` | String | KPI description |

## Fact Object

The structure of `context.fact` depends on the KPI's data model. See the GermainUX [Data Model](https://docs.germainux.com/main/data-model.md) for available fact types and fields.

## Statistical Result Object

| Property | Type | Description |
| - | - | - |
| `currentInterval` | Object | Current period evaluated by the SLA |
| `currentInterval.start` | Object | Start of the current period |
| `currentInterval.end` | Object | End of the current period |
| `baselineInterval` | Object | Baseline period used for comparison |
| `baselineInterval.start` | Object | Start of the baseline period |
| `baselineInterval.end` | Object | End of the baseline period |
| `measure` | String | Measure calculated by the statistical SLA |
| `unit` | String | Unit associated with the calculated result |

## Use Context Safely

* Confirm that a property is available for the selected SLA and KPI type.
* Handle optional or null values in templates and actions.
* Avoid placing passwords, tokens or other secrets in SLA templates.
* Do not pass untrusted fact values directly into executable commands.
* Test violation and recovery templates separately when Stateful behavior is enabled.
* Validate every automated action in a non-production environment when possible.

## 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.