pulumi-signalfx 7.2.0a1710160099__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 +126 -72
- pulumi_signalfx/aws/_inputs.py +85 -16
- pulumi_signalfx/aws/external_integration.py +20 -43
- pulumi_signalfx/aws/integration.py +252 -321
- pulumi_signalfx/aws/outputs.py +21 -16
- pulumi_signalfx/aws/token_integration.py +76 -31
- pulumi_signalfx/azure/_inputs.py +41 -4
- pulumi_signalfx/azure/integration.py +170 -217
- 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 +191 -140
- pulumi_signalfx/data_link.py +102 -109
- pulumi_signalfx/detector.py +318 -383
- pulumi_signalfx/event_feed_chart.py +51 -86
- pulumi_signalfx/gcp/_inputs.py +51 -0
- pulumi_signalfx/gcp/integration.py +224 -148
- pulumi_signalfx/gcp/outputs.py +44 -0
- pulumi_signalfx/get_dimension_values.py +47 -8
- pulumi_signalfx/heatmap_chart.py +191 -174
- pulumi_signalfx/jira/integration.py +86 -103
- pulumi_signalfx/list_chart.py +243 -255
- pulumi_signalfx/log/_inputs.py +33 -2
- pulumi_signalfx/log/outputs.py +7 -2
- pulumi_signalfx/log/timeline.py +76 -87
- pulumi_signalfx/log/view.py +146 -113
- pulumi_signalfx/metric_ruleset.py +213 -70
- pulumi_signalfx/opsgenie/integration.py +51 -50
- pulumi_signalfx/org_token.py +111 -104
- pulumi_signalfx/outputs.py +661 -339
- pulumi_signalfx/pagerduty/get_integration.py +22 -25
- pulumi_signalfx/pagerduty/integration.py +42 -39
- pulumi_signalfx/provider.py +99 -0
- pulumi_signalfx/pulumi-plugin.json +2 -1
- pulumi_signalfx/servicenow/integration.py +68 -95
- pulumi_signalfx/single_value_chart.py +131 -162
- pulumi_signalfx/slack/integration.py +42 -41
- pulumi_signalfx/slo.py +97 -243
- pulumi_signalfx/slo_chart.py +197 -0
- pulumi_signalfx/table_chart.py +66 -65
- pulumi_signalfx/team.py +100 -107
- pulumi_signalfx/text_chart.py +72 -45
- pulumi_signalfx/time_chart.py +287 -352
- pulumi_signalfx/victorops/integration.py +42 -41
- pulumi_signalfx/webhook_integration.py +168 -61
- {pulumi_signalfx-7.2.0a1710160099.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.0a1710160099.dist-info → pulumi_signalfx-7.6.0a1736835428.dist-info}/WHEEL +1 -1
- pulumi_signalfx-7.2.0a1710160099.dist-info/RECORD +0 -64
- {pulumi_signalfx-7.2.0a1710160099.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
|
"""
|
|
@@ -208,15 +209,37 @@ class Slo(pulumi.CustomResource):
|
|
|
208
209
|
|
|
209
210
|
## Example
|
|
210
211
|
|
|
211
|
-
## Notification format
|
|
212
|
-
|
|
213
|
-
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:
|
|
214
|
-
|
|
215
|
-
<!--Start PulumiCodeChooser -->
|
|
216
212
|
```python
|
|
217
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
|
+
})
|
|
218
238
|
```
|
|
219
|
-
|
|
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:
|
|
220
243
|
|
|
221
244
|
See [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.
|
|
222
245
|
|
|
@@ -224,140 +247,45 @@ class Slo(pulumi.CustomResource):
|
|
|
224
247
|
|
|
225
248
|
### Email
|
|
226
249
|
|
|
227
|
-
<!--Start PulumiCodeChooser -->
|
|
228
|
-
```python
|
|
229
|
-
import pulumi
|
|
230
|
-
```
|
|
231
|
-
<!--End PulumiCodeChooser -->
|
|
232
|
-
|
|
233
250
|
### Jira
|
|
234
251
|
|
|
235
252
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also `jira.Integration`.
|
|
236
253
|
|
|
237
|
-
<!--Start PulumiCodeChooser -->
|
|
238
|
-
```python
|
|
239
|
-
import pulumi
|
|
240
|
-
```
|
|
241
|
-
<!--End PulumiCodeChooser -->
|
|
242
|
-
|
|
243
254
|
### OpsGenie
|
|
244
255
|
|
|
245
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.
|
|
246
257
|
|
|
247
|
-
<!--Start PulumiCodeChooser -->
|
|
248
|
-
```python
|
|
249
|
-
import pulumi
|
|
250
|
-
```
|
|
251
|
-
<!--End PulumiCodeChooser -->
|
|
252
|
-
|
|
253
258
|
### PagerDuty
|
|
254
259
|
|
|
255
|
-
<!--Start PulumiCodeChooser -->
|
|
256
|
-
```python
|
|
257
|
-
import pulumi
|
|
258
|
-
```
|
|
259
|
-
<!--End PulumiCodeChooser -->
|
|
260
|
-
|
|
261
260
|
### Slack
|
|
262
261
|
|
|
263
262
|
Exclude the `#` on the channel name:
|
|
264
263
|
|
|
265
|
-
<!--Start PulumiCodeChooser -->
|
|
266
|
-
```python
|
|
267
|
-
import pulumi
|
|
268
|
-
```
|
|
269
|
-
<!--End PulumiCodeChooser -->
|
|
270
|
-
|
|
271
264
|
### Team
|
|
272
265
|
|
|
273
266
|
Sends [notifications to a team](https://docs.signalfx.com/en/latest/managing/teams/team-notifications.html).
|
|
274
267
|
|
|
275
|
-
<!--Start PulumiCodeChooser -->
|
|
276
|
-
```python
|
|
277
|
-
import pulumi
|
|
278
|
-
```
|
|
279
|
-
<!--End PulumiCodeChooser -->
|
|
280
|
-
|
|
281
268
|
### TeamEmail
|
|
282
269
|
|
|
283
270
|
Sends an email to every member of a team.
|
|
284
271
|
|
|
285
|
-
<!--Start PulumiCodeChooser -->
|
|
286
|
-
```python
|
|
287
|
-
import pulumi
|
|
288
|
-
```
|
|
289
|
-
<!--End PulumiCodeChooser -->
|
|
290
|
-
|
|
291
272
|
### Splunk On-Call (formerly VictorOps)
|
|
292
273
|
|
|
293
|
-
<!--Start PulumiCodeChooser -->
|
|
294
|
-
```python
|
|
295
|
-
import pulumi
|
|
296
|
-
```
|
|
297
|
-
<!--End PulumiCodeChooser -->
|
|
298
|
-
|
|
299
274
|
### Webhooks
|
|
300
275
|
|
|
301
276
|
You need to include all the commas even if you only use a credential id.
|
|
302
277
|
|
|
303
278
|
You can either configure a Webhook to use an existing integration's credential id:
|
|
304
|
-
<!--Start PulumiCodeChooser -->
|
|
305
|
-
```python
|
|
306
|
-
import pulumi
|
|
307
|
-
```
|
|
308
|
-
<!--End PulumiCodeChooser -->
|
|
309
279
|
|
|
310
280
|
Or configure one inline:
|
|
311
281
|
|
|
312
|
-
<!--Start PulumiCodeChooser -->
|
|
313
|
-
```python
|
|
314
|
-
import pulumi
|
|
315
|
-
```
|
|
316
|
-
<!--End PulumiCodeChooser -->
|
|
317
|
-
|
|
318
|
-
## Arguments
|
|
319
|
-
|
|
320
|
-
* `name` - (Required) Name of the SLO. Each SLO name must be unique within an organization.
|
|
321
|
-
* `description` - (Optional) Description of the SLO.
|
|
322
|
-
* `type` - (Required) Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
323
|
-
* `input` - (Required) Properties to configure an SLO object inputs
|
|
324
|
-
* `program_text` - (Required) SignalFlow program and arguments text strings that define the streams used as successful event count and total event count
|
|
325
|
-
* `good_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of successful events
|
|
326
|
-
* `total_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of total events
|
|
327
|
-
* `target` - (Required) Define target value of the service level indicator in the appropriate time period.
|
|
328
|
-
* `type` - (Required) SLO target type can be the following type: `"RollingWindow"`
|
|
329
|
-
* `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.
|
|
330
|
-
* `slo` - (Required) Target value in the form of a percentage
|
|
331
|
-
* `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.
|
|
332
|
-
* `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.
|
|
333
|
-
* `rule` - (Required) Set of rules used for alerting.
|
|
334
|
-
* `severity` - (Required) The severity of the rule, must be one of: `"Critical"`, `"Major"`, `"Minor"`, `"Warning"`, `"Info"`.
|
|
335
|
-
* `description` - (Optional) Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.
|
|
336
|
-
* `disabled` - (Optional) When true, notifications and events will not be generated for the detect label. `false` by default.
|
|
337
|
-
* `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.
|
|
338
|
-
* `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.
|
|
339
|
-
* `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.
|
|
340
|
-
* `runbook_url` - (Optional) URL of page to consult when an alert is triggered. This can be used with custom notification messages.
|
|
341
|
-
* `tip` - (Optional) Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.
|
|
342
|
-
* `parameters` - (Optional) Parameters for the SLO alert rule. Each SLO alert rule type accepts different parameters. If not specified, default parameters are used.
|
|
343
|
-
* `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"`
|
|
344
|
-
* `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`
|
|
345
|
-
* `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`
|
|
346
|
-
* `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.
|
|
347
|
-
* `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.
|
|
348
|
-
* `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.
|
|
349
|
-
* `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.
|
|
350
|
-
* `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.
|
|
351
|
-
* `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.
|
|
352
|
-
|
|
353
282
|
:param str resource_name: The name of the resource.
|
|
354
283
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
355
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
356
|
-
:param pulumi.Input[
|
|
357
|
-
|
|
358
|
-
:param pulumi.Input[
|
|
359
|
-
:param pulumi.Input[
|
|
360
|
-
: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.
|
|
361
289
|
"""
|
|
362
290
|
...
|
|
363
291
|
@overload
|
|
@@ -372,15 +300,37 @@ class Slo(pulumi.CustomResource):
|
|
|
372
300
|
|
|
373
301
|
## Example
|
|
374
302
|
|
|
375
|
-
## Notification format
|
|
376
|
-
|
|
377
|
-
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:
|
|
378
|
-
|
|
379
|
-
<!--Start PulumiCodeChooser -->
|
|
380
303
|
```python
|
|
381
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
|
+
})
|
|
382
329
|
```
|
|
383
|
-
|
|
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:
|
|
384
334
|
|
|
385
335
|
See [Splunk Observability Cloud Docs](https://dev.splunk.com/observability/reference/api/detectors/latest) for more information.
|
|
386
336
|
|
|
@@ -388,132 +338,38 @@ class Slo(pulumi.CustomResource):
|
|
|
388
338
|
|
|
389
339
|
### Email
|
|
390
340
|
|
|
391
|
-
<!--Start PulumiCodeChooser -->
|
|
392
|
-
```python
|
|
393
|
-
import pulumi
|
|
394
|
-
```
|
|
395
|
-
<!--End PulumiCodeChooser -->
|
|
396
|
-
|
|
397
341
|
### Jira
|
|
398
342
|
|
|
399
343
|
Note that the `credentialId` is the Splunk-provided ID shown after setting up your Jira integration. See also `jira.Integration`.
|
|
400
344
|
|
|
401
|
-
<!--Start PulumiCodeChooser -->
|
|
402
|
-
```python
|
|
403
|
-
import pulumi
|
|
404
|
-
```
|
|
405
|
-
<!--End PulumiCodeChooser -->
|
|
406
|
-
|
|
407
345
|
### OpsGenie
|
|
408
346
|
|
|
409
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.
|
|
410
348
|
|
|
411
|
-
<!--Start PulumiCodeChooser -->
|
|
412
|
-
```python
|
|
413
|
-
import pulumi
|
|
414
|
-
```
|
|
415
|
-
<!--End PulumiCodeChooser -->
|
|
416
|
-
|
|
417
349
|
### PagerDuty
|
|
418
350
|
|
|
419
|
-
<!--Start PulumiCodeChooser -->
|
|
420
|
-
```python
|
|
421
|
-
import pulumi
|
|
422
|
-
```
|
|
423
|
-
<!--End PulumiCodeChooser -->
|
|
424
|
-
|
|
425
351
|
### Slack
|
|
426
352
|
|
|
427
353
|
Exclude the `#` on the channel name:
|
|
428
354
|
|
|
429
|
-
<!--Start PulumiCodeChooser -->
|
|
430
|
-
```python
|
|
431
|
-
import pulumi
|
|
432
|
-
```
|
|
433
|
-
<!--End PulumiCodeChooser -->
|
|
434
|
-
|
|
435
355
|
### Team
|
|
436
356
|
|
|
437
357
|
Sends [notifications to a team](https://docs.signalfx.com/en/latest/managing/teams/team-notifications.html).
|
|
438
358
|
|
|
439
|
-
<!--Start PulumiCodeChooser -->
|
|
440
|
-
```python
|
|
441
|
-
import pulumi
|
|
442
|
-
```
|
|
443
|
-
<!--End PulumiCodeChooser -->
|
|
444
|
-
|
|
445
359
|
### TeamEmail
|
|
446
360
|
|
|
447
361
|
Sends an email to every member of a team.
|
|
448
362
|
|
|
449
|
-
<!--Start PulumiCodeChooser -->
|
|
450
|
-
```python
|
|
451
|
-
import pulumi
|
|
452
|
-
```
|
|
453
|
-
<!--End PulumiCodeChooser -->
|
|
454
|
-
|
|
455
363
|
### Splunk On-Call (formerly VictorOps)
|
|
456
364
|
|
|
457
|
-
<!--Start PulumiCodeChooser -->
|
|
458
|
-
```python
|
|
459
|
-
import pulumi
|
|
460
|
-
```
|
|
461
|
-
<!--End PulumiCodeChooser -->
|
|
462
|
-
|
|
463
365
|
### Webhooks
|
|
464
366
|
|
|
465
367
|
You need to include all the commas even if you only use a credential id.
|
|
466
368
|
|
|
467
369
|
You can either configure a Webhook to use an existing integration's credential id:
|
|
468
|
-
<!--Start PulumiCodeChooser -->
|
|
469
|
-
```python
|
|
470
|
-
import pulumi
|
|
471
|
-
```
|
|
472
|
-
<!--End PulumiCodeChooser -->
|
|
473
370
|
|
|
474
371
|
Or configure one inline:
|
|
475
372
|
|
|
476
|
-
<!--Start PulumiCodeChooser -->
|
|
477
|
-
```python
|
|
478
|
-
import pulumi
|
|
479
|
-
```
|
|
480
|
-
<!--End PulumiCodeChooser -->
|
|
481
|
-
|
|
482
|
-
## Arguments
|
|
483
|
-
|
|
484
|
-
* `name` - (Required) Name of the SLO. Each SLO name must be unique within an organization.
|
|
485
|
-
* `description` - (Optional) Description of the SLO.
|
|
486
|
-
* `type` - (Required) Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
487
|
-
* `input` - (Required) Properties to configure an SLO object inputs
|
|
488
|
-
* `program_text` - (Required) SignalFlow program and arguments text strings that define the streams used as successful event count and total event count
|
|
489
|
-
* `good_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of successful events
|
|
490
|
-
* `total_events_label` - (Required) Label used in `"program_text"` that refers to the data block which contains the stream of total events
|
|
491
|
-
* `target` - (Required) Define target value of the service level indicator in the appropriate time period.
|
|
492
|
-
* `type` - (Required) SLO target type can be the following type: `"RollingWindow"`
|
|
493
|
-
* `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.
|
|
494
|
-
* `slo` - (Required) Target value in the form of a percentage
|
|
495
|
-
* `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.
|
|
496
|
-
* `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.
|
|
497
|
-
* `rule` - (Required) Set of rules used for alerting.
|
|
498
|
-
* `severity` - (Required) The severity of the rule, must be one of: `"Critical"`, `"Major"`, `"Minor"`, `"Warning"`, `"Info"`.
|
|
499
|
-
* `description` - (Optional) Description for the rule. Displays as the alert condition in the Alert Rules tab of the detector editor in the web UI.
|
|
500
|
-
* `disabled` - (Optional) When true, notifications and events will not be generated for the detect label. `false` by default.
|
|
501
|
-
* `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.
|
|
502
|
-
* `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.
|
|
503
|
-
* `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.
|
|
504
|
-
* `runbook_url` - (Optional) URL of page to consult when an alert is triggered. This can be used with custom notification messages.
|
|
505
|
-
* `tip` - (Optional) Plain text suggested first course of action, such as a command line to execute. This can be used with custom notification messages.
|
|
506
|
-
* `parameters` - (Optional) Parameters for the SLO alert rule. Each SLO alert rule type accepts different parameters. If not specified, default parameters are used.
|
|
507
|
-
* `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"`
|
|
508
|
-
* `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`
|
|
509
|
-
* `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`
|
|
510
|
-
* `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.
|
|
511
|
-
* `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.
|
|
512
|
-
* `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.
|
|
513
|
-
* `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.
|
|
514
|
-
* `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.
|
|
515
|
-
* `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.
|
|
516
|
-
|
|
517
373
|
:param str resource_name: The name of the resource.
|
|
518
374
|
:param SloArgs args: The arguments to use to populate this resource's properties.
|
|
519
375
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
@@ -530,9 +386,9 @@ class Slo(pulumi.CustomResource):
|
|
|
530
386
|
resource_name: str,
|
|
531
387
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
532
388
|
description: Optional[pulumi.Input[str]] = None,
|
|
533
|
-
input: Optional[pulumi.Input[
|
|
389
|
+
input: Optional[pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']]] = None,
|
|
534
390
|
name: Optional[pulumi.Input[str]] = None,
|
|
535
|
-
target: Optional[pulumi.Input[
|
|
391
|
+
target: Optional[pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']]] = None,
|
|
536
392
|
type: Optional[pulumi.Input[str]] = None,
|
|
537
393
|
__props__=None):
|
|
538
394
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
@@ -565,9 +421,9 @@ class Slo(pulumi.CustomResource):
|
|
|
565
421
|
id: pulumi.Input[str],
|
|
566
422
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
567
423
|
description: Optional[pulumi.Input[str]] = None,
|
|
568
|
-
input: Optional[pulumi.Input[
|
|
424
|
+
input: Optional[pulumi.Input[Union['SloInputArgs', 'SloInputArgsDict']]] = None,
|
|
569
425
|
name: Optional[pulumi.Input[str]] = None,
|
|
570
|
-
target: Optional[pulumi.Input[
|
|
426
|
+
target: Optional[pulumi.Input[Union['SloTargetArgs', 'SloTargetArgsDict']]] = None,
|
|
571
427
|
type: Optional[pulumi.Input[str]] = None) -> 'Slo':
|
|
572
428
|
"""
|
|
573
429
|
Get an existing Slo resource's state with the given name, id, and optional extra
|
|
@@ -576,12 +432,11 @@ class Slo(pulumi.CustomResource):
|
|
|
576
432
|
:param str resource_name: The unique name of the resulting resource.
|
|
577
433
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
578
434
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
579
|
-
:param pulumi.Input[str] description: Description of the SLO
|
|
580
|
-
:param pulumi.Input[
|
|
581
|
-
|
|
582
|
-
:param pulumi.Input[
|
|
583
|
-
:param pulumi.Input[
|
|
584
|
-
: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.
|
|
585
440
|
"""
|
|
586
441
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
587
442
|
|
|
@@ -598,7 +453,7 @@ class Slo(pulumi.CustomResource):
|
|
|
598
453
|
@pulumi.getter
|
|
599
454
|
def description(self) -> pulumi.Output[Optional[str]]:
|
|
600
455
|
"""
|
|
601
|
-
Description of the SLO
|
|
456
|
+
Description of the SLO.
|
|
602
457
|
"""
|
|
603
458
|
return pulumi.get(self, "description")
|
|
604
459
|
|
|
@@ -606,8 +461,7 @@ class Slo(pulumi.CustomResource):
|
|
|
606
461
|
@pulumi.getter
|
|
607
462
|
def input(self) -> pulumi.Output['outputs.SloInput']:
|
|
608
463
|
"""
|
|
609
|
-
|
|
610
|
-
count
|
|
464
|
+
Properties to configure an SLO object inputs
|
|
611
465
|
"""
|
|
612
466
|
return pulumi.get(self, "input")
|
|
613
467
|
|
|
@@ -615,7 +469,7 @@ class Slo(pulumi.CustomResource):
|
|
|
615
469
|
@pulumi.getter
|
|
616
470
|
def name(self) -> pulumi.Output[str]:
|
|
617
471
|
"""
|
|
618
|
-
Name of the SLO
|
|
472
|
+
Name of the SLO. Each SLO name must be unique within an organization.
|
|
619
473
|
"""
|
|
620
474
|
return pulumi.get(self, "name")
|
|
621
475
|
|
|
@@ -631,7 +485,7 @@ class Slo(pulumi.CustomResource):
|
|
|
631
485
|
@pulumi.getter
|
|
632
486
|
def type(self) -> pulumi.Output[str]:
|
|
633
487
|
"""
|
|
634
|
-
Type of the SLO. Currently
|
|
488
|
+
Type of the SLO. Currently just: `"RequestBased"` is supported.
|
|
635
489
|
"""
|
|
636
490
|
return pulumi.get(self, "type")
|
|
637
491
|
|