microsoft-cdktfconstructs 0.0.3.dev11__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.
- microsoft_cdktfconstructs/__init__.py +217 -0
- microsoft_cdktfconstructs/_jsii/__init__.py +31 -0
- microsoft_cdktfconstructs/_jsii/terraform-cdk-constructs@0.0.3-pre.11.jsii.tgz +0 -0
- microsoft_cdktfconstructs/azure_applicationgateway/__init__.py +823 -0
- microsoft_cdktfconstructs/azure_applicationinsights/__init__.py +397 -0
- microsoft_cdktfconstructs/azure_containerregistry/__init__.py +320 -0
- microsoft_cdktfconstructs/azure_eventhub/__init__.py +2213 -0
- microsoft_cdktfconstructs/azure_functionapp/__init__.py +908 -0
- microsoft_cdktfconstructs/azure_keyvault/__init__.py +1982 -0
- microsoft_cdktfconstructs/azure_kubernetes/__init__.py +400 -0
- microsoft_cdktfconstructs/azure_kusto/__init__.py +2485 -0
- microsoft_cdktfconstructs/azure_loganalytics/__init__.py +652 -0
- microsoft_cdktfconstructs/azure_metricalert/__init__.py +1260 -0
- microsoft_cdktfconstructs/azure_networksecuritygroup/__init__.py +1742 -0
- microsoft_cdktfconstructs/azure_queryrulealert/__init__.py +1189 -0
- microsoft_cdktfconstructs/azure_resourcegroup/__init__.py +320 -0
- microsoft_cdktfconstructs/azure_storageaccount/__init__.py +1910 -0
- microsoft_cdktfconstructs/azure_virtualmachine/__init__.py +1460 -0
- microsoft_cdktfconstructs/azure_virtualmachinescaleset/__init__.py +1185 -0
- microsoft_cdktfconstructs/azure_virtualnetwork/__init__.py +707 -0
- microsoft_cdktfconstructs/core_azure/__init__.py +931 -0
- microsoft_cdktfconstructs/py.typed +1 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/LICENSE +19 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/METADATA +188 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/RECORD +27 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/WHEEL +5 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1189 @@
|
|
|
1
|
+
'''
|
|
2
|
+
# Azure Scheduled Query Rule Alert Construct
|
|
3
|
+
|
|
4
|
+
This class represents a Scheduled Query Rule Alert resource (a.k.a. Log Query Alert) in Azure.
|
|
5
|
+
|
|
6
|
+
## What is Azure Scheduled Query Rule Alert?
|
|
7
|
+
|
|
8
|
+
An Azure Scheduled Query Rule Alert lets us monitor a specific condition in Azure resources using log data. We can use KQL language to analyze logs, set alert triggering conditions when query results meet defined conditions, and configure notifications to respond to potential problems timely. This helps maintain the health, performance, and security of our Azure environment.
|
|
9
|
+
|
|
10
|
+
You can learn more about Azure Query Rule Alert in the [official Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/tutorial-log-alert).
|
|
11
|
+
|
|
12
|
+
## Azure Scheduled Query Rule Alert Class Properties
|
|
13
|
+
|
|
14
|
+
This class has several properties that control the Alert Rules:
|
|
15
|
+
|
|
16
|
+
* `name`: The name of the Monitor Scheduled Query Rule.
|
|
17
|
+
* `resourceGroupName`: The name of the resource group in which the Monitor Scheduled Query Rule is created.
|
|
18
|
+
* `location`: The location of the Monitor Scheduled Query Rule.
|
|
19
|
+
* `criteriaOperator`: Specifies the criteria operator. Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
20
|
+
* `criteriaQuery`: The query to run on logs. The results returned by this query are used to populate the alert.
|
|
21
|
+
* `criteriaThreshold`: Specifies the criteria threshold value that activates the alert.
|
|
22
|
+
* `criteriatimeAggregationMethod`: The type of aggregation to apply to the data points in aggregation granularity. Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
23
|
+
* `criteriaMetricMeasureColumn`: Specifies the column containing the metric measure number.
|
|
24
|
+
* `evaluationFrequency`: How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
25
|
+
* `scopes`: Specifies the list of resource IDs that this scheduled query rule is scoped to.
|
|
26
|
+
* `severity`: Severity of the alert. Should be an integer between 0 and 4. Value of 0 is severest.
|
|
27
|
+
* `windowDuration`: Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).
|
|
28
|
+
* `criteriaDimension`: (Optional) Specifies the dimension of the criteria.
|
|
29
|
+
|
|
30
|
+
* `name`: Name of the dimension.
|
|
31
|
+
* `operator`: Operator for dimension values. Possible values are Exclude,and Include.
|
|
32
|
+
* `values`: List of dimension values. Use a wildcard * to collect all.
|
|
33
|
+
* `criteriaFailingPeriods`: (Optional) Specifies the number of evaluation periods.
|
|
34
|
+
|
|
35
|
+
* `minimumFailingPeriodsToTriggerAlert`: Specifies the number of violations to trigger an alert. Should be smaller or equal to number_of_evaluation_periods. Possible value is integer between 1 and 6.
|
|
36
|
+
* `numberOfEvaluationPeriods`: Specifies the number of evaluation periods. Possible value is integer between 1 and 6.
|
|
37
|
+
* `actionActionGroupId`: (Optional) Specifies the action group IDs to trigger when the alert fires.
|
|
38
|
+
* `autoMitigationEnabled`: (Optional) Specifies the flag that indicates whether the alert should be automatically resolved or not. Defaults to false.
|
|
39
|
+
* `workspaceAlertsStorageEnabled`: (Optional) Specifies the flag which indicates whether this scheduled query rule check if storage is configured. Defaults to false.
|
|
40
|
+
* `description`: (Optional) Specifies the description of the scheduled query rule.
|
|
41
|
+
* `displayName`: (Optional) Specifies the display name of the alert rule.
|
|
42
|
+
* `enabled`: (Optional) Specifies the flag which indicates whether this scheduled query rule is enabled. Defaults to true.
|
|
43
|
+
* `muteActionsAfterAlertDuration`: (Optional) Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
44
|
+
* `queryTimeRangeOverride`: (Optional) Set this if the alert evaluation period is different from the query time range. If not specified, the value is window_duration*number_of_evaluation_periods. Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
45
|
+
* `skipQueryValidation`: (Optional) Specifies the flag which indicates whether the provided query should be validated or not. Defaults to true.
|
|
46
|
+
* `tags`: (Optional) A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.
|
|
47
|
+
|
|
48
|
+
## Deploying a Scheduled Query Rule Alert
|
|
49
|
+
|
|
50
|
+
You can deploy a Scheduled Query Rule Alert using this class like so:
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
// Create a Resource Group first
|
|
54
|
+
import * as rg from "../azure-resourcegroup";
|
|
55
|
+
const resourceGroup = new rg.Group(this, "myResourceGroup", {
|
|
56
|
+
name: 'myResourceGroup',
|
|
57
|
+
location: 'eastus',
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// Create a Log Analytics Workspace
|
|
61
|
+
import * as law from "../azure-loganalytics";
|
|
62
|
+
const logAnalyticsWorkspace = new la.Workspace(this, 'myLogAnalytics', {
|
|
63
|
+
name: 'myLogAnalytics',
|
|
64
|
+
location: 'eastus',
|
|
65
|
+
resource_group_name: resourceGroup.name,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Create a Scheduled Query Rule Alert with defult settings in Log Analytics Workspace
|
|
69
|
+
import * as queryalert from "../azure-queryrulealert";
|
|
70
|
+
const queryRuleAlert = new queryalert.QueryRuleAlert(this, 'queryRuleAlert', {
|
|
71
|
+
name: `qra-${this.name}`,
|
|
72
|
+
resourceGroupName: resourceGroup.name,
|
|
73
|
+
location: 'eastus',
|
|
74
|
+
criteriaOperator: "GreaterThan",
|
|
75
|
+
criteriaQuery: `
|
|
76
|
+
AppExceptions
|
|
77
|
+
| where Message has "file can not be reloaded"
|
|
78
|
+
`,
|
|
79
|
+
criteriaThreshold: 100,
|
|
80
|
+
criteriatimeAggregationMethod: "Count",
|
|
81
|
+
evaluationFrequency: "PT5M",
|
|
82
|
+
windowDuration: "PT30M",
|
|
83
|
+
scopes: [logAnalyticsWorkspace.id],
|
|
84
|
+
severity: 4,
|
|
85
|
+
criteriaFailingPeriods: {
|
|
86
|
+
minimumFailingPeriodsToTriggerAlert: 1,
|
|
87
|
+
numberOfEvaluationPeriods: 1,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Full example can be found [here](test/ExampleAzureQueryRuleAlert.ts).
|
|
93
|
+
'''
|
|
94
|
+
from pkgutil import extend_path
|
|
95
|
+
__path__ = extend_path(__path__, __name__)
|
|
96
|
+
|
|
97
|
+
import abc
|
|
98
|
+
import builtins
|
|
99
|
+
import datetime
|
|
100
|
+
import enum
|
|
101
|
+
import typing
|
|
102
|
+
|
|
103
|
+
import jsii
|
|
104
|
+
import publication
|
|
105
|
+
import typing_extensions
|
|
106
|
+
|
|
107
|
+
from typeguard import check_type
|
|
108
|
+
|
|
109
|
+
from .._jsii import *
|
|
110
|
+
|
|
111
|
+
import cdktf_cdktf_provider_azurerm.resource_group as _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf
|
|
112
|
+
import constructs as _constructs_77d1e7e8
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@jsii.data_type(
|
|
116
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_queryrulealert.BaseAzureQueryRuleAlertProps",
|
|
117
|
+
jsii_struct_bases=[],
|
|
118
|
+
name_mapping={
|
|
119
|
+
"criteria_operator": "criteriaOperator",
|
|
120
|
+
"criteria_query": "criteriaQuery",
|
|
121
|
+
"criteria_threshold": "criteriaThreshold",
|
|
122
|
+
"criteriatime_aggregation_method": "criteriatimeAggregationMethod",
|
|
123
|
+
"evaluation_frequency": "evaluationFrequency",
|
|
124
|
+
"location": "location",
|
|
125
|
+
"name": "name",
|
|
126
|
+
"resource_group": "resourceGroup",
|
|
127
|
+
"severity": "severity",
|
|
128
|
+
"window_duration": "windowDuration",
|
|
129
|
+
"action_action_group_id": "actionActionGroupId",
|
|
130
|
+
"auto_mitigation_enabled": "autoMitigationEnabled",
|
|
131
|
+
"criteria_dimension_name": "criteriaDimensionName",
|
|
132
|
+
"criteria_dimension_operator": "criteriaDimensionOperator",
|
|
133
|
+
"criteria_dimension_values": "criteriaDimensionValues",
|
|
134
|
+
"criteria_fail_minimum_failing_periods_to_trigger_alert": "criteriaFailMinimumFailingPeriodsToTriggerAlert",
|
|
135
|
+
"criteria_fail_number_of_evaluation_periods": "criteriaFailNumberOfEvaluationPeriods",
|
|
136
|
+
"criteria_metric_measure_column": "criteriaMetricMeasureColumn",
|
|
137
|
+
"description": "description",
|
|
138
|
+
"display_name": "displayName",
|
|
139
|
+
"enabled": "enabled",
|
|
140
|
+
"mute_actions_after_alert_duration": "muteActionsAfterAlertDuration",
|
|
141
|
+
"query_time_range_override": "queryTimeRangeOverride",
|
|
142
|
+
"skip_query_validation": "skipQueryValidation",
|
|
143
|
+
"tags": "tags",
|
|
144
|
+
"workspace_alerts_storage_enabled": "workspaceAlertsStorageEnabled",
|
|
145
|
+
},
|
|
146
|
+
)
|
|
147
|
+
class BaseAzureQueryRuleAlertProps:
|
|
148
|
+
def __init__(
|
|
149
|
+
self,
|
|
150
|
+
*,
|
|
151
|
+
criteria_operator: builtins.str,
|
|
152
|
+
criteria_query: builtins.str,
|
|
153
|
+
criteria_threshold: jsii.Number,
|
|
154
|
+
criteriatime_aggregation_method: builtins.str,
|
|
155
|
+
evaluation_frequency: builtins.str,
|
|
156
|
+
location: builtins.str,
|
|
157
|
+
name: builtins.str,
|
|
158
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
159
|
+
severity: jsii.Number,
|
|
160
|
+
window_duration: builtins.str,
|
|
161
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
162
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
163
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
164
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
165
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
166
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
167
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
168
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
169
|
+
description: typing.Optional[builtins.str] = None,
|
|
170
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
171
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
172
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
173
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
174
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
175
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
176
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
177
|
+
) -> None:
|
|
178
|
+
'''
|
|
179
|
+
:param criteria_operator: Specifies the criteria operator. Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
180
|
+
:param criteria_query: The query to run on logs. The results returned by this query are used to populate the alert.
|
|
181
|
+
:param criteria_threshold: Specifies the criteria threshold value that activates the alert.
|
|
182
|
+
:param criteriatime_aggregation_method: The type of aggregation to apply to the data points in aggregation granularity. Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
183
|
+
:param evaluation_frequency: How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
184
|
+
:param location: The location of the Monitor Scheduled Query Rule.
|
|
185
|
+
:param name: The name of the Monitor Scheduled Query Rule.
|
|
186
|
+
:param resource_group: The name of the resource group in which the Monitor Scheduled Query Rule is created.
|
|
187
|
+
:param severity: Severity of the alert. Should be an integer between 0 and 4. Value of 0 is severest.
|
|
188
|
+
:param window_duration: Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).
|
|
189
|
+
:param action_action_group_id: Specifies the action group IDs to trigger when the alert fires.
|
|
190
|
+
:param auto_mitigation_enabled: Specifies the flag that indicates whether the alert should be automatically resolved or not. Default: false
|
|
191
|
+
:param criteria_dimension_name: Name of the dimension for criteria.
|
|
192
|
+
:param criteria_dimension_operator: Operator for dimension values. Possible values are Exclude, and Include.
|
|
193
|
+
:param criteria_dimension_values: List of dimension values. Use a wildcard * to collect all.
|
|
194
|
+
:param criteria_fail_minimum_failing_periods_to_trigger_alert: Specifies the number of violations to trigger an alert. Should be smaller or equal to number_of_evaluation_periods. Possible value is integer between 1 and 6.
|
|
195
|
+
:param criteria_fail_number_of_evaluation_periods: Specifies the number of evaluation periods. Possible value is integer between 1 and 6.
|
|
196
|
+
:param criteria_metric_measure_column: Specifies the column containing the metric measure number. criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total. And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
|
|
197
|
+
:param description: Specifies the description of the scheduled query rule.
|
|
198
|
+
:param display_name: Specifies the display name of the alert rule.
|
|
199
|
+
:param enabled: Specifies the flag which indicates whether this scheduled query rule is enabled. Default: true
|
|
200
|
+
:param mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
201
|
+
:param query_time_range_override: Set this if the alert evaluation period is different from the query time range. If not specified, the value is window_duration*number_of_evaluation_periods. Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
202
|
+
:param skip_query_validation: Specifies the flag which indicates whether the provided query should be validated or not. Default: true
|
|
203
|
+
:param tags: A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.
|
|
204
|
+
:param workspace_alerts_storage_enabled: Specifies the flag which indicates whether this scheduled query rule check if storage is configured. Default: false
|
|
205
|
+
'''
|
|
206
|
+
if __debug__:
|
|
207
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cfc4c48635f05a11dfa1bd2d50a2d15acf98f68750654cec7e5e36b3d1239110)
|
|
208
|
+
check_type(argname="argument criteria_operator", value=criteria_operator, expected_type=type_hints["criteria_operator"])
|
|
209
|
+
check_type(argname="argument criteria_query", value=criteria_query, expected_type=type_hints["criteria_query"])
|
|
210
|
+
check_type(argname="argument criteria_threshold", value=criteria_threshold, expected_type=type_hints["criteria_threshold"])
|
|
211
|
+
check_type(argname="argument criteriatime_aggregation_method", value=criteriatime_aggregation_method, expected_type=type_hints["criteriatime_aggregation_method"])
|
|
212
|
+
check_type(argname="argument evaluation_frequency", value=evaluation_frequency, expected_type=type_hints["evaluation_frequency"])
|
|
213
|
+
check_type(argname="argument location", value=location, expected_type=type_hints["location"])
|
|
214
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
215
|
+
check_type(argname="argument resource_group", value=resource_group, expected_type=type_hints["resource_group"])
|
|
216
|
+
check_type(argname="argument severity", value=severity, expected_type=type_hints["severity"])
|
|
217
|
+
check_type(argname="argument window_duration", value=window_duration, expected_type=type_hints["window_duration"])
|
|
218
|
+
check_type(argname="argument action_action_group_id", value=action_action_group_id, expected_type=type_hints["action_action_group_id"])
|
|
219
|
+
check_type(argname="argument auto_mitigation_enabled", value=auto_mitigation_enabled, expected_type=type_hints["auto_mitigation_enabled"])
|
|
220
|
+
check_type(argname="argument criteria_dimension_name", value=criteria_dimension_name, expected_type=type_hints["criteria_dimension_name"])
|
|
221
|
+
check_type(argname="argument criteria_dimension_operator", value=criteria_dimension_operator, expected_type=type_hints["criteria_dimension_operator"])
|
|
222
|
+
check_type(argname="argument criteria_dimension_values", value=criteria_dimension_values, expected_type=type_hints["criteria_dimension_values"])
|
|
223
|
+
check_type(argname="argument criteria_fail_minimum_failing_periods_to_trigger_alert", value=criteria_fail_minimum_failing_periods_to_trigger_alert, expected_type=type_hints["criteria_fail_minimum_failing_periods_to_trigger_alert"])
|
|
224
|
+
check_type(argname="argument criteria_fail_number_of_evaluation_periods", value=criteria_fail_number_of_evaluation_periods, expected_type=type_hints["criteria_fail_number_of_evaluation_periods"])
|
|
225
|
+
check_type(argname="argument criteria_metric_measure_column", value=criteria_metric_measure_column, expected_type=type_hints["criteria_metric_measure_column"])
|
|
226
|
+
check_type(argname="argument description", value=description, expected_type=type_hints["description"])
|
|
227
|
+
check_type(argname="argument display_name", value=display_name, expected_type=type_hints["display_name"])
|
|
228
|
+
check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
|
|
229
|
+
check_type(argname="argument mute_actions_after_alert_duration", value=mute_actions_after_alert_duration, expected_type=type_hints["mute_actions_after_alert_duration"])
|
|
230
|
+
check_type(argname="argument query_time_range_override", value=query_time_range_override, expected_type=type_hints["query_time_range_override"])
|
|
231
|
+
check_type(argname="argument skip_query_validation", value=skip_query_validation, expected_type=type_hints["skip_query_validation"])
|
|
232
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
233
|
+
check_type(argname="argument workspace_alerts_storage_enabled", value=workspace_alerts_storage_enabled, expected_type=type_hints["workspace_alerts_storage_enabled"])
|
|
234
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
235
|
+
"criteria_operator": criteria_operator,
|
|
236
|
+
"criteria_query": criteria_query,
|
|
237
|
+
"criteria_threshold": criteria_threshold,
|
|
238
|
+
"criteriatime_aggregation_method": criteriatime_aggregation_method,
|
|
239
|
+
"evaluation_frequency": evaluation_frequency,
|
|
240
|
+
"location": location,
|
|
241
|
+
"name": name,
|
|
242
|
+
"resource_group": resource_group,
|
|
243
|
+
"severity": severity,
|
|
244
|
+
"window_duration": window_duration,
|
|
245
|
+
}
|
|
246
|
+
if action_action_group_id is not None:
|
|
247
|
+
self._values["action_action_group_id"] = action_action_group_id
|
|
248
|
+
if auto_mitigation_enabled is not None:
|
|
249
|
+
self._values["auto_mitigation_enabled"] = auto_mitigation_enabled
|
|
250
|
+
if criteria_dimension_name is not None:
|
|
251
|
+
self._values["criteria_dimension_name"] = criteria_dimension_name
|
|
252
|
+
if criteria_dimension_operator is not None:
|
|
253
|
+
self._values["criteria_dimension_operator"] = criteria_dimension_operator
|
|
254
|
+
if criteria_dimension_values is not None:
|
|
255
|
+
self._values["criteria_dimension_values"] = criteria_dimension_values
|
|
256
|
+
if criteria_fail_minimum_failing_periods_to_trigger_alert is not None:
|
|
257
|
+
self._values["criteria_fail_minimum_failing_periods_to_trigger_alert"] = criteria_fail_minimum_failing_periods_to_trigger_alert
|
|
258
|
+
if criteria_fail_number_of_evaluation_periods is not None:
|
|
259
|
+
self._values["criteria_fail_number_of_evaluation_periods"] = criteria_fail_number_of_evaluation_periods
|
|
260
|
+
if criteria_metric_measure_column is not None:
|
|
261
|
+
self._values["criteria_metric_measure_column"] = criteria_metric_measure_column
|
|
262
|
+
if description is not None:
|
|
263
|
+
self._values["description"] = description
|
|
264
|
+
if display_name is not None:
|
|
265
|
+
self._values["display_name"] = display_name
|
|
266
|
+
if enabled is not None:
|
|
267
|
+
self._values["enabled"] = enabled
|
|
268
|
+
if mute_actions_after_alert_duration is not None:
|
|
269
|
+
self._values["mute_actions_after_alert_duration"] = mute_actions_after_alert_duration
|
|
270
|
+
if query_time_range_override is not None:
|
|
271
|
+
self._values["query_time_range_override"] = query_time_range_override
|
|
272
|
+
if skip_query_validation is not None:
|
|
273
|
+
self._values["skip_query_validation"] = skip_query_validation
|
|
274
|
+
if tags is not None:
|
|
275
|
+
self._values["tags"] = tags
|
|
276
|
+
if workspace_alerts_storage_enabled is not None:
|
|
277
|
+
self._values["workspace_alerts_storage_enabled"] = workspace_alerts_storage_enabled
|
|
278
|
+
|
|
279
|
+
@builtins.property
|
|
280
|
+
def criteria_operator(self) -> builtins.str:
|
|
281
|
+
'''Specifies the criteria operator.
|
|
282
|
+
|
|
283
|
+
Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
284
|
+
'''
|
|
285
|
+
result = self._values.get("criteria_operator")
|
|
286
|
+
assert result is not None, "Required property 'criteria_operator' is missing"
|
|
287
|
+
return typing.cast(builtins.str, result)
|
|
288
|
+
|
|
289
|
+
@builtins.property
|
|
290
|
+
def criteria_query(self) -> builtins.str:
|
|
291
|
+
'''The query to run on logs.
|
|
292
|
+
|
|
293
|
+
The results returned by this query are used to populate the alert.
|
|
294
|
+
'''
|
|
295
|
+
result = self._values.get("criteria_query")
|
|
296
|
+
assert result is not None, "Required property 'criteria_query' is missing"
|
|
297
|
+
return typing.cast(builtins.str, result)
|
|
298
|
+
|
|
299
|
+
@builtins.property
|
|
300
|
+
def criteria_threshold(self) -> jsii.Number:
|
|
301
|
+
'''Specifies the criteria threshold value that activates the alert.'''
|
|
302
|
+
result = self._values.get("criteria_threshold")
|
|
303
|
+
assert result is not None, "Required property 'criteria_threshold' is missing"
|
|
304
|
+
return typing.cast(jsii.Number, result)
|
|
305
|
+
|
|
306
|
+
@builtins.property
|
|
307
|
+
def criteriatime_aggregation_method(self) -> builtins.str:
|
|
308
|
+
'''The type of aggregation to apply to the data points in aggregation granularity.
|
|
309
|
+
|
|
310
|
+
Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
311
|
+
'''
|
|
312
|
+
result = self._values.get("criteriatime_aggregation_method")
|
|
313
|
+
assert result is not None, "Required property 'criteriatime_aggregation_method' is missing"
|
|
314
|
+
return typing.cast(builtins.str, result)
|
|
315
|
+
|
|
316
|
+
@builtins.property
|
|
317
|
+
def evaluation_frequency(self) -> builtins.str:
|
|
318
|
+
'''How often the scheduled query rule is evaluated, represented in ISO 8601 duration format.
|
|
319
|
+
|
|
320
|
+
Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
321
|
+
'''
|
|
322
|
+
result = self._values.get("evaluation_frequency")
|
|
323
|
+
assert result is not None, "Required property 'evaluation_frequency' is missing"
|
|
324
|
+
return typing.cast(builtins.str, result)
|
|
325
|
+
|
|
326
|
+
@builtins.property
|
|
327
|
+
def location(self) -> builtins.str:
|
|
328
|
+
'''The location of the Monitor Scheduled Query Rule.'''
|
|
329
|
+
result = self._values.get("location")
|
|
330
|
+
assert result is not None, "Required property 'location' is missing"
|
|
331
|
+
return typing.cast(builtins.str, result)
|
|
332
|
+
|
|
333
|
+
@builtins.property
|
|
334
|
+
def name(self) -> builtins.str:
|
|
335
|
+
'''The name of the Monitor Scheduled Query Rule.'''
|
|
336
|
+
result = self._values.get("name")
|
|
337
|
+
assert result is not None, "Required property 'name' is missing"
|
|
338
|
+
return typing.cast(builtins.str, result)
|
|
339
|
+
|
|
340
|
+
@builtins.property
|
|
341
|
+
def resource_group(
|
|
342
|
+
self,
|
|
343
|
+
) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
|
|
344
|
+
'''The name of the resource group in which the Monitor Scheduled Query Rule is created.'''
|
|
345
|
+
result = self._values.get("resource_group")
|
|
346
|
+
assert result is not None, "Required property 'resource_group' is missing"
|
|
347
|
+
return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, result)
|
|
348
|
+
|
|
349
|
+
@builtins.property
|
|
350
|
+
def severity(self) -> jsii.Number:
|
|
351
|
+
'''Severity of the alert.
|
|
352
|
+
|
|
353
|
+
Should be an integer between 0 and 4. Value of 0 is severest.
|
|
354
|
+
'''
|
|
355
|
+
result = self._values.get("severity")
|
|
356
|
+
assert result is not None, "Required property 'severity' is missing"
|
|
357
|
+
return typing.cast(jsii.Number, result)
|
|
358
|
+
|
|
359
|
+
@builtins.property
|
|
360
|
+
def window_duration(self) -> builtins.str:
|
|
361
|
+
'''Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).'''
|
|
362
|
+
result = self._values.get("window_duration")
|
|
363
|
+
assert result is not None, "Required property 'window_duration' is missing"
|
|
364
|
+
return typing.cast(builtins.str, result)
|
|
365
|
+
|
|
366
|
+
@builtins.property
|
|
367
|
+
def action_action_group_id(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
368
|
+
'''Specifies the action group IDs to trigger when the alert fires.'''
|
|
369
|
+
result = self._values.get("action_action_group_id")
|
|
370
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
371
|
+
|
|
372
|
+
@builtins.property
|
|
373
|
+
def auto_mitigation_enabled(self) -> typing.Optional[builtins.bool]:
|
|
374
|
+
'''Specifies the flag that indicates whether the alert should be automatically resolved or not.
|
|
375
|
+
|
|
376
|
+
:default: false
|
|
377
|
+
'''
|
|
378
|
+
result = self._values.get("auto_mitigation_enabled")
|
|
379
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
380
|
+
|
|
381
|
+
@builtins.property
|
|
382
|
+
def criteria_dimension_name(self) -> typing.Optional[builtins.str]:
|
|
383
|
+
'''Name of the dimension for criteria.'''
|
|
384
|
+
result = self._values.get("criteria_dimension_name")
|
|
385
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
386
|
+
|
|
387
|
+
@builtins.property
|
|
388
|
+
def criteria_dimension_operator(self) -> typing.Optional[builtins.str]:
|
|
389
|
+
'''Operator for dimension values.
|
|
390
|
+
|
|
391
|
+
Possible values are Exclude, and Include.
|
|
392
|
+
'''
|
|
393
|
+
result = self._values.get("criteria_dimension_operator")
|
|
394
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
395
|
+
|
|
396
|
+
@builtins.property
|
|
397
|
+
def criteria_dimension_values(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
398
|
+
'''List of dimension values.
|
|
399
|
+
|
|
400
|
+
Use a wildcard * to collect all.
|
|
401
|
+
'''
|
|
402
|
+
result = self._values.get("criteria_dimension_values")
|
|
403
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
404
|
+
|
|
405
|
+
@builtins.property
|
|
406
|
+
def criteria_fail_minimum_failing_periods_to_trigger_alert(
|
|
407
|
+
self,
|
|
408
|
+
) -> typing.Optional[jsii.Number]:
|
|
409
|
+
'''Specifies the number of violations to trigger an alert.
|
|
410
|
+
|
|
411
|
+
Should be smaller or equal to number_of_evaluation_periods.
|
|
412
|
+
Possible value is integer between 1 and 6.
|
|
413
|
+
'''
|
|
414
|
+
result = self._values.get("criteria_fail_minimum_failing_periods_to_trigger_alert")
|
|
415
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
416
|
+
|
|
417
|
+
@builtins.property
|
|
418
|
+
def criteria_fail_number_of_evaluation_periods(
|
|
419
|
+
self,
|
|
420
|
+
) -> typing.Optional[jsii.Number]:
|
|
421
|
+
'''Specifies the number of evaluation periods.
|
|
422
|
+
|
|
423
|
+
Possible value is integer between 1 and 6.
|
|
424
|
+
'''
|
|
425
|
+
result = self._values.get("criteria_fail_number_of_evaluation_periods")
|
|
426
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
427
|
+
|
|
428
|
+
@builtins.property
|
|
429
|
+
def criteria_metric_measure_column(self) -> typing.Optional[builtins.str]:
|
|
430
|
+
'''Specifies the column containing the metric measure number.
|
|
431
|
+
|
|
432
|
+
criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total.
|
|
433
|
+
And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
|
|
434
|
+
'''
|
|
435
|
+
result = self._values.get("criteria_metric_measure_column")
|
|
436
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
437
|
+
|
|
438
|
+
@builtins.property
|
|
439
|
+
def description(self) -> typing.Optional[builtins.str]:
|
|
440
|
+
'''Specifies the description of the scheduled query rule.'''
|
|
441
|
+
result = self._values.get("description")
|
|
442
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
443
|
+
|
|
444
|
+
@builtins.property
|
|
445
|
+
def display_name(self) -> typing.Optional[builtins.str]:
|
|
446
|
+
'''Specifies the display name of the alert rule.'''
|
|
447
|
+
result = self._values.get("display_name")
|
|
448
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
449
|
+
|
|
450
|
+
@builtins.property
|
|
451
|
+
def enabled(self) -> typing.Optional[builtins.bool]:
|
|
452
|
+
'''Specifies the flag which indicates whether this scheduled query rule is enabled.
|
|
453
|
+
|
|
454
|
+
:default: true
|
|
455
|
+
'''
|
|
456
|
+
result = self._values.get("enabled")
|
|
457
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
458
|
+
|
|
459
|
+
@builtins.property
|
|
460
|
+
def mute_actions_after_alert_duration(self) -> typing.Optional[builtins.str]:
|
|
461
|
+
'''Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired.
|
|
462
|
+
|
|
463
|
+
Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
464
|
+
'''
|
|
465
|
+
result = self._values.get("mute_actions_after_alert_duration")
|
|
466
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
467
|
+
|
|
468
|
+
@builtins.property
|
|
469
|
+
def query_time_range_override(self) -> typing.Optional[builtins.str]:
|
|
470
|
+
'''Set this if the alert evaluation period is different from the query time range.
|
|
471
|
+
|
|
472
|
+
If not specified, the value is window_duration*number_of_evaluation_periods.
|
|
473
|
+
Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
474
|
+
'''
|
|
475
|
+
result = self._values.get("query_time_range_override")
|
|
476
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
477
|
+
|
|
478
|
+
@builtins.property
|
|
479
|
+
def skip_query_validation(self) -> typing.Optional[builtins.bool]:
|
|
480
|
+
'''Specifies the flag which indicates whether the provided query should be validated or not.
|
|
481
|
+
|
|
482
|
+
:default: true
|
|
483
|
+
'''
|
|
484
|
+
result = self._values.get("skip_query_validation")
|
|
485
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
486
|
+
|
|
487
|
+
@builtins.property
|
|
488
|
+
def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
489
|
+
'''A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.'''
|
|
490
|
+
result = self._values.get("tags")
|
|
491
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
492
|
+
|
|
493
|
+
@builtins.property
|
|
494
|
+
def workspace_alerts_storage_enabled(self) -> typing.Optional[builtins.bool]:
|
|
495
|
+
'''Specifies the flag which indicates whether this scheduled query rule check if storage is configured.
|
|
496
|
+
|
|
497
|
+
:default: false
|
|
498
|
+
'''
|
|
499
|
+
result = self._values.get("workspace_alerts_storage_enabled")
|
|
500
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
501
|
+
|
|
502
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
503
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
504
|
+
|
|
505
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
506
|
+
return not (rhs == self)
|
|
507
|
+
|
|
508
|
+
def __repr__(self) -> str:
|
|
509
|
+
return "BaseAzureQueryRuleAlertProps(%s)" % ", ".join(
|
|
510
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
511
|
+
)
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
class QueryRuleAlert(
|
|
515
|
+
_constructs_77d1e7e8.Construct,
|
|
516
|
+
metaclass=jsii.JSIIMeta,
|
|
517
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_queryrulealert.QueryRuleAlert",
|
|
518
|
+
):
|
|
519
|
+
def __init__(
|
|
520
|
+
self,
|
|
521
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
522
|
+
id: builtins.str,
|
|
523
|
+
*,
|
|
524
|
+
scopes: typing.Sequence[builtins.str],
|
|
525
|
+
criteria_operator: builtins.str,
|
|
526
|
+
criteria_query: builtins.str,
|
|
527
|
+
criteria_threshold: jsii.Number,
|
|
528
|
+
criteriatime_aggregation_method: builtins.str,
|
|
529
|
+
evaluation_frequency: builtins.str,
|
|
530
|
+
location: builtins.str,
|
|
531
|
+
name: builtins.str,
|
|
532
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
533
|
+
severity: jsii.Number,
|
|
534
|
+
window_duration: builtins.str,
|
|
535
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
536
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
537
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
538
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
539
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
540
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
541
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
542
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
543
|
+
description: typing.Optional[builtins.str] = None,
|
|
544
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
545
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
546
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
547
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
548
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
549
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
550
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
551
|
+
) -> None:
|
|
552
|
+
'''Represents an Azure Monitor Scheduled Query Rule Alert.
|
|
553
|
+
|
|
554
|
+
This class is responsible for the creation and management of a Scheduled Query Rule Alert in Azure Monitor.
|
|
555
|
+
Scheduled Query Rule Alerts execute specified queries at regular intervals over the data collected in Log Analytics
|
|
556
|
+
Workspaces or Application Insights, and alert based on the results of these queries. These alerts can be used to monitor
|
|
557
|
+
application health, infrastructure changes, or compliance with certain conditions.
|
|
558
|
+
|
|
559
|
+
:param scope: - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
560
|
+
:param id: - The unique identifier for this instance of the Scheduled Query Rule Alert.
|
|
561
|
+
:param scopes: Specifies the list of resource IDs that this scheduled query rule is scoped to.
|
|
562
|
+
:param criteria_operator: Specifies the criteria operator. Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
563
|
+
:param criteria_query: The query to run on logs. The results returned by this query are used to populate the alert.
|
|
564
|
+
:param criteria_threshold: Specifies the criteria threshold value that activates the alert.
|
|
565
|
+
:param criteriatime_aggregation_method: The type of aggregation to apply to the data points in aggregation granularity. Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
566
|
+
:param evaluation_frequency: How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
567
|
+
:param location: The location of the Monitor Scheduled Query Rule.
|
|
568
|
+
:param name: The name of the Monitor Scheduled Query Rule.
|
|
569
|
+
:param resource_group: The name of the resource group in which the Monitor Scheduled Query Rule is created.
|
|
570
|
+
:param severity: Severity of the alert. Should be an integer between 0 and 4. Value of 0 is severest.
|
|
571
|
+
:param window_duration: Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).
|
|
572
|
+
:param action_action_group_id: Specifies the action group IDs to trigger when the alert fires.
|
|
573
|
+
:param auto_mitigation_enabled: Specifies the flag that indicates whether the alert should be automatically resolved or not. Default: false
|
|
574
|
+
:param criteria_dimension_name: Name of the dimension for criteria.
|
|
575
|
+
:param criteria_dimension_operator: Operator for dimension values. Possible values are Exclude, and Include.
|
|
576
|
+
:param criteria_dimension_values: List of dimension values. Use a wildcard * to collect all.
|
|
577
|
+
:param criteria_fail_minimum_failing_periods_to_trigger_alert: Specifies the number of violations to trigger an alert. Should be smaller or equal to number_of_evaluation_periods. Possible value is integer between 1 and 6.
|
|
578
|
+
:param criteria_fail_number_of_evaluation_periods: Specifies the number of evaluation periods. Possible value is integer between 1 and 6.
|
|
579
|
+
:param criteria_metric_measure_column: Specifies the column containing the metric measure number. criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total. And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
|
|
580
|
+
:param description: Specifies the description of the scheduled query rule.
|
|
581
|
+
:param display_name: Specifies the display name of the alert rule.
|
|
582
|
+
:param enabled: Specifies the flag which indicates whether this scheduled query rule is enabled. Default: true
|
|
583
|
+
:param mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
584
|
+
:param query_time_range_override: Set this if the alert evaluation period is different from the query time range. If not specified, the value is window_duration*number_of_evaluation_periods. Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
585
|
+
:param skip_query_validation: Specifies the flag which indicates whether the provided query should be validated or not. Default: true
|
|
586
|
+
:param tags: A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.
|
|
587
|
+
:param workspace_alerts_storage_enabled: Specifies the flag which indicates whether this scheduled query rule check if storage is configured. Default: false
|
|
588
|
+
'''
|
|
589
|
+
if __debug__:
|
|
590
|
+
type_hints = typing.get_type_hints(_typecheckingstub__871fa549e631485d708adb7e5fa86adc875e246512bbcef62f473e0e3de924e4)
|
|
591
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
592
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
593
|
+
props = AzureQueryRuleAlertProps(
|
|
594
|
+
scopes=scopes,
|
|
595
|
+
criteria_operator=criteria_operator,
|
|
596
|
+
criteria_query=criteria_query,
|
|
597
|
+
criteria_threshold=criteria_threshold,
|
|
598
|
+
criteriatime_aggregation_method=criteriatime_aggregation_method,
|
|
599
|
+
evaluation_frequency=evaluation_frequency,
|
|
600
|
+
location=location,
|
|
601
|
+
name=name,
|
|
602
|
+
resource_group=resource_group,
|
|
603
|
+
severity=severity,
|
|
604
|
+
window_duration=window_duration,
|
|
605
|
+
action_action_group_id=action_action_group_id,
|
|
606
|
+
auto_mitigation_enabled=auto_mitigation_enabled,
|
|
607
|
+
criteria_dimension_name=criteria_dimension_name,
|
|
608
|
+
criteria_dimension_operator=criteria_dimension_operator,
|
|
609
|
+
criteria_dimension_values=criteria_dimension_values,
|
|
610
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert=criteria_fail_minimum_failing_periods_to_trigger_alert,
|
|
611
|
+
criteria_fail_number_of_evaluation_periods=criteria_fail_number_of_evaluation_periods,
|
|
612
|
+
criteria_metric_measure_column=criteria_metric_measure_column,
|
|
613
|
+
description=description,
|
|
614
|
+
display_name=display_name,
|
|
615
|
+
enabled=enabled,
|
|
616
|
+
mute_actions_after_alert_duration=mute_actions_after_alert_duration,
|
|
617
|
+
query_time_range_override=query_time_range_override,
|
|
618
|
+
skip_query_validation=skip_query_validation,
|
|
619
|
+
tags=tags,
|
|
620
|
+
workspace_alerts_storage_enabled=workspace_alerts_storage_enabled,
|
|
621
|
+
)
|
|
622
|
+
|
|
623
|
+
jsii.create(self.__class__, self, [scope, id, props])
|
|
624
|
+
|
|
625
|
+
@builtins.property
|
|
626
|
+
@jsii.member(jsii_name="queryRuleAlertProps")
|
|
627
|
+
def query_rule_alert_props(self) -> "AzureQueryRuleAlertProps":
|
|
628
|
+
return typing.cast("AzureQueryRuleAlertProps", jsii.get(self, "queryRuleAlertProps"))
|
|
629
|
+
|
|
630
|
+
@builtins.property
|
|
631
|
+
@jsii.member(jsii_name="id")
|
|
632
|
+
def id(self) -> builtins.str:
|
|
633
|
+
return typing.cast(builtins.str, jsii.get(self, "id"))
|
|
634
|
+
|
|
635
|
+
@id.setter
|
|
636
|
+
def id(self, value: builtins.str) -> None:
|
|
637
|
+
if __debug__:
|
|
638
|
+
type_hints = typing.get_type_hints(_typecheckingstub__36d805099b7b78d1402690a5eff05b181f97f6ce86768a884d2999737a011b0f)
|
|
639
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
640
|
+
jsii.set(self, "id", value)
|
|
641
|
+
|
|
642
|
+
@builtins.property
|
|
643
|
+
@jsii.member(jsii_name="resourceGroup")
|
|
644
|
+
def resource_group(
|
|
645
|
+
self,
|
|
646
|
+
) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
|
|
647
|
+
return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, jsii.get(self, "resourceGroup"))
|
|
648
|
+
|
|
649
|
+
@resource_group.setter
|
|
650
|
+
def resource_group(
|
|
651
|
+
self,
|
|
652
|
+
value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
653
|
+
) -> None:
|
|
654
|
+
if __debug__:
|
|
655
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8c20007e52890215d522bf79c2bb75095e3f727d3ad0566fb1649a7171f47ac3)
|
|
656
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
657
|
+
jsii.set(self, "resourceGroup", value)
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
@jsii.data_type(
|
|
661
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_queryrulealert.AzureQueryRuleAlertProps",
|
|
662
|
+
jsii_struct_bases=[BaseAzureQueryRuleAlertProps],
|
|
663
|
+
name_mapping={
|
|
664
|
+
"criteria_operator": "criteriaOperator",
|
|
665
|
+
"criteria_query": "criteriaQuery",
|
|
666
|
+
"criteria_threshold": "criteriaThreshold",
|
|
667
|
+
"criteriatime_aggregation_method": "criteriatimeAggregationMethod",
|
|
668
|
+
"evaluation_frequency": "evaluationFrequency",
|
|
669
|
+
"location": "location",
|
|
670
|
+
"name": "name",
|
|
671
|
+
"resource_group": "resourceGroup",
|
|
672
|
+
"severity": "severity",
|
|
673
|
+
"window_duration": "windowDuration",
|
|
674
|
+
"action_action_group_id": "actionActionGroupId",
|
|
675
|
+
"auto_mitigation_enabled": "autoMitigationEnabled",
|
|
676
|
+
"criteria_dimension_name": "criteriaDimensionName",
|
|
677
|
+
"criteria_dimension_operator": "criteriaDimensionOperator",
|
|
678
|
+
"criteria_dimension_values": "criteriaDimensionValues",
|
|
679
|
+
"criteria_fail_minimum_failing_periods_to_trigger_alert": "criteriaFailMinimumFailingPeriodsToTriggerAlert",
|
|
680
|
+
"criteria_fail_number_of_evaluation_periods": "criteriaFailNumberOfEvaluationPeriods",
|
|
681
|
+
"criteria_metric_measure_column": "criteriaMetricMeasureColumn",
|
|
682
|
+
"description": "description",
|
|
683
|
+
"display_name": "displayName",
|
|
684
|
+
"enabled": "enabled",
|
|
685
|
+
"mute_actions_after_alert_duration": "muteActionsAfterAlertDuration",
|
|
686
|
+
"query_time_range_override": "queryTimeRangeOverride",
|
|
687
|
+
"skip_query_validation": "skipQueryValidation",
|
|
688
|
+
"tags": "tags",
|
|
689
|
+
"workspace_alerts_storage_enabled": "workspaceAlertsStorageEnabled",
|
|
690
|
+
"scopes": "scopes",
|
|
691
|
+
},
|
|
692
|
+
)
|
|
693
|
+
class AzureQueryRuleAlertProps(BaseAzureQueryRuleAlertProps):
|
|
694
|
+
def __init__(
|
|
695
|
+
self,
|
|
696
|
+
*,
|
|
697
|
+
criteria_operator: builtins.str,
|
|
698
|
+
criteria_query: builtins.str,
|
|
699
|
+
criteria_threshold: jsii.Number,
|
|
700
|
+
criteriatime_aggregation_method: builtins.str,
|
|
701
|
+
evaluation_frequency: builtins.str,
|
|
702
|
+
location: builtins.str,
|
|
703
|
+
name: builtins.str,
|
|
704
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
705
|
+
severity: jsii.Number,
|
|
706
|
+
window_duration: builtins.str,
|
|
707
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
708
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
709
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
710
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
711
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
712
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
713
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
714
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
715
|
+
description: typing.Optional[builtins.str] = None,
|
|
716
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
717
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
718
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
719
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
720
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
721
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
722
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
723
|
+
scopes: typing.Sequence[builtins.str],
|
|
724
|
+
) -> None:
|
|
725
|
+
'''
|
|
726
|
+
:param criteria_operator: Specifies the criteria operator. Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
727
|
+
:param criteria_query: The query to run on logs. The results returned by this query are used to populate the alert.
|
|
728
|
+
:param criteria_threshold: Specifies the criteria threshold value that activates the alert.
|
|
729
|
+
:param criteriatime_aggregation_method: The type of aggregation to apply to the data points in aggregation granularity. Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
730
|
+
:param evaluation_frequency: How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
731
|
+
:param location: The location of the Monitor Scheduled Query Rule.
|
|
732
|
+
:param name: The name of the Monitor Scheduled Query Rule.
|
|
733
|
+
:param resource_group: The name of the resource group in which the Monitor Scheduled Query Rule is created.
|
|
734
|
+
:param severity: Severity of the alert. Should be an integer between 0 and 4. Value of 0 is severest.
|
|
735
|
+
:param window_duration: Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).
|
|
736
|
+
:param action_action_group_id: Specifies the action group IDs to trigger when the alert fires.
|
|
737
|
+
:param auto_mitigation_enabled: Specifies the flag that indicates whether the alert should be automatically resolved or not. Default: false
|
|
738
|
+
:param criteria_dimension_name: Name of the dimension for criteria.
|
|
739
|
+
:param criteria_dimension_operator: Operator for dimension values. Possible values are Exclude, and Include.
|
|
740
|
+
:param criteria_dimension_values: List of dimension values. Use a wildcard * to collect all.
|
|
741
|
+
:param criteria_fail_minimum_failing_periods_to_trigger_alert: Specifies the number of violations to trigger an alert. Should be smaller or equal to number_of_evaluation_periods. Possible value is integer between 1 and 6.
|
|
742
|
+
:param criteria_fail_number_of_evaluation_periods: Specifies the number of evaluation periods. Possible value is integer between 1 and 6.
|
|
743
|
+
:param criteria_metric_measure_column: Specifies the column containing the metric measure number. criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total. And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
|
|
744
|
+
:param description: Specifies the description of the scheduled query rule.
|
|
745
|
+
:param display_name: Specifies the display name of the alert rule.
|
|
746
|
+
:param enabled: Specifies the flag which indicates whether this scheduled query rule is enabled. Default: true
|
|
747
|
+
:param mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
748
|
+
:param query_time_range_override: Set this if the alert evaluation period is different from the query time range. If not specified, the value is window_duration*number_of_evaluation_periods. Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
749
|
+
:param skip_query_validation: Specifies the flag which indicates whether the provided query should be validated or not. Default: true
|
|
750
|
+
:param tags: A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.
|
|
751
|
+
:param workspace_alerts_storage_enabled: Specifies the flag which indicates whether this scheduled query rule check if storage is configured. Default: false
|
|
752
|
+
:param scopes: Specifies the list of resource IDs that this scheduled query rule is scoped to.
|
|
753
|
+
'''
|
|
754
|
+
if __debug__:
|
|
755
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5762d02371a7d7ee3cc504738ea9796923ca00246c5eefa91d3b50206a4e94ee)
|
|
756
|
+
check_type(argname="argument criteria_operator", value=criteria_operator, expected_type=type_hints["criteria_operator"])
|
|
757
|
+
check_type(argname="argument criteria_query", value=criteria_query, expected_type=type_hints["criteria_query"])
|
|
758
|
+
check_type(argname="argument criteria_threshold", value=criteria_threshold, expected_type=type_hints["criteria_threshold"])
|
|
759
|
+
check_type(argname="argument criteriatime_aggregation_method", value=criteriatime_aggregation_method, expected_type=type_hints["criteriatime_aggregation_method"])
|
|
760
|
+
check_type(argname="argument evaluation_frequency", value=evaluation_frequency, expected_type=type_hints["evaluation_frequency"])
|
|
761
|
+
check_type(argname="argument location", value=location, expected_type=type_hints["location"])
|
|
762
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
763
|
+
check_type(argname="argument resource_group", value=resource_group, expected_type=type_hints["resource_group"])
|
|
764
|
+
check_type(argname="argument severity", value=severity, expected_type=type_hints["severity"])
|
|
765
|
+
check_type(argname="argument window_duration", value=window_duration, expected_type=type_hints["window_duration"])
|
|
766
|
+
check_type(argname="argument action_action_group_id", value=action_action_group_id, expected_type=type_hints["action_action_group_id"])
|
|
767
|
+
check_type(argname="argument auto_mitigation_enabled", value=auto_mitigation_enabled, expected_type=type_hints["auto_mitigation_enabled"])
|
|
768
|
+
check_type(argname="argument criteria_dimension_name", value=criteria_dimension_name, expected_type=type_hints["criteria_dimension_name"])
|
|
769
|
+
check_type(argname="argument criteria_dimension_operator", value=criteria_dimension_operator, expected_type=type_hints["criteria_dimension_operator"])
|
|
770
|
+
check_type(argname="argument criteria_dimension_values", value=criteria_dimension_values, expected_type=type_hints["criteria_dimension_values"])
|
|
771
|
+
check_type(argname="argument criteria_fail_minimum_failing_periods_to_trigger_alert", value=criteria_fail_minimum_failing_periods_to_trigger_alert, expected_type=type_hints["criteria_fail_minimum_failing_periods_to_trigger_alert"])
|
|
772
|
+
check_type(argname="argument criteria_fail_number_of_evaluation_periods", value=criteria_fail_number_of_evaluation_periods, expected_type=type_hints["criteria_fail_number_of_evaluation_periods"])
|
|
773
|
+
check_type(argname="argument criteria_metric_measure_column", value=criteria_metric_measure_column, expected_type=type_hints["criteria_metric_measure_column"])
|
|
774
|
+
check_type(argname="argument description", value=description, expected_type=type_hints["description"])
|
|
775
|
+
check_type(argname="argument display_name", value=display_name, expected_type=type_hints["display_name"])
|
|
776
|
+
check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
|
|
777
|
+
check_type(argname="argument mute_actions_after_alert_duration", value=mute_actions_after_alert_duration, expected_type=type_hints["mute_actions_after_alert_duration"])
|
|
778
|
+
check_type(argname="argument query_time_range_override", value=query_time_range_override, expected_type=type_hints["query_time_range_override"])
|
|
779
|
+
check_type(argname="argument skip_query_validation", value=skip_query_validation, expected_type=type_hints["skip_query_validation"])
|
|
780
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
781
|
+
check_type(argname="argument workspace_alerts_storage_enabled", value=workspace_alerts_storage_enabled, expected_type=type_hints["workspace_alerts_storage_enabled"])
|
|
782
|
+
check_type(argname="argument scopes", value=scopes, expected_type=type_hints["scopes"])
|
|
783
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
784
|
+
"criteria_operator": criteria_operator,
|
|
785
|
+
"criteria_query": criteria_query,
|
|
786
|
+
"criteria_threshold": criteria_threshold,
|
|
787
|
+
"criteriatime_aggregation_method": criteriatime_aggregation_method,
|
|
788
|
+
"evaluation_frequency": evaluation_frequency,
|
|
789
|
+
"location": location,
|
|
790
|
+
"name": name,
|
|
791
|
+
"resource_group": resource_group,
|
|
792
|
+
"severity": severity,
|
|
793
|
+
"window_duration": window_duration,
|
|
794
|
+
"scopes": scopes,
|
|
795
|
+
}
|
|
796
|
+
if action_action_group_id is not None:
|
|
797
|
+
self._values["action_action_group_id"] = action_action_group_id
|
|
798
|
+
if auto_mitigation_enabled is not None:
|
|
799
|
+
self._values["auto_mitigation_enabled"] = auto_mitigation_enabled
|
|
800
|
+
if criteria_dimension_name is not None:
|
|
801
|
+
self._values["criteria_dimension_name"] = criteria_dimension_name
|
|
802
|
+
if criteria_dimension_operator is not None:
|
|
803
|
+
self._values["criteria_dimension_operator"] = criteria_dimension_operator
|
|
804
|
+
if criteria_dimension_values is not None:
|
|
805
|
+
self._values["criteria_dimension_values"] = criteria_dimension_values
|
|
806
|
+
if criteria_fail_minimum_failing_periods_to_trigger_alert is not None:
|
|
807
|
+
self._values["criteria_fail_minimum_failing_periods_to_trigger_alert"] = criteria_fail_minimum_failing_periods_to_trigger_alert
|
|
808
|
+
if criteria_fail_number_of_evaluation_periods is not None:
|
|
809
|
+
self._values["criteria_fail_number_of_evaluation_periods"] = criteria_fail_number_of_evaluation_periods
|
|
810
|
+
if criteria_metric_measure_column is not None:
|
|
811
|
+
self._values["criteria_metric_measure_column"] = criteria_metric_measure_column
|
|
812
|
+
if description is not None:
|
|
813
|
+
self._values["description"] = description
|
|
814
|
+
if display_name is not None:
|
|
815
|
+
self._values["display_name"] = display_name
|
|
816
|
+
if enabled is not None:
|
|
817
|
+
self._values["enabled"] = enabled
|
|
818
|
+
if mute_actions_after_alert_duration is not None:
|
|
819
|
+
self._values["mute_actions_after_alert_duration"] = mute_actions_after_alert_duration
|
|
820
|
+
if query_time_range_override is not None:
|
|
821
|
+
self._values["query_time_range_override"] = query_time_range_override
|
|
822
|
+
if skip_query_validation is not None:
|
|
823
|
+
self._values["skip_query_validation"] = skip_query_validation
|
|
824
|
+
if tags is not None:
|
|
825
|
+
self._values["tags"] = tags
|
|
826
|
+
if workspace_alerts_storage_enabled is not None:
|
|
827
|
+
self._values["workspace_alerts_storage_enabled"] = workspace_alerts_storage_enabled
|
|
828
|
+
|
|
829
|
+
@builtins.property
|
|
830
|
+
def criteria_operator(self) -> builtins.str:
|
|
831
|
+
'''Specifies the criteria operator.
|
|
832
|
+
|
|
833
|
+
Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
|
|
834
|
+
'''
|
|
835
|
+
result = self._values.get("criteria_operator")
|
|
836
|
+
assert result is not None, "Required property 'criteria_operator' is missing"
|
|
837
|
+
return typing.cast(builtins.str, result)
|
|
838
|
+
|
|
839
|
+
@builtins.property
|
|
840
|
+
def criteria_query(self) -> builtins.str:
|
|
841
|
+
'''The query to run on logs.
|
|
842
|
+
|
|
843
|
+
The results returned by this query are used to populate the alert.
|
|
844
|
+
'''
|
|
845
|
+
result = self._values.get("criteria_query")
|
|
846
|
+
assert result is not None, "Required property 'criteria_query' is missing"
|
|
847
|
+
return typing.cast(builtins.str, result)
|
|
848
|
+
|
|
849
|
+
@builtins.property
|
|
850
|
+
def criteria_threshold(self) -> jsii.Number:
|
|
851
|
+
'''Specifies the criteria threshold value that activates the alert.'''
|
|
852
|
+
result = self._values.get("criteria_threshold")
|
|
853
|
+
assert result is not None, "Required property 'criteria_threshold' is missing"
|
|
854
|
+
return typing.cast(jsii.Number, result)
|
|
855
|
+
|
|
856
|
+
@builtins.property
|
|
857
|
+
def criteriatime_aggregation_method(self) -> builtins.str:
|
|
858
|
+
'''The type of aggregation to apply to the data points in aggregation granularity.
|
|
859
|
+
|
|
860
|
+
Possible values are Average, Count, Maximum, Minimum,and Total.
|
|
861
|
+
'''
|
|
862
|
+
result = self._values.get("criteriatime_aggregation_method")
|
|
863
|
+
assert result is not None, "Required property 'criteriatime_aggregation_method' is missing"
|
|
864
|
+
return typing.cast(builtins.str, result)
|
|
865
|
+
|
|
866
|
+
@builtins.property
|
|
867
|
+
def evaluation_frequency(self) -> builtins.str:
|
|
868
|
+
'''How often the scheduled query rule is evaluated, represented in ISO 8601 duration format.
|
|
869
|
+
|
|
870
|
+
Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
|
|
871
|
+
'''
|
|
872
|
+
result = self._values.get("evaluation_frequency")
|
|
873
|
+
assert result is not None, "Required property 'evaluation_frequency' is missing"
|
|
874
|
+
return typing.cast(builtins.str, result)
|
|
875
|
+
|
|
876
|
+
@builtins.property
|
|
877
|
+
def location(self) -> builtins.str:
|
|
878
|
+
'''The location of the Monitor Scheduled Query Rule.'''
|
|
879
|
+
result = self._values.get("location")
|
|
880
|
+
assert result is not None, "Required property 'location' is missing"
|
|
881
|
+
return typing.cast(builtins.str, result)
|
|
882
|
+
|
|
883
|
+
@builtins.property
|
|
884
|
+
def name(self) -> builtins.str:
|
|
885
|
+
'''The name of the Monitor Scheduled Query Rule.'''
|
|
886
|
+
result = self._values.get("name")
|
|
887
|
+
assert result is not None, "Required property 'name' is missing"
|
|
888
|
+
return typing.cast(builtins.str, result)
|
|
889
|
+
|
|
890
|
+
@builtins.property
|
|
891
|
+
def resource_group(
|
|
892
|
+
self,
|
|
893
|
+
) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
|
|
894
|
+
'''The name of the resource group in which the Monitor Scheduled Query Rule is created.'''
|
|
895
|
+
result = self._values.get("resource_group")
|
|
896
|
+
assert result is not None, "Required property 'resource_group' is missing"
|
|
897
|
+
return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, result)
|
|
898
|
+
|
|
899
|
+
@builtins.property
|
|
900
|
+
def severity(self) -> jsii.Number:
|
|
901
|
+
'''Severity of the alert.
|
|
902
|
+
|
|
903
|
+
Should be an integer between 0 and 4. Value of 0 is severest.
|
|
904
|
+
'''
|
|
905
|
+
result = self._values.get("severity")
|
|
906
|
+
assert result is not None, "Required property 'severity' is missing"
|
|
907
|
+
return typing.cast(jsii.Number, result)
|
|
908
|
+
|
|
909
|
+
@builtins.property
|
|
910
|
+
def window_duration(self) -> builtins.str:
|
|
911
|
+
'''Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).'''
|
|
912
|
+
result = self._values.get("window_duration")
|
|
913
|
+
assert result is not None, "Required property 'window_duration' is missing"
|
|
914
|
+
return typing.cast(builtins.str, result)
|
|
915
|
+
|
|
916
|
+
@builtins.property
|
|
917
|
+
def action_action_group_id(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
918
|
+
'''Specifies the action group IDs to trigger when the alert fires.'''
|
|
919
|
+
result = self._values.get("action_action_group_id")
|
|
920
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
921
|
+
|
|
922
|
+
@builtins.property
|
|
923
|
+
def auto_mitigation_enabled(self) -> typing.Optional[builtins.bool]:
|
|
924
|
+
'''Specifies the flag that indicates whether the alert should be automatically resolved or not.
|
|
925
|
+
|
|
926
|
+
:default: false
|
|
927
|
+
'''
|
|
928
|
+
result = self._values.get("auto_mitigation_enabled")
|
|
929
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
930
|
+
|
|
931
|
+
@builtins.property
|
|
932
|
+
def criteria_dimension_name(self) -> typing.Optional[builtins.str]:
|
|
933
|
+
'''Name of the dimension for criteria.'''
|
|
934
|
+
result = self._values.get("criteria_dimension_name")
|
|
935
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
936
|
+
|
|
937
|
+
@builtins.property
|
|
938
|
+
def criteria_dimension_operator(self) -> typing.Optional[builtins.str]:
|
|
939
|
+
'''Operator for dimension values.
|
|
940
|
+
|
|
941
|
+
Possible values are Exclude, and Include.
|
|
942
|
+
'''
|
|
943
|
+
result = self._values.get("criteria_dimension_operator")
|
|
944
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
945
|
+
|
|
946
|
+
@builtins.property
|
|
947
|
+
def criteria_dimension_values(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
948
|
+
'''List of dimension values.
|
|
949
|
+
|
|
950
|
+
Use a wildcard * to collect all.
|
|
951
|
+
'''
|
|
952
|
+
result = self._values.get("criteria_dimension_values")
|
|
953
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
954
|
+
|
|
955
|
+
@builtins.property
|
|
956
|
+
def criteria_fail_minimum_failing_periods_to_trigger_alert(
|
|
957
|
+
self,
|
|
958
|
+
) -> typing.Optional[jsii.Number]:
|
|
959
|
+
'''Specifies the number of violations to trigger an alert.
|
|
960
|
+
|
|
961
|
+
Should be smaller or equal to number_of_evaluation_periods.
|
|
962
|
+
Possible value is integer between 1 and 6.
|
|
963
|
+
'''
|
|
964
|
+
result = self._values.get("criteria_fail_minimum_failing_periods_to_trigger_alert")
|
|
965
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
966
|
+
|
|
967
|
+
@builtins.property
|
|
968
|
+
def criteria_fail_number_of_evaluation_periods(
|
|
969
|
+
self,
|
|
970
|
+
) -> typing.Optional[jsii.Number]:
|
|
971
|
+
'''Specifies the number of evaluation periods.
|
|
972
|
+
|
|
973
|
+
Possible value is integer between 1 and 6.
|
|
974
|
+
'''
|
|
975
|
+
result = self._values.get("criteria_fail_number_of_evaluation_periods")
|
|
976
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
977
|
+
|
|
978
|
+
@builtins.property
|
|
979
|
+
def criteria_metric_measure_column(self) -> typing.Optional[builtins.str]:
|
|
980
|
+
'''Specifies the column containing the metric measure number.
|
|
981
|
+
|
|
982
|
+
criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total.
|
|
983
|
+
And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
|
|
984
|
+
'''
|
|
985
|
+
result = self._values.get("criteria_metric_measure_column")
|
|
986
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
987
|
+
|
|
988
|
+
@builtins.property
|
|
989
|
+
def description(self) -> typing.Optional[builtins.str]:
|
|
990
|
+
'''Specifies the description of the scheduled query rule.'''
|
|
991
|
+
result = self._values.get("description")
|
|
992
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
993
|
+
|
|
994
|
+
@builtins.property
|
|
995
|
+
def display_name(self) -> typing.Optional[builtins.str]:
|
|
996
|
+
'''Specifies the display name of the alert rule.'''
|
|
997
|
+
result = self._values.get("display_name")
|
|
998
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
999
|
+
|
|
1000
|
+
@builtins.property
|
|
1001
|
+
def enabled(self) -> typing.Optional[builtins.bool]:
|
|
1002
|
+
'''Specifies the flag which indicates whether this scheduled query rule is enabled.
|
|
1003
|
+
|
|
1004
|
+
:default: true
|
|
1005
|
+
'''
|
|
1006
|
+
result = self._values.get("enabled")
|
|
1007
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
1008
|
+
|
|
1009
|
+
@builtins.property
|
|
1010
|
+
def mute_actions_after_alert_duration(self) -> typing.Optional[builtins.str]:
|
|
1011
|
+
'''Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired.
|
|
1012
|
+
|
|
1013
|
+
Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
1014
|
+
'''
|
|
1015
|
+
result = self._values.get("mute_actions_after_alert_duration")
|
|
1016
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1017
|
+
|
|
1018
|
+
@builtins.property
|
|
1019
|
+
def query_time_range_override(self) -> typing.Optional[builtins.str]:
|
|
1020
|
+
'''Set this if the alert evaluation period is different from the query time range.
|
|
1021
|
+
|
|
1022
|
+
If not specified, the value is window_duration*number_of_evaluation_periods.
|
|
1023
|
+
Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
|
|
1024
|
+
'''
|
|
1025
|
+
result = self._values.get("query_time_range_override")
|
|
1026
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1027
|
+
|
|
1028
|
+
@builtins.property
|
|
1029
|
+
def skip_query_validation(self) -> typing.Optional[builtins.bool]:
|
|
1030
|
+
'''Specifies the flag which indicates whether the provided query should be validated or not.
|
|
1031
|
+
|
|
1032
|
+
:default: true
|
|
1033
|
+
'''
|
|
1034
|
+
result = self._values.get("skip_query_validation")
|
|
1035
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
1036
|
+
|
|
1037
|
+
@builtins.property
|
|
1038
|
+
def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
1039
|
+
'''A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.'''
|
|
1040
|
+
result = self._values.get("tags")
|
|
1041
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
1042
|
+
|
|
1043
|
+
@builtins.property
|
|
1044
|
+
def workspace_alerts_storage_enabled(self) -> typing.Optional[builtins.bool]:
|
|
1045
|
+
'''Specifies the flag which indicates whether this scheduled query rule check if storage is configured.
|
|
1046
|
+
|
|
1047
|
+
:default: false
|
|
1048
|
+
'''
|
|
1049
|
+
result = self._values.get("workspace_alerts_storage_enabled")
|
|
1050
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
1051
|
+
|
|
1052
|
+
@builtins.property
|
|
1053
|
+
def scopes(self) -> typing.List[builtins.str]:
|
|
1054
|
+
'''Specifies the list of resource IDs that this scheduled query rule is scoped to.'''
|
|
1055
|
+
result = self._values.get("scopes")
|
|
1056
|
+
assert result is not None, "Required property 'scopes' is missing"
|
|
1057
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
1058
|
+
|
|
1059
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1060
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1061
|
+
|
|
1062
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1063
|
+
return not (rhs == self)
|
|
1064
|
+
|
|
1065
|
+
def __repr__(self) -> str:
|
|
1066
|
+
return "AzureQueryRuleAlertProps(%s)" % ", ".join(
|
|
1067
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1068
|
+
)
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
__all__ = [
|
|
1072
|
+
"AzureQueryRuleAlertProps",
|
|
1073
|
+
"BaseAzureQueryRuleAlertProps",
|
|
1074
|
+
"QueryRuleAlert",
|
|
1075
|
+
]
|
|
1076
|
+
|
|
1077
|
+
publication.publish()
|
|
1078
|
+
|
|
1079
|
+
def _typecheckingstub__cfc4c48635f05a11dfa1bd2d50a2d15acf98f68750654cec7e5e36b3d1239110(
|
|
1080
|
+
*,
|
|
1081
|
+
criteria_operator: builtins.str,
|
|
1082
|
+
criteria_query: builtins.str,
|
|
1083
|
+
criteria_threshold: jsii.Number,
|
|
1084
|
+
criteriatime_aggregation_method: builtins.str,
|
|
1085
|
+
evaluation_frequency: builtins.str,
|
|
1086
|
+
location: builtins.str,
|
|
1087
|
+
name: builtins.str,
|
|
1088
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
1089
|
+
severity: jsii.Number,
|
|
1090
|
+
window_duration: builtins.str,
|
|
1091
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1092
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
1093
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
1094
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
1095
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1096
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
1097
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
1098
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
1099
|
+
description: typing.Optional[builtins.str] = None,
|
|
1100
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
1101
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
1102
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
1103
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
1104
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
1105
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1106
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
1107
|
+
) -> None:
|
|
1108
|
+
"""Type checking stubs"""
|
|
1109
|
+
pass
|
|
1110
|
+
|
|
1111
|
+
def _typecheckingstub__871fa549e631485d708adb7e5fa86adc875e246512bbcef62f473e0e3de924e4(
|
|
1112
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1113
|
+
id: builtins.str,
|
|
1114
|
+
*,
|
|
1115
|
+
scopes: typing.Sequence[builtins.str],
|
|
1116
|
+
criteria_operator: builtins.str,
|
|
1117
|
+
criteria_query: builtins.str,
|
|
1118
|
+
criteria_threshold: jsii.Number,
|
|
1119
|
+
criteriatime_aggregation_method: builtins.str,
|
|
1120
|
+
evaluation_frequency: builtins.str,
|
|
1121
|
+
location: builtins.str,
|
|
1122
|
+
name: builtins.str,
|
|
1123
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
1124
|
+
severity: jsii.Number,
|
|
1125
|
+
window_duration: builtins.str,
|
|
1126
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1127
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
1128
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
1129
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
1130
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1131
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
1132
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
1133
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
1134
|
+
description: typing.Optional[builtins.str] = None,
|
|
1135
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
1136
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
1137
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
1138
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
1139
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
1140
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1141
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
1142
|
+
) -> None:
|
|
1143
|
+
"""Type checking stubs"""
|
|
1144
|
+
pass
|
|
1145
|
+
|
|
1146
|
+
def _typecheckingstub__36d805099b7b78d1402690a5eff05b181f97f6ce86768a884d2999737a011b0f(
|
|
1147
|
+
value: builtins.str,
|
|
1148
|
+
) -> None:
|
|
1149
|
+
"""Type checking stubs"""
|
|
1150
|
+
pass
|
|
1151
|
+
|
|
1152
|
+
def _typecheckingstub__8c20007e52890215d522bf79c2bb75095e3f727d3ad0566fb1649a7171f47ac3(
|
|
1153
|
+
value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
1154
|
+
) -> None:
|
|
1155
|
+
"""Type checking stubs"""
|
|
1156
|
+
pass
|
|
1157
|
+
|
|
1158
|
+
def _typecheckingstub__5762d02371a7d7ee3cc504738ea9796923ca00246c5eefa91d3b50206a4e94ee(
|
|
1159
|
+
*,
|
|
1160
|
+
criteria_operator: builtins.str,
|
|
1161
|
+
criteria_query: builtins.str,
|
|
1162
|
+
criteria_threshold: jsii.Number,
|
|
1163
|
+
criteriatime_aggregation_method: builtins.str,
|
|
1164
|
+
evaluation_frequency: builtins.str,
|
|
1165
|
+
location: builtins.str,
|
|
1166
|
+
name: builtins.str,
|
|
1167
|
+
resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
1168
|
+
severity: jsii.Number,
|
|
1169
|
+
window_duration: builtins.str,
|
|
1170
|
+
action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1171
|
+
auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
|
|
1172
|
+
criteria_dimension_name: typing.Optional[builtins.str] = None,
|
|
1173
|
+
criteria_dimension_operator: typing.Optional[builtins.str] = None,
|
|
1174
|
+
criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1175
|
+
criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
|
|
1176
|
+
criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
|
|
1177
|
+
criteria_metric_measure_column: typing.Optional[builtins.str] = None,
|
|
1178
|
+
description: typing.Optional[builtins.str] = None,
|
|
1179
|
+
display_name: typing.Optional[builtins.str] = None,
|
|
1180
|
+
enabled: typing.Optional[builtins.bool] = None,
|
|
1181
|
+
mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
|
|
1182
|
+
query_time_range_override: typing.Optional[builtins.str] = None,
|
|
1183
|
+
skip_query_validation: typing.Optional[builtins.bool] = None,
|
|
1184
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1185
|
+
workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
|
|
1186
|
+
scopes: typing.Sequence[builtins.str],
|
|
1187
|
+
) -> None:
|
|
1188
|
+
"""Type checking stubs"""
|
|
1189
|
+
pass
|