elasticstack.KibanaSlo
Explore with Pulumi AI
Creates or updates a Kibana SLO. See the Kibana SLO docs and dev docs for more information.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as elasticstack from "@pulumi/elasticstack";
const authServerLatency = new elasticstack.KibanaSlo("authServerLatency", {
apmLatencyIndicator: {
environment: "production",
index: "metrics-apm*",
service: "auth",
threshold: 500,
transactionName: "GET /auth",
transactionType: "request",
},
budgetingMethod: "timeslices",
description: "Ensures auth server is responding in time",
objective: {
target: 0.95,
timesliceTarget: 0.95,
timesliceWindow: "5m",
},
settings: {
frequency: "5m",
syncDelay: "5m",
},
timeWindow: {
duration: "7d",
type: "rolling",
},
});
const authServerAvailability = new elasticstack.KibanaSlo("authServerAvailability", {
apmAvailabilityIndicator: {
environment: "production",
index: "metrics-apm*",
service: "my-service",
transactionName: "GET /sup/dawg",
transactionType: "request",
},
budgetingMethod: "timeslices",
description: "Ensures auth server is responding in time",
objective: {
target: 0.95,
timesliceTarget: 0.95,
timesliceWindow: "5m",
},
settings: {
frequency: "5m",
syncDelay: "5m",
},
timeWindow: {
duration: "7d",
type: "rolling",
},
});
const customKql = new elasticstack.KibanaSlo("customKql", {
budgetingMethod: "timeslices",
description: "custom kql",
kqlCustomIndicator: {
filter: "labels.groupId: group-0",
good: "latency < 300",
index: "my-index",
timestampField: "custom_timestamp",
total: "*",
},
objective: {
target: 0.95,
timesliceTarget: 0.95,
timesliceWindow: "5m",
},
settings: {
frequency: "5m",
syncDelay: "5m",
},
timeWindow: {
duration: "7d",
type: "rolling",
},
});
//Available from 8.10.0
const customHistogram = new elasticstack.KibanaSlo("customHistogram", {
budgetingMethod: "timeslices",
description: "custom histogram",
histogramCustomIndicator: {
filter: "labels.groupId: group-0",
good: {
aggregation: "value_count",
field: "test",
filter: "latency < 300",
},
index: "my-index",
timestampField: "custom_timestamp",
total: {
aggregation: "value_count",
field: "test",
},
},
objective: {
target: 0.95,
timesliceTarget: 0.95,
timesliceWindow: "5m",
},
tags: [
"tag-1",
"another_tag",
],
timeWindow: {
duration: "7d",
type: "rolling",
},
});
//Available from 8.10.0
const customMetric = new elasticstack.KibanaSlo("customMetric", {
budgetingMethod: "timeslices",
description: "custom kql",
metricCustomIndicator: {
good: {
equation: "A",
metrics: [{
aggregation: "sum",
field: "processor.processed",
name: "A",
}],
},
index: "my-index",
total: {
equation: "A",
metrics: [{
aggregation: "sum",
field: "processor.accepted",
name: "A",
}],
},
},
objective: {
target: 0.95,
timesliceTarget: 0.95,
timesliceWindow: "5m",
},
timeWindow: {
duration: "7d",
type: "rolling",
},
});
import pulumi
import pulumi_elasticstack as elasticstack
auth_server_latency = elasticstack.KibanaSlo("authServerLatency",
apm_latency_indicator={
"environment": "production",
"index": "metrics-apm*",
"service": "auth",
"threshold": 500,
"transaction_name": "GET /auth",
"transaction_type": "request",
},
budgeting_method="timeslices",
description="Ensures auth server is responding in time",
objective={
"target": 0.95,
"timeslice_target": 0.95,
"timeslice_window": "5m",
},
settings={
"frequency": "5m",
"sync_delay": "5m",
},
time_window={
"duration": "7d",
"type": "rolling",
})
auth_server_availability = elasticstack.KibanaSlo("authServerAvailability",
apm_availability_indicator={
"environment": "production",
"index": "metrics-apm*",
"service": "my-service",
"transaction_name": "GET /sup/dawg",
"transaction_type": "request",
},
budgeting_method="timeslices",
description="Ensures auth server is responding in time",
objective={
"target": 0.95,
"timeslice_target": 0.95,
"timeslice_window": "5m",
},
settings={
"frequency": "5m",
"sync_delay": "5m",
},
time_window={
"duration": "7d",
"type": "rolling",
})
custom_kql = elasticstack.KibanaSlo("customKql",
budgeting_method="timeslices",
description="custom kql",
kql_custom_indicator={
"filter": "labels.groupId: group-0",
"good": "latency < 300",
"index": "my-index",
"timestamp_field": "custom_timestamp",
"total": "*",
},
objective={
"target": 0.95,
"timeslice_target": 0.95,
"timeslice_window": "5m",
},
settings={
"frequency": "5m",
"sync_delay": "5m",
},
time_window={
"duration": "7d",
"type": "rolling",
})
#Available from 8.10.0
custom_histogram = elasticstack.KibanaSlo("customHistogram",
budgeting_method="timeslices",
description="custom histogram",
histogram_custom_indicator={
"filter": "labels.groupId: group-0",
"good": {
"aggregation": "value_count",
"field": "test",
"filter": "latency < 300",
},
"index": "my-index",
"timestamp_field": "custom_timestamp",
"total": {
"aggregation": "value_count",
"field": "test",
},
},
objective={
"target": 0.95,
"timeslice_target": 0.95,
"timeslice_window": "5m",
},
tags=[
"tag-1",
"another_tag",
],
time_window={
"duration": "7d",
"type": "rolling",
})
#Available from 8.10.0
custom_metric = elasticstack.KibanaSlo("customMetric",
budgeting_method="timeslices",
description="custom kql",
metric_custom_indicator={
"good": {
"equation": "A",
"metrics": [{
"aggregation": "sum",
"field": "processor.processed",
"name": "A",
}],
},
"index": "my-index",
"total": {
"equation": "A",
"metrics": [{
"aggregation": "sum",
"field": "processor.accepted",
"name": "A",
}],
},
},
objective={
"target": 0.95,
"timeslice_target": 0.95,
"timeslice_window": "5m",
},
time_window={
"duration": "7d",
"type": "rolling",
})
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/elasticstack/elasticstack"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := elasticstack.NewKibanaSlo(ctx, "authServerLatency", &elasticstack.KibanaSloArgs{
ApmLatencyIndicator: &elasticstack.KibanaSloApmLatencyIndicatorArgs{
Environment: pulumi.String("production"),
Index: pulumi.String("metrics-apm*"),
Service: pulumi.String("auth"),
Threshold: pulumi.Float64(500),
TransactionName: pulumi.String("GET /auth"),
TransactionType: pulumi.String("request"),
},
BudgetingMethod: pulumi.String("timeslices"),
Description: pulumi.String("Ensures auth server is responding in time"),
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0.95),
TimesliceTarget: pulumi.Float64(0.95),
TimesliceWindow: pulumi.String("5m"),
},
Settings: &elasticstack.KibanaSloSettingsArgs{
Frequency: pulumi.String("5m"),
SyncDelay: pulumi.String("5m"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("7d"),
Type: pulumi.String("rolling"),
},
})
if err != nil {
return err
}
_, err = elasticstack.NewKibanaSlo(ctx, "authServerAvailability", &elasticstack.KibanaSloArgs{
ApmAvailabilityIndicator: &elasticstack.KibanaSloApmAvailabilityIndicatorArgs{
Environment: pulumi.String("production"),
Index: pulumi.String("metrics-apm*"),
Service: pulumi.String("my-service"),
TransactionName: pulumi.String("GET /sup/dawg"),
TransactionType: pulumi.String("request"),
},
BudgetingMethod: pulumi.String("timeslices"),
Description: pulumi.String("Ensures auth server is responding in time"),
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0.95),
TimesliceTarget: pulumi.Float64(0.95),
TimesliceWindow: pulumi.String("5m"),
},
Settings: &elasticstack.KibanaSloSettingsArgs{
Frequency: pulumi.String("5m"),
SyncDelay: pulumi.String("5m"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("7d"),
Type: pulumi.String("rolling"),
},
})
if err != nil {
return err
}
_, err = elasticstack.NewKibanaSlo(ctx, "customKql", &elasticstack.KibanaSloArgs{
BudgetingMethod: pulumi.String("timeslices"),
Description: pulumi.String("custom kql"),
KqlCustomIndicator: &elasticstack.KibanaSloKqlCustomIndicatorArgs{
Filter: pulumi.String("labels.groupId: group-0"),
Good: pulumi.String("latency < 300"),
Index: pulumi.String("my-index"),
TimestampField: pulumi.String("custom_timestamp"),
Total: pulumi.String("*"),
},
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0.95),
TimesliceTarget: pulumi.Float64(0.95),
TimesliceWindow: pulumi.String("5m"),
},
Settings: &elasticstack.KibanaSloSettingsArgs{
Frequency: pulumi.String("5m"),
SyncDelay: pulumi.String("5m"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("7d"),
Type: pulumi.String("rolling"),
},
})
if err != nil {
return err
}
// Available from 8.10.0
_, err = elasticstack.NewKibanaSlo(ctx, "customHistogram", &elasticstack.KibanaSloArgs{
BudgetingMethod: pulumi.String("timeslices"),
Description: pulumi.String("custom histogram"),
HistogramCustomIndicator: &elasticstack.KibanaSloHistogramCustomIndicatorArgs{
Filter: pulumi.String("labels.groupId: group-0"),
Good: &elasticstack.KibanaSloHistogramCustomIndicatorGoodArgs{
Aggregation: pulumi.String("value_count"),
Field: pulumi.String("test"),
Filter: pulumi.String("latency < 300"),
},
Index: pulumi.String("my-index"),
TimestampField: pulumi.String("custom_timestamp"),
Total: &elasticstack.KibanaSloHistogramCustomIndicatorTotalArgs{
Aggregation: pulumi.String("value_count"),
Field: pulumi.String("test"),
},
},
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0.95),
TimesliceTarget: pulumi.Float64(0.95),
TimesliceWindow: pulumi.String("5m"),
},
Tags: pulumi.StringArray{
pulumi.String("tag-1"),
pulumi.String("another_tag"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("7d"),
Type: pulumi.String("rolling"),
},
})
if err != nil {
return err
}
// Available from 8.10.0
_, err = elasticstack.NewKibanaSlo(ctx, "customMetric", &elasticstack.KibanaSloArgs{
BudgetingMethod: pulumi.String("timeslices"),
Description: pulumi.String("custom kql"),
MetricCustomIndicator: &elasticstack.KibanaSloMetricCustomIndicatorArgs{
Good: &elasticstack.KibanaSloMetricCustomIndicatorGoodArgs{
Equation: pulumi.String("A"),
Metrics: elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArray{
&elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArgs{
Aggregation: pulumi.String("sum"),
Field: pulumi.String("processor.processed"),
Name: pulumi.String("A"),
},
},
},
Index: pulumi.String("my-index"),
Total: &elasticstack.KibanaSloMetricCustomIndicatorTotalArgs{
Equation: pulumi.String("A"),
Metrics: elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArray{
&elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArgs{
Aggregation: pulumi.String("sum"),
Field: pulumi.String("processor.accepted"),
Name: pulumi.String("A"),
},
},
},
},
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0.95),
TimesliceTarget: pulumi.Float64(0.95),
TimesliceWindow: pulumi.String("5m"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("7d"),
Type: pulumi.String("rolling"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Elasticstack = Pulumi.Elasticstack;
return await Deployment.RunAsync(() =>
{
var authServerLatency = new Elasticstack.KibanaSlo("authServerLatency", new()
{
ApmLatencyIndicator = new Elasticstack.Inputs.KibanaSloApmLatencyIndicatorArgs
{
Environment = "production",
Index = "metrics-apm*",
Service = "auth",
Threshold = 500,
TransactionName = "GET /auth",
TransactionType = "request",
},
BudgetingMethod = "timeslices",
Description = "Ensures auth server is responding in time",
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0.95,
TimesliceTarget = 0.95,
TimesliceWindow = "5m",
},
Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
{
Frequency = "5m",
SyncDelay = "5m",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "7d",
Type = "rolling",
},
});
var authServerAvailability = new Elasticstack.KibanaSlo("authServerAvailability", new()
{
ApmAvailabilityIndicator = new Elasticstack.Inputs.KibanaSloApmAvailabilityIndicatorArgs
{
Environment = "production",
Index = "metrics-apm*",
Service = "my-service",
TransactionName = "GET /sup/dawg",
TransactionType = "request",
},
BudgetingMethod = "timeslices",
Description = "Ensures auth server is responding in time",
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0.95,
TimesliceTarget = 0.95,
TimesliceWindow = "5m",
},
Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
{
Frequency = "5m",
SyncDelay = "5m",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "7d",
Type = "rolling",
},
});
var customKql = new Elasticstack.KibanaSlo("customKql", new()
{
BudgetingMethod = "timeslices",
Description = "custom kql",
KqlCustomIndicator = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorArgs
{
Filter = "labels.groupId: group-0",
Good = "latency < 300",
Index = "my-index",
TimestampField = "custom_timestamp",
Total = "*",
},
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0.95,
TimesliceTarget = 0.95,
TimesliceWindow = "5m",
},
Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
{
Frequency = "5m",
SyncDelay = "5m",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "7d",
Type = "rolling",
},
});
//Available from 8.10.0
var customHistogram = new Elasticstack.KibanaSlo("customHistogram", new()
{
BudgetingMethod = "timeslices",
Description = "custom histogram",
HistogramCustomIndicator = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorArgs
{
Filter = "labels.groupId: group-0",
Good = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorGoodArgs
{
Aggregation = "value_count",
Field = "test",
Filter = "latency < 300",
},
Index = "my-index",
TimestampField = "custom_timestamp",
Total = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorTotalArgs
{
Aggregation = "value_count",
Field = "test",
},
},
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0.95,
TimesliceTarget = 0.95,
TimesliceWindow = "5m",
},
Tags = new[]
{
"tag-1",
"another_tag",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "7d",
Type = "rolling",
},
});
//Available from 8.10.0
var customMetric = new Elasticstack.KibanaSlo("customMetric", new()
{
BudgetingMethod = "timeslices",
Description = "custom kql",
MetricCustomIndicator = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorArgs
{
Good = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodArgs
{
Equation = "A",
Metrics = new[]
{
new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodMetricArgs
{
Aggregation = "sum",
Field = "processor.processed",
Name = "A",
},
},
},
Index = "my-index",
Total = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalArgs
{
Equation = "A",
Metrics = new[]
{
new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalMetricArgs
{
Aggregation = "sum",
Field = "processor.accepted",
Name = "A",
},
},
},
},
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0.95,
TimesliceTarget = 0.95,
TimesliceWindow = "5m",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "7d",
Type = "rolling",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.elasticstack.KibanaSlo;
import com.pulumi.elasticstack.KibanaSloArgs;
import com.pulumi.elasticstack.inputs.KibanaSloApmLatencyIndicatorArgs;
import com.pulumi.elasticstack.inputs.KibanaSloObjectiveArgs;
import com.pulumi.elasticstack.inputs.KibanaSloSettingsArgs;
import com.pulumi.elasticstack.inputs.KibanaSloTimeWindowArgs;
import com.pulumi.elasticstack.inputs.KibanaSloApmAvailabilityIndicatorArgs;
import com.pulumi.elasticstack.inputs.KibanaSloKqlCustomIndicatorArgs;
import com.pulumi.elasticstack.inputs.KibanaSloHistogramCustomIndicatorArgs;
import com.pulumi.elasticstack.inputs.KibanaSloHistogramCustomIndicatorGoodArgs;
import com.pulumi.elasticstack.inputs.KibanaSloHistogramCustomIndicatorTotalArgs;
import com.pulumi.elasticstack.inputs.KibanaSloMetricCustomIndicatorArgs;
import com.pulumi.elasticstack.inputs.KibanaSloMetricCustomIndicatorGoodArgs;
import com.pulumi.elasticstack.inputs.KibanaSloMetricCustomIndicatorTotalArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var authServerLatency = new KibanaSlo("authServerLatency", KibanaSloArgs.builder()
.apmLatencyIndicator(KibanaSloApmLatencyIndicatorArgs.builder()
.environment("production")
.index("metrics-apm*")
.service("auth")
.threshold(500)
.transactionName("GET /auth")
.transactionType("request")
.build())
.budgetingMethod("timeslices")
.description("Ensures auth server is responding in time")
.objective(KibanaSloObjectiveArgs.builder()
.target(0.95)
.timesliceTarget(0.95)
.timesliceWindow("5m")
.build())
.settings(KibanaSloSettingsArgs.builder()
.frequency("5m")
.syncDelay("5m")
.build())
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("7d")
.type("rolling")
.build())
.build());
var authServerAvailability = new KibanaSlo("authServerAvailability", KibanaSloArgs.builder()
.apmAvailabilityIndicator(KibanaSloApmAvailabilityIndicatorArgs.builder()
.environment("production")
.index("metrics-apm*")
.service("my-service")
.transactionName("GET /sup/dawg")
.transactionType("request")
.build())
.budgetingMethod("timeslices")
.description("Ensures auth server is responding in time")
.objective(KibanaSloObjectiveArgs.builder()
.target(0.95)
.timesliceTarget(0.95)
.timesliceWindow("5m")
.build())
.settings(KibanaSloSettingsArgs.builder()
.frequency("5m")
.syncDelay("5m")
.build())
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("7d")
.type("rolling")
.build())
.build());
var customKql = new KibanaSlo("customKql", KibanaSloArgs.builder()
.budgetingMethod("timeslices")
.description("custom kql")
.kqlCustomIndicator(KibanaSloKqlCustomIndicatorArgs.builder()
.filter("labels.groupId: group-0")
.good("latency < 300")
.index("my-index")
.timestampField("custom_timestamp")
.total("*")
.build())
.objective(KibanaSloObjectiveArgs.builder()
.target(0.95)
.timesliceTarget(0.95)
.timesliceWindow("5m")
.build())
.settings(KibanaSloSettingsArgs.builder()
.frequency("5m")
.syncDelay("5m")
.build())
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("7d")
.type("rolling")
.build())
.build());
//Available from 8.10.0
var customHistogram = new KibanaSlo("customHistogram", KibanaSloArgs.builder()
.budgetingMethod("timeslices")
.description("custom histogram")
.histogramCustomIndicator(KibanaSloHistogramCustomIndicatorArgs.builder()
.filter("labels.groupId: group-0")
.good(KibanaSloHistogramCustomIndicatorGoodArgs.builder()
.aggregation("value_count")
.field("test")
.filter("latency < 300")
.build())
.index("my-index")
.timestampField("custom_timestamp")
.total(KibanaSloHistogramCustomIndicatorTotalArgs.builder()
.aggregation("value_count")
.field("test")
.build())
.build())
.objective(KibanaSloObjectiveArgs.builder()
.target(0.95)
.timesliceTarget(0.95)
.timesliceWindow("5m")
.build())
.tags(
"tag-1",
"another_tag")
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("7d")
.type("rolling")
.build())
.build());
//Available from 8.10.0
var customMetric = new KibanaSlo("customMetric", KibanaSloArgs.builder()
.budgetingMethod("timeslices")
.description("custom kql")
.metricCustomIndicator(KibanaSloMetricCustomIndicatorArgs.builder()
.good(KibanaSloMetricCustomIndicatorGoodArgs.builder()
.equation("A")
.metrics(KibanaSloMetricCustomIndicatorGoodMetricArgs.builder()
.aggregation("sum")
.field("processor.processed")
.name("A")
.build())
.build())
.index("my-index")
.total(KibanaSloMetricCustomIndicatorTotalArgs.builder()
.equation("A")
.metrics(KibanaSloMetricCustomIndicatorTotalMetricArgs.builder()
.aggregation("sum")
.field("processor.accepted")
.name("A")
.build())
.build())
.build())
.objective(KibanaSloObjectiveArgs.builder()
.target(0.95)
.timesliceTarget(0.95)
.timesliceWindow("5m")
.build())
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("7d")
.type("rolling")
.build())
.build());
}
}
resources:
authServerLatency:
type: elasticstack:KibanaSlo
properties:
apmLatencyIndicator:
environment: production
index: metrics-apm*
service: auth
threshold: 500
transactionName: GET /auth
transactionType: request
budgetingMethod: timeslices
description: Ensures auth server is responding in time
objective:
target: 0.95
timesliceTarget: 0.95
timesliceWindow: 5m
settings:
frequency: 5m
syncDelay: 5m
timeWindow:
duration: 7d
type: rolling
authServerAvailability:
type: elasticstack:KibanaSlo
properties:
apmAvailabilityIndicator:
environment: production
index: metrics-apm*
service: my-service
transactionName: GET /sup/dawg
transactionType: request
budgetingMethod: timeslices
description: Ensures auth server is responding in time
objective:
target: 0.95
timesliceTarget: 0.95
timesliceWindow: 5m
settings:
frequency: 5m
syncDelay: 5m
timeWindow:
duration: 7d
type: rolling
customKql:
type: elasticstack:KibanaSlo
properties:
budgetingMethod: timeslices
description: custom kql
kqlCustomIndicator:
filter: 'labels.groupId: group-0'
good: latency < 300
index: my-index
timestampField: custom_timestamp
total: '*'
objective:
target: 0.95
timesliceTarget: 0.95
timesliceWindow: 5m
settings:
frequency: 5m
syncDelay: 5m
timeWindow:
duration: 7d
type: rolling
# Available from 8.10.0
customHistogram:
type: elasticstack:KibanaSlo
properties:
budgetingMethod: timeslices
description: custom histogram
histogramCustomIndicator:
filter: 'labels.groupId: group-0'
good:
aggregation: value_count
field: test
filter: latency < 300
index: my-index
timestampField: custom_timestamp
total:
aggregation: value_count
field: test
objective:
target: 0.95
timesliceTarget: 0.95
timesliceWindow: 5m
tags:
- tag-1
- another_tag
timeWindow:
duration: 7d
type: rolling
# Available from 8.10.0
customMetric:
type: elasticstack:KibanaSlo
properties:
budgetingMethod: timeslices
description: custom kql
metricCustomIndicator:
good:
equation: A
metrics:
- aggregation: sum
field: processor.processed
name: A
index: my-index
total:
equation: A
metrics:
- aggregation: sum
field: processor.accepted
name: A
objective:
target: 0.95
timesliceTarget: 0.95
timesliceWindow: 5m
timeWindow:
duration: 7d
type: rolling
Create KibanaSlo Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new KibanaSlo(name: string, args: KibanaSloArgs, opts?: CustomResourceOptions);
@overload
def KibanaSlo(resource_name: str,
args: KibanaSloArgs,
opts: Optional[ResourceOptions] = None)
@overload
def KibanaSlo(resource_name: str,
opts: Optional[ResourceOptions] = None,
objective: Optional[KibanaSloObjectiveArgs] = None,
time_window: Optional[KibanaSloTimeWindowArgs] = None,
budgeting_method: Optional[str] = None,
description: Optional[str] = None,
metric_custom_indicator: Optional[KibanaSloMetricCustomIndicatorArgs] = None,
histogram_custom_indicator: Optional[KibanaSloHistogramCustomIndicatorArgs] = None,
kibana_slo_id: Optional[str] = None,
kql_custom_indicator: Optional[KibanaSloKqlCustomIndicatorArgs] = None,
apm_availability_indicator: Optional[KibanaSloApmAvailabilityIndicatorArgs] = None,
name: Optional[str] = None,
group_bies: Optional[Sequence[str]] = None,
settings: Optional[KibanaSloSettingsArgs] = None,
slo_id: Optional[str] = None,
space_id: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
apm_latency_indicator: Optional[KibanaSloApmLatencyIndicatorArgs] = None)
func NewKibanaSlo(ctx *Context, name string, args KibanaSloArgs, opts ...ResourceOption) (*KibanaSlo, error)
public KibanaSlo(string name, KibanaSloArgs args, CustomResourceOptions? opts = null)
public KibanaSlo(String name, KibanaSloArgs args)
public KibanaSlo(String name, KibanaSloArgs args, CustomResourceOptions options)
type: elasticstack:KibanaSlo
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args KibanaSloArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args KibanaSloArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args KibanaSloArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args KibanaSloArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args KibanaSloArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var kibanaSloResource = new Elasticstack.KibanaSlo("kibanaSloResource", new()
{
Objective = new Elasticstack.Inputs.KibanaSloObjectiveArgs
{
Target = 0,
TimesliceTarget = 0,
TimesliceWindow = "string",
},
TimeWindow = new Elasticstack.Inputs.KibanaSloTimeWindowArgs
{
Duration = "string",
Type = "string",
},
BudgetingMethod = "string",
Description = "string",
MetricCustomIndicator = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorArgs
{
Good = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodArgs
{
Equation = "string",
Metrics = new[]
{
new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodMetricArgs
{
Aggregation = "string",
Field = "string",
Name = "string",
Filter = "string",
},
},
},
Index = "string",
Total = new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalArgs
{
Equation = "string",
Metrics = new[]
{
new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalMetricArgs
{
Aggregation = "string",
Field = "string",
Name = "string",
Filter = "string",
},
},
},
Filter = "string",
TimestampField = "string",
},
HistogramCustomIndicator = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorArgs
{
Good = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorGoodArgs
{
Aggregation = "string",
Field = "string",
Filter = "string",
From = 0,
To = 0,
},
Index = "string",
Total = new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorTotalArgs
{
Aggregation = "string",
Field = "string",
Filter = "string",
From = 0,
To = 0,
},
Filter = "string",
TimestampField = "string",
},
KibanaSloId = "string",
KqlCustomIndicator = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorArgs
{
Index = "string",
Filter = "string",
Good = "string",
TimestampField = "string",
Total = "string",
},
ApmAvailabilityIndicator = new Elasticstack.Inputs.KibanaSloApmAvailabilityIndicatorArgs
{
Environment = "string",
Index = "string",
Service = "string",
TransactionName = "string",
TransactionType = "string",
Filter = "string",
},
Name = "string",
GroupBies = new[]
{
"string",
},
Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
{
Frequency = "string",
SyncDelay = "string",
},
SloId = "string",
SpaceId = "string",
Tags = new[]
{
"string",
},
ApmLatencyIndicator = new Elasticstack.Inputs.KibanaSloApmLatencyIndicatorArgs
{
Environment = "string",
Index = "string",
Service = "string",
Threshold = 0,
TransactionName = "string",
TransactionType = "string",
Filter = "string",
},
});
example, err := elasticstack.NewKibanaSlo(ctx, "kibanaSloResource", &elasticstack.KibanaSloArgs{
Objective: &elasticstack.KibanaSloObjectiveArgs{
Target: pulumi.Float64(0),
TimesliceTarget: pulumi.Float64(0),
TimesliceWindow: pulumi.String("string"),
},
TimeWindow: &elasticstack.KibanaSloTimeWindowArgs{
Duration: pulumi.String("string"),
Type: pulumi.String("string"),
},
BudgetingMethod: pulumi.String("string"),
Description: pulumi.String("string"),
MetricCustomIndicator: &elasticstack.KibanaSloMetricCustomIndicatorArgs{
Good: &elasticstack.KibanaSloMetricCustomIndicatorGoodArgs{
Equation: pulumi.String("string"),
Metrics: elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArray{
&elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArgs{
Aggregation: pulumi.String("string"),
Field: pulumi.String("string"),
Name: pulumi.String("string"),
Filter: pulumi.String("string"),
},
},
},
Index: pulumi.String("string"),
Total: &elasticstack.KibanaSloMetricCustomIndicatorTotalArgs{
Equation: pulumi.String("string"),
Metrics: elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArray{
&elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArgs{
Aggregation: pulumi.String("string"),
Field: pulumi.String("string"),
Name: pulumi.String("string"),
Filter: pulumi.String("string"),
},
},
},
Filter: pulumi.String("string"),
TimestampField: pulumi.String("string"),
},
HistogramCustomIndicator: &elasticstack.KibanaSloHistogramCustomIndicatorArgs{
Good: &elasticstack.KibanaSloHistogramCustomIndicatorGoodArgs{
Aggregation: pulumi.String("string"),
Field: pulumi.String("string"),
Filter: pulumi.String("string"),
From: pulumi.Float64(0),
To: pulumi.Float64(0),
},
Index: pulumi.String("string"),
Total: &elasticstack.KibanaSloHistogramCustomIndicatorTotalArgs{
Aggregation: pulumi.String("string"),
Field: pulumi.String("string"),
Filter: pulumi.String("string"),
From: pulumi.Float64(0),
To: pulumi.Float64(0),
},
Filter: pulumi.String("string"),
TimestampField: pulumi.String("string"),
},
KibanaSloId: pulumi.String("string"),
KqlCustomIndicator: &elasticstack.KibanaSloKqlCustomIndicatorArgs{
Index: pulumi.String("string"),
Filter: pulumi.String("string"),
Good: pulumi.String("string"),
TimestampField: pulumi.String("string"),
Total: pulumi.String("string"),
},
ApmAvailabilityIndicator: &elasticstack.KibanaSloApmAvailabilityIndicatorArgs{
Environment: pulumi.String("string"),
Index: pulumi.String("string"),
Service: pulumi.String("string"),
TransactionName: pulumi.String("string"),
TransactionType: pulumi.String("string"),
Filter: pulumi.String("string"),
},
Name: pulumi.String("string"),
GroupBies: pulumi.StringArray{
pulumi.String("string"),
},
Settings: &elasticstack.KibanaSloSettingsArgs{
Frequency: pulumi.String("string"),
SyncDelay: pulumi.String("string"),
},
SloId: pulumi.String("string"),
SpaceId: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
ApmLatencyIndicator: &elasticstack.KibanaSloApmLatencyIndicatorArgs{
Environment: pulumi.String("string"),
Index: pulumi.String("string"),
Service: pulumi.String("string"),
Threshold: pulumi.Float64(0),
TransactionName: pulumi.String("string"),
TransactionType: pulumi.String("string"),
Filter: pulumi.String("string"),
},
})
var kibanaSloResource = new KibanaSlo("kibanaSloResource", KibanaSloArgs.builder()
.objective(KibanaSloObjectiveArgs.builder()
.target(0)
.timesliceTarget(0)
.timesliceWindow("string")
.build())
.timeWindow(KibanaSloTimeWindowArgs.builder()
.duration("string")
.type("string")
.build())
.budgetingMethod("string")
.description("string")
.metricCustomIndicator(KibanaSloMetricCustomIndicatorArgs.builder()
.good(KibanaSloMetricCustomIndicatorGoodArgs.builder()
.equation("string")
.metrics(KibanaSloMetricCustomIndicatorGoodMetricArgs.builder()
.aggregation("string")
.field("string")
.name("string")
.filter("string")
.build())
.build())
.index("string")
.total(KibanaSloMetricCustomIndicatorTotalArgs.builder()
.equation("string")
.metrics(KibanaSloMetricCustomIndicatorTotalMetricArgs.builder()
.aggregation("string")
.field("string")
.name("string")
.filter("string")
.build())
.build())
.filter("string")
.timestampField("string")
.build())
.histogramCustomIndicator(KibanaSloHistogramCustomIndicatorArgs.builder()
.good(KibanaSloHistogramCustomIndicatorGoodArgs.builder()
.aggregation("string")
.field("string")
.filter("string")
.from(0)
.to(0)
.build())
.index("string")
.total(KibanaSloHistogramCustomIndicatorTotalArgs.builder()
.aggregation("string")
.field("string")
.filter("string")
.from(0)
.to(0)
.build())
.filter("string")
.timestampField("string")
.build())
.kibanaSloId("string")
.kqlCustomIndicator(KibanaSloKqlCustomIndicatorArgs.builder()
.index("string")
.filter("string")
.good("string")
.timestampField("string")
.total("string")
.build())
.apmAvailabilityIndicator(KibanaSloApmAvailabilityIndicatorArgs.builder()
.environment("string")
.index("string")
.service("string")
.transactionName("string")
.transactionType("string")
.filter("string")
.build())
.name("string")
.groupBies("string")
.settings(KibanaSloSettingsArgs.builder()
.frequency("string")
.syncDelay("string")
.build())
.sloId("string")
.spaceId("string")
.tags("string")
.apmLatencyIndicator(KibanaSloApmLatencyIndicatorArgs.builder()
.environment("string")
.index("string")
.service("string")
.threshold(0)
.transactionName("string")
.transactionType("string")
.filter("string")
.build())
.build());
kibana_slo_resource = elasticstack.KibanaSlo("kibanaSloResource",
objective={
"target": 0,
"timeslice_target": 0,
"timeslice_window": "string",
},
time_window={
"duration": "string",
"type": "string",
},
budgeting_method="string",
description="string",
metric_custom_indicator={
"good": {
"equation": "string",
"metrics": [{
"aggregation": "string",
"field": "string",
"name": "string",
"filter": "string",
}],
},
"index": "string",
"total": {
"equation": "string",
"metrics": [{
"aggregation": "string",
"field": "string",
"name": "string",
"filter": "string",
}],
},
"filter": "string",
"timestamp_field": "string",
},
histogram_custom_indicator={
"good": {
"aggregation": "string",
"field": "string",
"filter": "string",
"from_": 0,
"to": 0,
},
"index": "string",
"total": {
"aggregation": "string",
"field": "string",
"filter": "string",
"from_": 0,
"to": 0,
},
"filter": "string",
"timestamp_field": "string",
},
kibana_slo_id="string",
kql_custom_indicator={
"index": "string",
"filter": "string",
"good": "string",
"timestamp_field": "string",
"total": "string",
},
apm_availability_indicator={
"environment": "string",
"index": "string",
"service": "string",
"transaction_name": "string",
"transaction_type": "string",
"filter": "string",
},
name="string",
group_bies=["string"],
settings={
"frequency": "string",
"sync_delay": "string",
},
slo_id="string",
space_id="string",
tags=["string"],
apm_latency_indicator={
"environment": "string",
"index": "string",
"service": "string",
"threshold": 0,
"transaction_name": "string",
"transaction_type": "string",
"filter": "string",
})
const kibanaSloResource = new elasticstack.KibanaSlo("kibanaSloResource", {
objective: {
target: 0,
timesliceTarget: 0,
timesliceWindow: "string",
},
timeWindow: {
duration: "string",
type: "string",
},
budgetingMethod: "string",
description: "string",
metricCustomIndicator: {
good: {
equation: "string",
metrics: [{
aggregation: "string",
field: "string",
name: "string",
filter: "string",
}],
},
index: "string",
total: {
equation: "string",
metrics: [{
aggregation: "string",
field: "string",
name: "string",
filter: "string",
}],
},
filter: "string",
timestampField: "string",
},
histogramCustomIndicator: {
good: {
aggregation: "string",
field: "string",
filter: "string",
from: 0,
to: 0,
},
index: "string",
total: {
aggregation: "string",
field: "string",
filter: "string",
from: 0,
to: 0,
},
filter: "string",
timestampField: "string",
},
kibanaSloId: "string",
kqlCustomIndicator: {
index: "string",
filter: "string",
good: "string",
timestampField: "string",
total: "string",
},
apmAvailabilityIndicator: {
environment: "string",
index: "string",
service: "string",
transactionName: "string",
transactionType: "string",
filter: "string",
},
name: "string",
groupBies: ["string"],
settings: {
frequency: "string",
syncDelay: "string",
},
sloId: "string",
spaceId: "string",
tags: ["string"],
apmLatencyIndicator: {
environment: "string",
index: "string",
service: "string",
threshold: 0,
transactionName: "string",
transactionType: "string",
filter: "string",
},
});
type: elasticstack:KibanaSlo
properties:
apmAvailabilityIndicator:
environment: string
filter: string
index: string
service: string
transactionName: string
transactionType: string
apmLatencyIndicator:
environment: string
filter: string
index: string
service: string
threshold: 0
transactionName: string
transactionType: string
budgetingMethod: string
description: string
groupBies:
- string
histogramCustomIndicator:
filter: string
good:
aggregation: string
field: string
filter: string
from: 0
to: 0
index: string
timestampField: string
total:
aggregation: string
field: string
filter: string
from: 0
to: 0
kibanaSloId: string
kqlCustomIndicator:
filter: string
good: string
index: string
timestampField: string
total: string
metricCustomIndicator:
filter: string
good:
equation: string
metrics:
- aggregation: string
field: string
filter: string
name: string
index: string
timestampField: string
total:
equation: string
metrics:
- aggregation: string
field: string
filter: string
name: string
name: string
objective:
target: 0
timesliceTarget: 0
timesliceWindow: string
settings:
frequency: string
syncDelay: string
sloId: string
spaceId: string
tags:
- string
timeWindow:
duration: string
type: string
KibanaSlo Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The KibanaSlo resource accepts the following input properties:
- Budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - Description string
- A description for the SLO.
- Objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- Time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - Apm
Availability KibanaIndicator Slo Apm Availability Indicator - Apm
Latency KibanaIndicator Slo Apm Latency Indicator - Group
Bies List<string> - Optional group by fields to use to generate an SLO per distinct value.
- Histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - Kibana
Slo stringId - The ID of this resource.
- Kql
Custom KibanaIndicator Slo Kql Custom Indicator - Metric
Custom KibanaIndicator Slo Metric Custom Indicator - Name string
- The name of the SLO.
- Settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- Slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- Space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- List<string>
- The tags for the SLO.
- Budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - Description string
- A description for the SLO.
- Objective
Kibana
Slo Objective Args - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- Time
Window KibanaSlo Time Window Args - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - Apm
Availability KibanaIndicator Slo Apm Availability Indicator Args - Apm
Latency KibanaIndicator Slo Apm Latency Indicator Args - Group
Bies []string - Optional group by fields to use to generate an SLO per distinct value.
- Histogram
Custom KibanaIndicator Slo Histogram Custom Indicator Args - Kibana
Slo stringId - The ID of this resource.
- Kql
Custom KibanaIndicator Slo Kql Custom Indicator Args - Metric
Custom KibanaIndicator Slo Metric Custom Indicator Args - Name string
- The name of the SLO.
- Settings
Kibana
Slo Settings Args - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- Slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- Space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- []string
- The tags for the SLO.
- budgeting
Method String - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description String
- A description for the SLO.
- objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - apm
Availability KibanaIndicator Slo Apm Availability Indicator - apm
Latency KibanaIndicator Slo Apm Latency Indicator - group
Bies List<String> - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - kibana
Slo StringId - The ID of this resource.
- kql
Custom KibanaIndicator Slo Kql Custom Indicator - metric
Custom KibanaIndicator Slo Metric Custom Indicator - name String
- The name of the SLO.
- settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id String - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id String - An identifier for the space. If space_id is not provided, the default space is used.
- List<String>
- The tags for the SLO.
- budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description string
- A description for the SLO.
- objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - apm
Availability KibanaIndicator Slo Apm Availability Indicator - apm
Latency KibanaIndicator Slo Apm Latency Indicator - group
Bies string[] - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - kibana
Slo stringId - The ID of this resource.
- kql
Custom KibanaIndicator Slo Kql Custom Indicator - metric
Custom KibanaIndicator Slo Metric Custom Indicator - name string
- The name of the SLO.
- settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- string[]
- The tags for the SLO.
- budgeting_
method str - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description str
- A description for the SLO.
- objective
Kibana
Slo Objective Args - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- time_
window KibanaSlo Time Window Args - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - apm_
availability_ Kibanaindicator Slo Apm Availability Indicator Args - apm_
latency_ Kibanaindicator Slo Apm Latency Indicator Args - group_
bies Sequence[str] - Optional group by fields to use to generate an SLO per distinct value.
- histogram_
custom_ Kibanaindicator Slo Histogram Custom Indicator Args - kibana_
slo_ strid - The ID of this resource.
- kql_
custom_ Kibanaindicator Slo Kql Custom Indicator Args - metric_
custom_ Kibanaindicator Slo Metric Custom Indicator Args - name str
- The name of the SLO.
- settings
Kibana
Slo Settings Args - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo_
id str - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space_
id str - An identifier for the space. If space_id is not provided, the default space is used.
- Sequence[str]
- The tags for the SLO.
- budgeting
Method String - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description String
- A description for the SLO.
- objective Property Map
- The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- time
Window Property Map - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
. - apm
Availability Property MapIndicator - apm
Latency Property MapIndicator - group
Bies List<String> - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom Property MapIndicator - kibana
Slo StringId - The ID of this resource.
- kql
Custom Property MapIndicator - metric
Custom Property MapIndicator - name String
- The name of the SLO.
- settings Property Map
- The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id String - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id String - An identifier for the space. If space_id is not provided, the default space is used.
- List<String>
- The tags for the SLO.
Outputs
All input properties are implicitly available as output properties. Additionally, the KibanaSlo resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing KibanaSlo Resource
Get an existing KibanaSlo resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: KibanaSloState, opts?: CustomResourceOptions): KibanaSlo
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
apm_availability_indicator: Optional[KibanaSloApmAvailabilityIndicatorArgs] = None,
apm_latency_indicator: Optional[KibanaSloApmLatencyIndicatorArgs] = None,
budgeting_method: Optional[str] = None,
description: Optional[str] = None,
group_bies: Optional[Sequence[str]] = None,
histogram_custom_indicator: Optional[KibanaSloHistogramCustomIndicatorArgs] = None,
kibana_slo_id: Optional[str] = None,
kql_custom_indicator: Optional[KibanaSloKqlCustomIndicatorArgs] = None,
metric_custom_indicator: Optional[KibanaSloMetricCustomIndicatorArgs] = None,
name: Optional[str] = None,
objective: Optional[KibanaSloObjectiveArgs] = None,
settings: Optional[KibanaSloSettingsArgs] = None,
slo_id: Optional[str] = None,
space_id: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
time_window: Optional[KibanaSloTimeWindowArgs] = None) -> KibanaSlo
func GetKibanaSlo(ctx *Context, name string, id IDInput, state *KibanaSloState, opts ...ResourceOption) (*KibanaSlo, error)
public static KibanaSlo Get(string name, Input<string> id, KibanaSloState? state, CustomResourceOptions? opts = null)
public static KibanaSlo get(String name, Output<String> id, KibanaSloState state, CustomResourceOptions options)
resources: _: type: elasticstack:KibanaSlo get: id: ${id}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Apm
Availability KibanaIndicator Slo Apm Availability Indicator - Apm
Latency KibanaIndicator Slo Apm Latency Indicator - Budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - Description string
- A description for the SLO.
- Group
Bies List<string> - Optional group by fields to use to generate an SLO per distinct value.
- Histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - Kibana
Slo stringId - The ID of this resource.
- Kql
Custom KibanaIndicator Slo Kql Custom Indicator - Metric
Custom KibanaIndicator Slo Metric Custom Indicator - Name string
- The name of the SLO.
- Objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- Settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- Slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- Space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- List<string>
- The tags for the SLO.
- Time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
- Apm
Availability KibanaIndicator Slo Apm Availability Indicator Args - Apm
Latency KibanaIndicator Slo Apm Latency Indicator Args - Budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - Description string
- A description for the SLO.
- Group
Bies []string - Optional group by fields to use to generate an SLO per distinct value.
- Histogram
Custom KibanaIndicator Slo Histogram Custom Indicator Args - Kibana
Slo stringId - The ID of this resource.
- Kql
Custom KibanaIndicator Slo Kql Custom Indicator Args - Metric
Custom KibanaIndicator Slo Metric Custom Indicator Args - Name string
- The name of the SLO.
- Objective
Kibana
Slo Objective Args - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- Settings
Kibana
Slo Settings Args - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- Slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- Space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- []string
- The tags for the SLO.
- Time
Window KibanaSlo Time Window Args - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
- apm
Availability KibanaIndicator Slo Apm Availability Indicator - apm
Latency KibanaIndicator Slo Apm Latency Indicator - budgeting
Method String - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description String
- A description for the SLO.
- group
Bies List<String> - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - kibana
Slo StringId - The ID of this resource.
- kql
Custom KibanaIndicator Slo Kql Custom Indicator - metric
Custom KibanaIndicator Slo Metric Custom Indicator - name String
- The name of the SLO.
- objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id String - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id String - An identifier for the space. If space_id is not provided, the default space is used.
- List<String>
- The tags for the SLO.
- time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
- apm
Availability KibanaIndicator Slo Apm Availability Indicator - apm
Latency KibanaIndicator Slo Apm Latency Indicator - budgeting
Method string - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description string
- A description for the SLO.
- group
Bies string[] - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom KibanaIndicator Slo Histogram Custom Indicator - kibana
Slo stringId - The ID of this resource.
- kql
Custom KibanaIndicator Slo Kql Custom Indicator - metric
Custom KibanaIndicator Slo Metric Custom Indicator - name string
- The name of the SLO.
- objective
Kibana
Slo Objective - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- settings
Kibana
Slo Settings - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id string - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id string - An identifier for the space. If space_id is not provided, the default space is used.
- string[]
- The tags for the SLO.
- time
Window KibanaSlo Time Window - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
- apm_
availability_ Kibanaindicator Slo Apm Availability Indicator Args - apm_
latency_ Kibanaindicator Slo Apm Latency Indicator Args - budgeting_
method str - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description str
- A description for the SLO.
- group_
bies Sequence[str] - Optional group by fields to use to generate an SLO per distinct value.
- histogram_
custom_ Kibanaindicator Slo Histogram Custom Indicator Args - kibana_
slo_ strid - The ID of this resource.
- kql_
custom_ Kibanaindicator Slo Kql Custom Indicator Args - metric_
custom_ Kibanaindicator Slo Metric Custom Indicator Args - name str
- The name of the SLO.
- objective
Kibana
Slo Objective Args - The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- settings
Kibana
Slo Settings Args - The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo_
id str - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space_
id str - An identifier for the space. If space_id is not provided, the default space is used.
- Sequence[str]
- The tags for the SLO.
- time_
window KibanaSlo Time Window Args - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
- apm
Availability Property MapIndicator - apm
Latency Property MapIndicator - budgeting
Method String - An
occurrences
budgeting method uses the number of good and total events during the time window. Atimeslices
budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices. - description String
- A description for the SLO.
- group
Bies List<String> - Optional group by fields to use to generate an SLO per distinct value.
- histogram
Custom Property MapIndicator - kibana
Slo StringId - The ID of this resource.
- kql
Custom Property MapIndicator - metric
Custom Property MapIndicator - name String
- The name of the SLO.
- objective Property Map
- The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
- settings Property Map
- The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
- slo
Id String - An ID (8 and 36 characters). If omitted, a UUIDv1 will be generated server-side.
- space
Id String - An identifier for the space. If space_id is not provided, the default space is used.
- List<String>
- The tags for the SLO.
- time
Window Property Map - Currently support
calendarAligned
androlling
time windows. Any duration greater than 1 day can be used: days, weeks, months, quarters, years. Rolling time window requires a duration, e.g.1w
for one week, and type:rolling
. SLOs defined with such time window, will only consider the SLI data from the last duration period as a moving window. Calendar aligned time window requires a duration, limited to1M
for monthly or1w
for weekly, and type:calendarAligned
.
Supporting Types
KibanaSloApmAvailabilityIndicator, KibanaSloApmAvailabilityIndicatorArgs
- Environment string
- Index string
- Service string
- Transaction
Name string - Transaction
Type string - Filter string
- Environment string
- Index string
- Service string
- Transaction
Name string - Transaction
Type string - Filter string
- environment String
- index String
- service String
- transaction
Name String - transaction
Type String - filter String
- environment string
- index string
- service string
- transaction
Name string - transaction
Type string - filter string
- environment str
- index str
- service str
- transaction_
name str - transaction_
type str - filter str
- environment String
- index String
- service String
- transaction
Name String - transaction
Type String - filter String
KibanaSloApmLatencyIndicator, KibanaSloApmLatencyIndicatorArgs
- Environment string
- Index string
- Service string
- Threshold double
- Transaction
Name string - Transaction
Type string - Filter string
- Environment string
- Index string
- Service string
- Threshold float64
- Transaction
Name string - Transaction
Type string - Filter string
- environment String
- index String
- service String
- threshold Double
- transaction
Name String - transaction
Type String - filter String
- environment string
- index string
- service string
- threshold number
- transaction
Name string - transaction
Type string - filter string
- environment str
- index str
- service str
- threshold float
- transaction_
name str - transaction_
type str - filter str
- environment String
- index String
- service String
- threshold Number
- transaction
Name String - transaction
Type String - filter String
KibanaSloHistogramCustomIndicator, KibanaSloHistogramCustomIndicatorArgs
- good Property Map
- index String
- total Property Map
- filter String
- timestamp
Field String
KibanaSloHistogramCustomIndicatorGood, KibanaSloHistogramCustomIndicatorGoodArgs
- Aggregation string
- Field string
- Filter string
- From double
- To double
- Aggregation string
- Field string
- Filter string
- From float64
- To float64
- aggregation String
- field String
- filter String
- from Double
- to Double
- aggregation string
- field string
- filter string
- from number
- to number
- aggregation str
- field str
- filter str
- from_ float
- to float
- aggregation String
- field String
- filter String
- from Number
- to Number
KibanaSloHistogramCustomIndicatorTotal, KibanaSloHistogramCustomIndicatorTotalArgs
- Aggregation string
- Field string
- Filter string
- From double
- To double
- Aggregation string
- Field string
- Filter string
- From float64
- To float64
- aggregation String
- field String
- filter String
- from Double
- to Double
- aggregation string
- field string
- filter string
- from number
- to number
- aggregation str
- field str
- filter str
- from_ float
- to float
- aggregation String
- field String
- filter String
- from Number
- to Number
KibanaSloKqlCustomIndicator, KibanaSloKqlCustomIndicatorArgs
- Index string
- Filter string
- Good string
- Timestamp
Field string - Total string
- Index string
- Filter string
- Good string
- Timestamp
Field string - Total string
- index String
- filter String
- good String
- timestamp
Field String - total String
- index string
- filter string
- good string
- timestamp
Field string - total string
- index str
- filter str
- good str
- timestamp_
field str - total str
- index String
- filter String
- good String
- timestamp
Field String - total String
KibanaSloMetricCustomIndicator, KibanaSloMetricCustomIndicatorArgs
- good Property Map
- index String
- total Property Map
- filter String
- timestamp
Field String
KibanaSloMetricCustomIndicatorGood, KibanaSloMetricCustomIndicatorGoodArgs
KibanaSloMetricCustomIndicatorGoodMetric, KibanaSloMetricCustomIndicatorGoodMetricArgs
- Aggregation string
- Field string
- Name string
- Filter string
- Aggregation string
- Field string
- Name string
- Filter string
- aggregation String
- field String
- name String
- filter String
- aggregation string
- field string
- name string
- filter string
- aggregation str
- field str
- name str
- filter str
- aggregation String
- field String
- name String
- filter String
KibanaSloMetricCustomIndicatorTotal, KibanaSloMetricCustomIndicatorTotalArgs
KibanaSloMetricCustomIndicatorTotalMetric, KibanaSloMetricCustomIndicatorTotalMetricArgs
- Aggregation string
- Field string
- Name string
- Filter string
- Aggregation string
- Field string
- Name string
- Filter string
- aggregation String
- field String
- name String
- filter String
- aggregation string
- field string
- name string
- filter string
- aggregation str
- field str
- name str
- filter str
- aggregation String
- field String
- name String
- filter String
KibanaSloObjective, KibanaSloObjectiveArgs
- Target double
- Timeslice
Target double - Timeslice
Window string
- Target float64
- Timeslice
Target float64 - Timeslice
Window string
- target Double
- timeslice
Target Double - timeslice
Window String
- target number
- timeslice
Target number - timeslice
Window string
- target float
- timeslice_
target float - timeslice_
window str
- target Number
- timeslice
Target Number - timeslice
Window String
KibanaSloSettings, KibanaSloSettingsArgs
- frequency str
- sync_
delay str
KibanaSloTimeWindow, KibanaSloTimeWindowArgs
Import
$ pulumi import elasticstack:index/kibanaSlo:KibanaSlo my_slo <space id>/<slo id>
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- elasticstack elastic/terraform-provider-elasticstack
- License
- Notes
- This Pulumi package is based on the
elasticstack
Terraform Provider.