Skip to main content

Creating a composite

Reading time: 0 minute(s) (0 words)

This article provides prerequisites and steps to create a composite.

You can create a composite using Nobl9 web, sloctl and Terraform.

sloctl version

For full functionality, use sloctl version v0.3.0 or later.

Access requirements

To create a composite, the following permissions are required (fields with asterisks are mandatory):

ResourcePermission
Project*The Create projects permission
SLO (component)*The View permission to necessary components
Composite*The Create/Edit permission to SLOs in the required project
Alert policyThe Edit and apply permission to the required alert policies
Alert methodThe Apply permission to the necessary alert methods

Nobl9 Web

The Composite SLO wizard guides you through setting up Composite SLOs step by step. To access the Wizard, go to the SLO grid view, click Create SLO, and select Composite.

In this step, you provide basic details about your composite SLO to establish its identity and context.

  • Display name: The name displayed for your composite SLO.
  • Project: Select the project to which the composite SLO belongs.
  • Service: Specify the associated service.
  • Description (Optional): Add context or explanation for your Composite SLO.
  • Labels (Optional): Attach metadata for organization and filtering.
  • Links (Optional): Add references or supporting materials.
alerting center example

sloctl

  1. Create a YAML file following the provided template:
- apiVersion: n9/v1alpha
kind: SLO
metadata:
name: string # Mandatory
displayName: string # Optional
project: string # Mandatory
spec:
description: string # Optional
alertPolicies: array of alert policy names # Optional
labels: # A map of labels you want to attach to the composite
"key_1": # Label's key
- "value_1" # Label's value
- "value_2" # Label's value
"key_2": # Label's key
- "value_1" # Label's value
- "value_2" # Label's value
attachments: # Optional, links you need to attach to your composite
- displayName: string # Optional
url: url # Mandatory when using attachments
budgetingMethod: Occurrences | Timeslices # Mandatory
objectives:
- displayName: string # Optional
name: string # Mandatory
target: number # Mandatory
composite:
maxDelay: 1m-1h # Mandatory
components:
objectives:
- project: string # Mandatory
slo: string # Mandatory
objective: string # Mandatory
weight: float64 # Mandatory
whenDelayed: CountAsGood | CountAsBad | Ignore # Mandatory
service: string # Mandatory
timeWindows:
- unit: enum # Mandatory, Day | Week | Month | Quarter | Year for calendar-aligned; Minute | Hour | Day for rolling
count: number # Mandatory
isRolling: boolean # Mandatory, true for the rolling time window, false for calendar-aligned
calendar:
startTime: a timestamp in the 24h format without the time zone # Mandatory for calendar-aligned time windows
timeZone: string # Mandatory for calendar-aligned time windows

Read the field reference for more information.

  1. Run sloctl apply -f %path-to-your-YAML%

As a result, your composite appears in the grid under the Service Level Objectives Nobl9 Web section.

objective limit

You can add up to 20 objectives per single composite SLO