pulumi-signalfx 7.2.0a1709367777__py3-none-any.whl → 7.6.0a1736835428__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_signalfx/__init__.py +9 -0
- pulumi_signalfx/_inputs.py +1976 -339
- pulumi_signalfx/_utilities.py +41 -5
- pulumi_signalfx/alert_muting_rule.py +110 -86
- pulumi_signalfx/aws/_inputs.py +85 -16
- pulumi_signalfx/aws/external_integration.py +20 -275
- pulumi_signalfx/aws/integration.py +222 -367
- pulumi_signalfx/aws/outputs.py +21 -16
- pulumi_signalfx/aws/token_integration.py +46 -65
- pulumi_signalfx/azure/_inputs.py +41 -4
- pulumi_signalfx/azure/integration.py +144 -259
- pulumi_signalfx/azure/outputs.py +15 -4
- pulumi_signalfx/config/__init__.pyi +22 -0
- pulumi_signalfx/config/vars.py +28 -0
- pulumi_signalfx/dashboard.py +171 -186
- pulumi_signalfx/dashboard_group.py +131 -198
- pulumi_signalfx/data_link.py +76 -141
- pulumi_signalfx/detector.py +264 -369
- pulumi_signalfx/event_feed_chart.py +51 -82
- pulumi_signalfx/gcp/_inputs.py +51 -0
- pulumi_signalfx/gcp/integration.py +224 -192
- pulumi_signalfx/gcp/outputs.py +44 -0
- pulumi_signalfx/get_dimension_values.py +47 -24
- pulumi_signalfx/heatmap_chart.py +165 -228
- pulumi_signalfx/jira/integration.py +70 -119
- pulumi_signalfx/list_chart.py +219 -315
- pulumi_signalfx/log/_inputs.py +33 -2
- pulumi_signalfx/log/outputs.py +7 -2
- pulumi_signalfx/log/timeline.py +64 -99
- pulumi_signalfx/log/view.py +134 -173
- pulumi_signalfx/metric_ruleset.py +217 -70
- pulumi_signalfx/opsgenie/integration.py +41 -60
- pulumi_signalfx/org_token.py +97 -128
- pulumi_signalfx/outputs.py +661 -339
- pulumi_signalfx/pagerduty/get_integration.py +22 -21
- pulumi_signalfx/pagerduty/integration.py +34 -49
- pulumi_signalfx/provider.py +99 -0
- pulumi_signalfx/pulumi-plugin.json +2 -1
- pulumi_signalfx/servicenow/integration.py +52 -107
- pulumi_signalfx/single_value_chart.py +113 -178
- pulumi_signalfx/slack/integration.py +30 -47
- pulumi_signalfx/slo.py +99 -197
- pulumi_signalfx/slo_chart.py +197 -0
- pulumi_signalfx/table_chart.py +50 -75
- pulumi_signalfx/team.py +74 -109
- pulumi_signalfx/text_chart.py +64 -89
- pulumi_signalfx/time_chart.py +271 -400
- pulumi_signalfx/victorops/integration.py +30 -47
- pulumi_signalfx/webhook_integration.py +154 -75
- {pulumi_signalfx-7.2.0a1709367777.dist-info → pulumi_signalfx-7.6.0a1736835428.dist-info}/METADATA +7 -6
- pulumi_signalfx-7.6.0a1736835428.dist-info/RECORD +65 -0
- {pulumi_signalfx-7.2.0a1709367777.dist-info → pulumi_signalfx-7.6.0a1736835428.dist-info}/WHEEL +1 -1
- pulumi_signalfx-7.2.0a1709367777.dist-info/RECORD +0 -64
- {pulumi_signalfx-7.2.0a1709367777.dist-info → pulumi_signalfx-7.6.0a1736835428.dist-info}/top_level.txt +0 -0
pulumi_signalfx/slo.py
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
10
15
|
from . import _utilities
|
|
11
16
|
from . import outputs
|
|
12
17
|
from ._inputs import *
|
|
@@ -23,12 +28,11 @@ class SloArgs:
|
|
|
23
28
|
name: Optional[pulumi.Input[str]] = None):
|
|
24
29
|
"""
|
|
25
30
|
The set of arguments for constructing a Slo resource.
|
|
26
|
-
:param pulumi.Input['SloInputArgs'] input:
|
|
27
|
-
count
|
|
31
|
+
:param pulumi.Input['SloInputArgs'] input: Properties to configure an SLO object inputs
|
|
28
32
|
:param pulumi.Input['SloTargetArgs'] target: Define target value of the service level indicator in the appropriate time period.
|
|
29
|
-
:param pulumi.Input[str] type: Type of the SLO. Currently
|
|
30
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
31
|
-
:param pulumi.Input[str] name: Name of the SLO
|
|
33
|
+
:param pulumi.Input[str] type: Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
34
|
+
:param pulumi.Input[str] description: Description of the SLO.
|
|
35
|
+
:param pulumi.Input[str] name: Name of the SLO. Each SLO name must be unique within an organization.
|
|
32
36
|
"""
|
|
33
37
|
pulumi.set(__self__, "input", input)
|
|
34
38
|
pulumi.set(__self__, "target", target)
|
|
@@ -42,8 +46,7 @@ class SloArgs:
|
|
|
42
46
|
@pulumi.getter
|
|
43
47
|
def input(self) -> pulumi.Input['SloInputArgs']:
|
|
44
48
|
"""
|
|
45
|
-
|
|
46
|
-
count
|
|
49
|
+
Properties to configure an SLO object inputs
|
|
47
50
|
"""
|
|
48
51
|
return pulumi.get(self, "input")
|
|
49
52
|
|
|
@@ -67,7 +70,7 @@ class SloArgs:
|
|
|
67
70
|
@pulumi.getter
|
|
68
71
|
def type(self) -> pulumi.Input[str]:
|
|
69
72
|
"""
|
|
70
|
-
Type of the SLO. Currently
|
|
73
|
+
Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
71
74
|
"""
|
|
72
75
|
return pulumi.get(self, "type")
|
|
73
76
|
|
|
@@ -79,7 +82,7 @@ class SloArgs:
|
|
|
79
82
|
@pulumi.getter
|
|
80
83
|
def description(self) -> Optional[pulumi.Input[str]]:
|
|
81
84
|
"""
|
|
82
|
-
Description of the SLO
|
|
85
|
+
Description of the SLO.
|
|
83
86
|
"""
|
|
84
87
|
return pulumi.get(self, "description")
|
|
85
88
|
|
|
@@ -91,7 +94,7 @@ class SloArgs:
|
|
|
91
94
|
@pulumi.getter
|
|
92
95
|
def name(self) -> Optional[pulumi.Input[str]]:
|
|
93
96
|
"""
|
|
94
|
-
Name of the SLO
|
|
97
|
+
Name of the SLO. Each SLO name must be unique within an organization.
|
|
95
98
|
"""
|
|
96
99
|
return pulumi.get(self, "name")
|
|
97
100
|
|
|
@@ -110,12 +113,11 @@ class _SloState:
|
|
|
110
113
|
type: Optional[pulumi.Input[str]] = None):
|
|
111
114
|
"""
|
|
112
115
|
Input properties used for looking up and filtering Slo resources.
|
|
113
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
114
|
-
:param pulumi.Input['SloInputArgs'] input:
|
|
115
|
-
|
|
116
|
-
:param pulumi.Input[str] name: Name of the SLO
|
|
116
|
+
:param pulumi.Input[str] description: Description of the SLO.
|
|
117
|
+
:param pulumi.Input['SloInputArgs'] input: Properties to configure an SLO object inputs
|
|
118
|
+
:param pulumi.Input[str] name: Name of the SLO. Each SLO name must be unique within an organization.
|
|
117
119
|
:param pulumi.Input['SloTargetArgs'] target: Define target value of the service level indicator in the appropriate time period.
|
|
118
|
-
:param pulumi.Input[str] type: Type of the SLO. Currently
|
|
120
|
+
:param pulumi.Input[str] type: Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
119
121
|
"""
|
|
120
122
|
if description is not None:
|
|
121
123
|
pulumi.set(__self__, "description", description)
|
|
@@ -132,7 +134,7 @@ class _SloState:
|
|
|
132
134
|
@pulumi.getter
|
|
133
135
|
def description(self) -> Optional[pulumi.Input[str]]:
|
|
134
136
|
"""
|
|
135
|
-
Description of the SLO
|
|
137
|
+
Description of the SLO.
|
|
136
138
|
"""
|
|
137
139
|
return pulumi.get(self, "description")
|
|
138
140
|
|
|
@@ -144,8 +146,7 @@ class _SloState:
|
|
|
144
146
|
@pulumi.getter
|
|
145
147
|
def input(self) -> Optional[pulumi.Input['SloInputArgs']]:
|
|
146
148
|
"""
|
|
147
|
-
|
|
148
|
-
count
|
|
149
|
+
Properties to configure an SLO object inputs
|
|
149
150
|
"""
|
|
150
151
|
return pulumi.get(self, "input")
|
|
151
152
|
|
|
@@ -157,7 +158,7 @@ class _SloState:
|
|
|
157
158
|
@pulumi.getter
|
|
158
159
|
def name(self) -> Optional[pulumi.Input[str]]:
|
|
159
160
|
"""
|
|
160
|
-
Name of the SLO
|
|
161
|
+
Name of the SLO. Each SLO name must be unique within an organization.
|
|
161
162
|
"""
|
|
162
163
|
return pulumi.get(self, "name")
|
|
163
164
|
|
|
@@ -181,7 +182,7 @@ class _SloState:
|
|
|
181
182
|
@pulumi.getter
|
|
182
183
|
def type(self) -> Optional[pulumi.Input[str]]:
|
|
183
184
|
"""
|
|
184
|
-
Type of the SLO. Currently
|
|
185
|
+
Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
185
186
|
"""
|
|
186
187
|
return pulumi.get(self, "type")
|
|
187
188
|
|
|
@@ -196,9 +197,9 @@ class Slo(pulumi.CustomResource):
|
|
|
196
197
|
resource_name: str,
|
|
197
198
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
198
199
|
description: Optional[pulumi.Input[str]] = None,
|
|
199
|
-
input: Optional[pulumi.Input[
|
|
200
|
+
input: Optional[pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']]] = None,
|
|
200
201
|
name: Optional[pulumi.Input[str]] = None,
|
|
201
|
-
target: Optional[pulumi.Input[
|
|
202
|
+
target: Optional[pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']]] = None,
|
|
202
203
|
type: Optional[pulumi.Input[str]] = None,
|
|
203
204
|
__props__=None):
|
|
204
205
|
"""
|
|
@@ -206,134 +207,85 @@ class Slo(pulumi.CustomResource):
|
|
|
206
207
|
|
|
207
208
|
To learn more about this feature take a look on [documentation for SLO](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/slo-intro.html).
|
|
208
209
|
|
|
209
|
-
##
|
|
210
|
-
|
|
211
|
-
As Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:
|
|
210
|
+
## Example
|
|
212
211
|
|
|
213
212
|
```python
|
|
214
213
|
import pulumi
|
|
214
|
+
import pulumi_signalfx as signalfx
|
|
215
|
+
|
|
216
|
+
foo_service_slo = signalfx.Slo("foo_service_slo",
|
|
217
|
+
name="foo service SLO",
|
|
218
|
+
type="RequestBased",
|
|
219
|
+
description="SLO monitoring for foo service",
|
|
220
|
+
input={
|
|
221
|
+
"program_text": \"\"\"G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))
|
|
222
|
+
T = data('spans.count', filter=filter('sf_service', 'foo-service'))\"\"\",
|
|
223
|
+
"good_events_label": "G",
|
|
224
|
+
"total_events_label": "T",
|
|
225
|
+
},
|
|
226
|
+
target={
|
|
227
|
+
"type": "RollingWindow",
|
|
228
|
+
"slo": 95,
|
|
229
|
+
"compliance_period": "30d",
|
|
230
|
+
"alert_rules": [{
|
|
231
|
+
"type": "BREACH",
|
|
232
|
+
"rules": [{
|
|
233
|
+
"severity": "Warning",
|
|
234
|
+
"notifications": ["Email,foo-alerts@bar.com"],
|
|
235
|
+
}],
|
|
236
|
+
}],
|
|
237
|
+
})
|
|
215
238
|
```
|
|
216
239
|
|
|
240
|
+
## Notification format
|
|
241
|
+
|
|
242
|
+
As Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:
|
|
243
|
+
|
|
217
244
|
See [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.
|
|
218
245
|
|
|
219
246
|
Here are some example of how to configure each notification type:
|
|
220
247
|
|
|
221
248
|
### Email
|
|
222
249
|
|
|
223
|
-
```python
|
|
224
|
-
import pulumi
|
|
225
|
-
```
|
|
226
|
-
|
|
227
250
|
### Jira
|
|
228
251
|
|
|
229
252
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also `jira.Integration`.
|
|
230
253
|
|
|
231
|
-
```python
|
|
232
|
-
import pulumi
|
|
233
|
-
```
|
|
234
|
-
|
|
235
254
|
### OpsGenie
|
|
236
255
|
|
|
237
256
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Opsgenie integration. `Team` here is hardcoded as the `responderType` as that is the only acceptable type as per the API docs.
|
|
238
257
|
|
|
239
|
-
```python
|
|
240
|
-
import pulumi
|
|
241
|
-
```
|
|
242
|
-
|
|
243
258
|
### PagerDuty
|
|
244
259
|
|
|
245
|
-
```python
|
|
246
|
-
import pulumi
|
|
247
|
-
```
|
|
248
|
-
|
|
249
260
|
### Slack
|
|
250
261
|
|
|
251
262
|
Exclude the `#` on the channel name:
|
|
252
263
|
|
|
253
|
-
```python
|
|
254
|
-
import pulumi
|
|
255
|
-
```
|
|
256
|
-
|
|
257
264
|
### Team
|
|
258
265
|
|
|
259
266
|
Sends [notifications to a team](https://docs.signalfx.com/en/latest/managing/teams/team-notifications.html).
|
|
260
267
|
|
|
261
|
-
```python
|
|
262
|
-
import pulumi
|
|
263
|
-
```
|
|
264
|
-
|
|
265
268
|
### TeamEmail
|
|
266
269
|
|
|
267
270
|
Sends an email to every member of a team.
|
|
268
271
|
|
|
269
|
-
```python
|
|
270
|
-
import pulumi
|
|
271
|
-
```
|
|
272
|
-
|
|
273
272
|
### Splunk On-Call (formerly VictorOps)
|
|
274
273
|
|
|
275
|
-
```python
|
|
276
|
-
import pulumi
|
|
277
|
-
```
|
|
278
|
-
|
|
279
274
|
### Webhooks
|
|
280
275
|
|
|
281
276
|
You need to include all the commas even if you only use a credential id.
|
|
282
277
|
|
|
283
278
|
You can either configure a Webhook to use an existing integration's credential id:
|
|
284
|
-
```python
|
|
285
|
-
import pulumi
|
|
286
|
-
```
|
|
287
279
|
|
|
288
280
|
Or configure one inline:
|
|
289
281
|
|
|
290
|
-
```python
|
|
291
|
-
import pulumi
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
## Arguments
|
|
295
|
-
|
|
296
|
-
* `name` - (Required) Name of the SLO. Each SLO name must be unique within an organization.
|
|
297
|
-
* `description` - (Optional) Description of the SLO.
|
|
298
|
-
* `type` - (Required) Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
299
|
-
* `input` - (Required) Properties to configure an SLO object inputs
|
|
300
|
-
* `program_text` - (Required) SignalFlow program and arguments text strings that define the streams used as successful event count and total event count
|
|
301
|
-
* `good_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of successful events
|
|
302
|
-
* `total_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of total events
|
|
303
|
-
* `target` - (Required) Define target value of the service level indicator in the appropriate time period.
|
|
304
|
-
* `type` - (Required) SLO target type can be the following type: `"RollingWindow"`
|
|
305
|
-
* `compliance_period` - (Required for `"RollingWindow"` type) Compliance period of this SLO. This value must be within the range of 1d (1 days) to 30d (30 days), inclusive.
|
|
306
|
-
* `slo` - (Required) Target value in the form of a percentage
|
|
307
|
-
* `alert_rule` - (Required) List of alert rules you want to set for this SLO target. An SLO alert rule of type BREACH is always required.
|
|
308
|
-
* `type` - (Required) SLO alert rule can be one of the following types: BREACH, ERROR_BUDGET_LEFT, BURN_RATE. Within an SLO object, you can only specify one SLO alert_rule per type. For example, you can't specify two alert_rule of type BREACH. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
309
|
-
* `rule` - (Required) Set of rules used for alerting.
|
|
310
|
-
* `severity` - (Required) The severity of the rule, must be one of: `"Critical"`, `"Major"`, `"Minor"`, `"Warning"`, `"Info"`.
|
|
311
|
-
* `description` - (Optional) Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.
|
|
312
|
-
* `disabled` - (Optional) When true, notifications and events will not be generated for the detect label. `false` by default.
|
|
313
|
-
* `notifications` - (Optional) List of strings specifying where notifications will be sent when an incident occurs. See [Create SLO](https://dev.splunk.com/observability/reference/api/slo/latest#endpoint-create-new-slo) for more info.
|
|
314
|
-
* `parameterized_body` - (Optional) Custom notification message body when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.
|
|
315
|
-
* `parameterized_subject` - (Optional) Custom notification message subject when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.
|
|
316
|
-
* `runbook_url` - (Optional) URL of page to consult when an alert is triggered. This can be used with custom notification messages.
|
|
317
|
-
* `tip` - (Optional) Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.
|
|
318
|
-
* `parameters` - (Optional) Parameters for the SLO alert rule. Each SLO alert rule type accepts different parameters. If not specified, default parameters are used.
|
|
319
|
-
* `fire_lasting` - (Optional) Duration that indicates how long the alert condition is met before the alert is triggered. The value must be positive and smaller than the compliance period of the SLO target. Note: `"BREACH"` and `"ERROR_BUDGET_LEFT"` alert rules use the fireLasting parameter. Default: `"5m"`
|
|
320
|
-
* `percent_of_lasting` - (Optional) Percentage of the `"fire_lasting"` duration that the alert condition is met before the alert is triggered. Note: `"BREACH"` and `"ERROR_BUDGET_LEFT"` alert rules use the `"percent_of_lasting"` parameter. Default: `100`
|
|
321
|
-
* `percent_error_budget_left` - (Optional) Error budget must be equal to or smaller than this percentage for the alert to be triggered. Note: `"ERROR_BUDGET_LEFT"` alert rules use the `"percent_error_budget_left"` parameter. Default: `100`
|
|
322
|
-
* `short_window_1` - (Optional) Short window 1 used in burn rate alert calculation. This value must be longer than 1/30 of `"long_window_1"`. Note: `"BURN_RATE"` alert rules use the `"short_window_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
323
|
-
* `short_window_2` - (Optional) Short window 2 used in burn rate alert calculation. This value must be longer than 1/30 of `"long_window_2"`. Note: `"BURN_RATE"` alert rules use the `"short_window_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
324
|
-
* `long_window_1` - (Optional) Long window 1 used in burn rate alert calculation. This value must be longer than `"short_window_1"` and shorter than 90 days. Note: `"BURN_RATE"` alert rules use the `"long_window_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
325
|
-
* `long_window_2` - (Optional) Long window 2 used in burn rate alert calculation. This value must be longer than `"short_window_2"` and shorter than 90 days. Note: `"BURN_RATE"` alert rules use the `"long_window_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
326
|
-
* `burn_rate_threshold_1` - (Optional) Burn rate threshold 1 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `"BURN_RATE"` alert rules use the `"burn_rate_threshold_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
327
|
-
* `burn_rate_threshold_2` - (Optional) Burn rate threshold 2 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `"BURN_RATE"` alert rules use the `"burn_rate_threshold_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
328
|
-
|
|
329
282
|
:param str resource_name: The name of the resource.
|
|
330
283
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
331
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
332
|
-
:param pulumi.Input[
|
|
333
|
-
|
|
334
|
-
:param pulumi.Input[
|
|
335
|
-
:param pulumi.Input[
|
|
336
|
-
:param pulumi.Input[str] type: Type of the SLO. Currently only RequestBased SLO is supported
|
|
284
|
+
:param pulumi.Input[str] description: Description of the SLO.
|
|
285
|
+
:param pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']] input: Properties to configure an SLO object inputs
|
|
286
|
+
:param pulumi.Input[str] name: Name of the SLO. Each SLO name must be unique within an organization.
|
|
287
|
+
:param pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']] target: Define target value of the service level indicator in the appropriate time period.
|
|
288
|
+
:param pulumi.Input[str] type: Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
337
289
|
"""
|
|
338
290
|
...
|
|
339
291
|
@overload
|
|
@@ -346,126 +298,78 @@ class Slo(pulumi.CustomResource):
|
|
|
346
298
|
|
|
347
299
|
To learn more about this feature take a look on [documentation for SLO](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/slo-intro.html).
|
|
348
300
|
|
|
349
|
-
##
|
|
350
|
-
|
|
351
|
-
As Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:
|
|
301
|
+
## Example
|
|
352
302
|
|
|
353
303
|
```python
|
|
354
304
|
import pulumi
|
|
305
|
+
import pulumi_signalfx as signalfx
|
|
306
|
+
|
|
307
|
+
foo_service_slo = signalfx.Slo("foo_service_slo",
|
|
308
|
+
name="foo service SLO",
|
|
309
|
+
type="RequestBased",
|
|
310
|
+
description="SLO monitoring for foo service",
|
|
311
|
+
input={
|
|
312
|
+
"program_text": \"\"\"G = data('spans.count', filter=filter('sf_error', 'false') and filter('sf_service', 'foo-service'))
|
|
313
|
+
T = data('spans.count', filter=filter('sf_service', 'foo-service'))\"\"\",
|
|
314
|
+
"good_events_label": "G",
|
|
315
|
+
"total_events_label": "T",
|
|
316
|
+
},
|
|
317
|
+
target={
|
|
318
|
+
"type": "RollingWindow",
|
|
319
|
+
"slo": 95,
|
|
320
|
+
"compliance_period": "30d",
|
|
321
|
+
"alert_rules": [{
|
|
322
|
+
"type": "BREACH",
|
|
323
|
+
"rules": [{
|
|
324
|
+
"severity": "Warning",
|
|
325
|
+
"notifications": ["Email,foo-alerts@bar.com"],
|
|
326
|
+
}],
|
|
327
|
+
}],
|
|
328
|
+
})
|
|
355
329
|
```
|
|
356
330
|
|
|
331
|
+
## Notification format
|
|
332
|
+
|
|
333
|
+
As Splunk Observability Cloud supports different notification mechanisms, use a comma-delimited string to provide inputs. If you want to specify multiple notifications, each must be a member in the list, like so:
|
|
334
|
+
|
|
357
335
|
See [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.
|
|
358
336
|
|
|
359
337
|
Here are some example of how to configure each notification type:
|
|
360
338
|
|
|
361
339
|
### Email
|
|
362
340
|
|
|
363
|
-
```python
|
|
364
|
-
import pulumi
|
|
365
|
-
```
|
|
366
|
-
|
|
367
341
|
### Jira
|
|
368
342
|
|
|
369
343
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also `jira.Integration`.
|
|
370
344
|
|
|
371
|
-
```python
|
|
372
|
-
import pulumi
|
|
373
|
-
```
|
|
374
|
-
|
|
375
345
|
### OpsGenie
|
|
376
346
|
|
|
377
347
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Opsgenie integration. `Team` here is hardcoded as the `responderType` as that is the only acceptable type as per the API docs.
|
|
378
348
|
|
|
379
|
-
```python
|
|
380
|
-
import pulumi
|
|
381
|
-
```
|
|
382
|
-
|
|
383
349
|
### PagerDuty
|
|
384
350
|
|
|
385
|
-
```python
|
|
386
|
-
import pulumi
|
|
387
|
-
```
|
|
388
|
-
|
|
389
351
|
### Slack
|
|
390
352
|
|
|
391
353
|
Exclude the `#` on the channel name:
|
|
392
354
|
|
|
393
|
-
```python
|
|
394
|
-
import pulumi
|
|
395
|
-
```
|
|
396
|
-
|
|
397
355
|
### Team
|
|
398
356
|
|
|
399
357
|
Sends [notifications to a team](https://docs.signalfx.com/en/latest/managing/teams/team-notifications.html).
|
|
400
358
|
|
|
401
|
-
```python
|
|
402
|
-
import pulumi
|
|
403
|
-
```
|
|
404
|
-
|
|
405
359
|
### TeamEmail
|
|
406
360
|
|
|
407
361
|
Sends an email to every member of a team.
|
|
408
362
|
|
|
409
|
-
```python
|
|
410
|
-
import pulumi
|
|
411
|
-
```
|
|
412
|
-
|
|
413
363
|
### Splunk On-Call (formerly VictorOps)
|
|
414
364
|
|
|
415
|
-
```python
|
|
416
|
-
import pulumi
|
|
417
|
-
```
|
|
418
|
-
|
|
419
365
|
### Webhooks
|
|
420
366
|
|
|
421
367
|
You need to include all the commas even if you only use a credential id.
|
|
422
368
|
|
|
423
369
|
You can either configure a Webhook to use an existing integration's credential id:
|
|
424
|
-
```python
|
|
425
|
-
import pulumi
|
|
426
|
-
```
|
|
427
370
|
|
|
428
371
|
Or configure one inline:
|
|
429
372
|
|
|
430
|
-
```python
|
|
431
|
-
import pulumi
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
## Arguments
|
|
435
|
-
|
|
436
|
-
* `name` - (Required) Name of the SLO. Each SLO name must be unique within an organization.
|
|
437
|
-
* `description` - (Optional) Description of the SLO.
|
|
438
|
-
* `type` - (Required) Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
439
|
-
* `input` - (Required) Properties to configure an SLO object inputs
|
|
440
|
-
* `program_text` - (Required) SignalFlow program and arguments text strings that define the streams used as successful event count and total event count
|
|
441
|
-
* `good_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of successful events
|
|
442
|
-
* `total_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of total events
|
|
443
|
-
* `target` - (Required) Define target value of the service level indicator in the appropriate time period.
|
|
444
|
-
* `type` - (Required) SLO target type can be the following type: `"RollingWindow"`
|
|
445
|
-
* `compliance_period` - (Required for `"RollingWindow"` type) Compliance period of this SLO. This value must be within the range of 1d (1 days) to 30d (30 days), inclusive.
|
|
446
|
-
* `slo` - (Required) Target value in the form of a percentage
|
|
447
|
-
* `alert_rule` - (Required) List of alert rules you want to set for this SLO target. An SLO alert rule of type BREACH is always required.
|
|
448
|
-
* `type` - (Required) SLO alert rule can be one of the following types: BREACH, ERROR_BUDGET_LEFT, BURN_RATE. Within an SLO object, you can only specify one SLO alert_rule per type. For example, you can't specify two alert_rule of type BREACH. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
449
|
-
* `rule` - (Required) Set of rules used for alerting.
|
|
450
|
-
* `severity` - (Required) The severity of the rule, must be one of: `"Critical"`, `"Major"`, `"Minor"`, `"Warning"`, `"Info"`.
|
|
451
|
-
* `description` - (Optional) Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.
|
|
452
|
-
* `disabled` - (Optional) When true, notifications and events will not be generated for the detect label. `false` by default.
|
|
453
|
-
* `notifications` - (Optional) List of strings specifying where notifications will be sent when an incident occurs. See [Create SLO](https://dev.splunk.com/observability/reference/api/slo/latest#endpoint-create-new-slo) for more info.
|
|
454
|
-
* `parameterized_body` - (Optional) Custom notification message body when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.
|
|
455
|
-
* `parameterized_subject` - (Optional) Custom notification message subject when an alert is triggered. See [Alert message](https://docs.splunk.com/observability/en/alerts-detectors-notifications/create-detectors-for-alerts.html#alert-messages) for more info.
|
|
456
|
-
* `runbook_url` - (Optional) URL of page to consult when an alert is triggered. This can be used with custom notification messages.
|
|
457
|
-
* `tip` - (Optional) Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.
|
|
458
|
-
* `parameters` - (Optional) Parameters for the SLO alert rule. Each SLO alert rule type accepts different parameters. If not specified, default parameters are used.
|
|
459
|
-
* `fire_lasting` - (Optional) Duration that indicates how long the alert condition is met before the alert is triggered. The value must be positive and smaller than the compliance period of the SLO target. Note: `"BREACH"` and `"ERROR_BUDGET_LEFT"` alert rules use the fireLasting parameter. Default: `"5m"`
|
|
460
|
-
* `percent_of_lasting` - (Optional) Percentage of the `"fire_lasting"` duration that the alert condition is met before the alert is triggered. Note: `"BREACH"` and `"ERROR_BUDGET_LEFT"` alert rules use the `"percent_of_lasting"` parameter. Default: `100`
|
|
461
|
-
* `percent_error_budget_left` - (Optional) Error budget must be equal to or smaller than this percentage for the alert to be triggered. Note: `"ERROR_BUDGET_LEFT"` alert rules use the `"percent_error_budget_left"` parameter. Default: `100`
|
|
462
|
-
* `short_window_1` - (Optional) Short window 1 used in burn rate alert calculation. This value must be longer than 1/30 of `"long_window_1"`. Note: `"BURN_RATE"` alert rules use the `"short_window_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
463
|
-
* `short_window_2` - (Optional) Short window 2 used in burn rate alert calculation. This value must be longer than 1/30 of `"long_window_2"`. Note: `"BURN_RATE"` alert rules use the `"short_window_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
464
|
-
* `long_window_1` - (Optional) Long window 1 used in burn rate alert calculation. This value must be longer than `"short_window_1"` and shorter than 90 days. Note: `"BURN_RATE"` alert rules use the `"long_window_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
465
|
-
* `long_window_2` - (Optional) Long window 2 used in burn rate alert calculation. This value must be longer than `"short_window_2"` and shorter than 90 days. Note: `"BURN_RATE"` alert rules use the `"long_window_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
466
|
-
* `burn_rate_threshold_1` - (Optional) Burn rate threshold 1 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `"BURN_RATE"` alert rules use the `"burn_rate_threshold_1"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
467
|
-
* `burn_rate_threshold_2` - (Optional) Burn rate threshold 2 used in burn rate alert calculation. This value must be between 0 and 100/(100-SLO target). Note: `"BURN_RATE"` alert rules use the `"burn_rate_threshold_2"` parameter. See [SLO alerts](https://docs.splunk.com/observability/en/alerts-detectors-notifications/slo/burn-rate-alerts.html) for more info.
|
|
468
|
-
|
|
469
373
|
:param str resource_name: The name of the resource.
|
|
470
374
|
:param SloArgs args: The arguments to use to populate this resource's properties.
|
|
471
375
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
@@ -482,9 +386,9 @@ class Slo(pulumi.CustomResource):
|
|
|
482
386
|
resource_name: str,
|
|
483
387
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
484
388
|
description: Optional[pulumi.Input[str]] = None,
|
|
485
|
-
input: Optional[pulumi.Input[
|
|
389
|
+
input: Optional[pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']]] = None,
|
|
486
390
|
name: Optional[pulumi.Input[str]] = None,
|
|
487
|
-
target: Optional[pulumi.Input[
|
|
391
|
+
target: Optional[pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']]] = None,
|
|
488
392
|
type: Optional[pulumi.Input[str]] = None,
|
|
489
393
|
__props__=None):
|
|
490
394
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
@@ -517,9 +421,9 @@ class Slo(pulumi.CustomResource):
|
|
|
517
421
|
id: pulumi.Input[str],
|
|
518
422
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
519
423
|
description: Optional[pulumi.Input[str]] = None,
|
|
520
|
-
input: Optional[pulumi.Input[
|
|
424
|
+
input: Optional[pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']]] = None,
|
|
521
425
|
name: Optional[pulumi.Input[str]] = None,
|
|
522
|
-
target: Optional[pulumi.Input[
|
|
426
|
+
target: Optional[pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']]] = None,
|
|
523
427
|
type: Optional[pulumi.Input[str]] = None) -> 'Slo':
|
|
524
428
|
"""
|
|
525
429
|
Get an existing Slo resource's state with the given name, id, and optional extra
|
|
@@ -528,12 +432,11 @@ class Slo(pulumi.CustomResource):
|
|
|
528
432
|
:param str resource_name: The unique name of the resulting resource.
|
|
529
433
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
530
434
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
531
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
532
|
-
:param pulumi.Input[
|
|
533
|
-
|
|
534
|
-
:param pulumi.Input[
|
|
535
|
-
:param pulumi.Input[
|
|
536
|
-
:param pulumi.Input[str] type: Type of the SLO. Currently only RequestBased SLO is supported
|
|
435
|
+
:param pulumi.Input[str] description: Description of the SLO.
|
|
436
|
+
:param pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']] input: Properties to configure an SLO object inputs
|
|
437
|
+
:param pulumi.Input[str] name: Name of the SLO. Each SLO name must be unique within an organization.
|
|
438
|
+
:param pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']] target: Define target value of the service level indicator in the appropriate time period.
|
|
439
|
+
:param pulumi.Input[str] type: Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
537
440
|
"""
|
|
538
441
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
539
442
|
|
|
@@ -550,7 +453,7 @@ class Slo(pulumi.CustomResource):
|
|
|
550
453
|
@pulumi.getter
|
|
551
454
|
def description(self) -> pulumi.Output[Optional[str]]:
|
|
552
455
|
"""
|
|
553
|
-
Description of the SLO
|
|
456
|
+
Description of the SLO.
|
|
554
457
|
"""
|
|
555
458
|
return pulumi.get(self, "description")
|
|
556
459
|
|
|
@@ -558,8 +461,7 @@ class Slo(pulumi.CustomResource):
|
|
|
558
461
|
@pulumi.getter
|
|
559
462
|
def input(self) -> pulumi.Output['outputs.SloInput']:
|
|
560
463
|
"""
|
|
561
|
-
|
|
562
|
-
count
|
|
464
|
+
Properties to configure an SLO object inputs
|
|
563
465
|
"""
|
|
564
466
|
return pulumi.get(self, "input")
|
|
565
467
|
|
|
@@ -567,7 +469,7 @@ class Slo(pulumi.CustomResource):
|
|
|
567
469
|
@pulumi.getter
|
|
568
470
|
def name(self) -> pulumi.Output[str]:
|
|
569
471
|
"""
|
|
570
|
-
Name of the SLO
|
|
472
|
+
Name of the SLO. Each SLO name must be unique within an organization.
|
|
571
473
|
"""
|
|
572
474
|
return pulumi.get(self, "name")
|
|
573
475
|
|
|
@@ -583,7 +485,7 @@ class Slo(pulumi.CustomResource):
|
|
|
583
485
|
@pulumi.getter
|
|
584
486
|
def type(self) -> pulumi.Output[str]:
|
|
585
487
|
"""
|
|
586
|
-
Type of the SLO. Currently
|
|
488
|
+
Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
587
489
|
"""
|
|
588
490
|
return pulumi.get(self, "type")
|
|
589
491
|
|