|
1 | 1 | { |
2 | | - "name": "pol-deploy-diag-appInsights", |
| 2 | + "name": "pol-deploy-diag-appins-law-contoso-poc", |
3 | 3 | "properties": { |
4 | | - "displayName": "Deploy the diagnostic settings for AppInsights to Log Analytics workspace", |
| 4 | + "displayName": "Configure Diagnostic Settings for AppInsights to Log Analytics workspace", |
5 | 5 | "description": "This policy automatically deploys and enable diagnostic settings to Log Analytics", |
6 | 6 | "metadata": { |
7 | 7 | "category": "Logging and monitoring", |
|
39 | 39 | ], |
40 | 40 | "defaultValue": "DeployIfNotExists" |
41 | 41 | }, |
42 | | - "logAnalytics": { |
43 | | - "type": "string", |
44 | | - "metadata": { |
45 | | - "displayName": "Log Analytics workspace", |
46 | | - "description": "Select the Log Analytics workspace from dropdown list", |
47 | | - "strongType": "omsWorkspace", |
48 | | - "assignPermissions": true |
49 | | - } |
50 | | - }, |
51 | 42 | "metricsEnabled": { |
52 | 43 | "type": "string", |
53 | 44 | "metadata": { |
|
60 | 51 | ], |
61 | 52 | "defaultValue": "True" |
62 | 53 | }, |
63 | | - "logsEnabled": { |
64 | | - "type": "string", |
| 54 | + "logsToEnable": { |
| 55 | + "type": "array", |
65 | 56 | "metadata": { |
66 | | - "displayName": "Enable logs", |
67 | | - "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" |
| 57 | + "displayName": "Logs to be enable", |
| 58 | + "description": "Diagnostic logs to be enabled" |
68 | 59 | }, |
69 | | - "allowedValues": [ |
70 | | - "True", |
71 | | - "False" |
72 | | - ], |
73 | | - "defaultValue": "True" |
| 60 | + "defaultValue": [ |
| 61 | + "AppSystemEvents", |
| 62 | + "OTelResources" |
| 63 | + ] |
74 | 64 | } |
75 | 65 | }, |
76 | 66 | "policyRule": { |
|
90 | 80 | "existenceCondition": { |
91 | 81 | "allOf": [ |
92 | 82 | { |
93 | | - "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", |
94 | | - "equals": "True" |
| 83 | + "count": { |
| 84 | + "field": "Microsoft.Insights/diagnosticSettings/logs[*]", |
| 85 | + "where": { |
| 86 | + "field": "Microsoft.Insights/diagnosticSettings/logs[*].category", |
| 87 | + "in": "[parameters('logsToEnable')]" |
| 88 | + } |
| 89 | + }, |
| 90 | + "equals": "[length(parameters('logsToEnable'))]" |
95 | 91 | }, |
96 | 92 | { |
97 | | - "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", |
98 | | - "equals": "True" |
| 93 | + "field": "Microsoft.Insights/diagnosticSettings/metrics[*].enabled", |
| 94 | + "equals": "[parameters('metricsEnabled')]" |
99 | 95 | }, |
100 | 96 | { |
101 | 97 | "field": "Microsoft.Insights/diagnosticSettings/workspaceId", |
102 | | - "matchInsensitively": "[parameters('logAnalytics')]" |
| 98 | + "matchInsensitively": "[field('Microsoft.Insights/Components/WorkspaceResourceId')]" |
103 | 99 | } |
104 | 100 | ] |
105 | 101 | }, |
|
116 | 112 | "resourceName": { |
117 | 113 | "type": "string" |
118 | 114 | }, |
119 | | - "logAnalytics": { |
120 | | - "type": "string" |
121 | | - }, |
122 | 115 | "metricsEnabled": { |
123 | 116 | "type": "string" |
124 | 117 | }, |
125 | | - "logsEnabled": { |
126 | | - "type": "string" |
| 118 | + "logsToEnable": { |
| 119 | + "type": "array" |
127 | 120 | }, |
128 | 121 | "location": { |
129 | 122 | "type": "string" |
|
138 | 131 | "location": "[parameters('location')]", |
139 | 132 | "dependsOn": [], |
140 | 133 | "properties": { |
141 | | - "workspaceId": "[parameters('logAnalytics')]", |
| 134 | + "workspaceId": "[reference(resourceId('Microsoft.Insights/Components', parameters('resourceName')), '2020-02-02', 'Full').properties.WorkspaceResourceId]", |
142 | 135 | "metrics": [ |
143 | 136 | { |
144 | 137 | "category": "AllMetrics", |
|
150 | 143 | "timeGrain": null |
151 | 144 | } |
152 | 145 | ], |
153 | | - "logs": [ |
| 146 | + "copy": [ |
154 | 147 | { |
155 | | - "categoryGroup": "allLogs", |
156 | | - "enabled": "[parameters('logsEnabled')]" |
| 148 | + "name": "logs", |
| 149 | + "count": "[length(parameters('logsToEnable'))]", |
| 150 | + "input": { |
| 151 | + "category": "[parameters('logsToEnable')[copyIndex('logs')]]", |
| 152 | + "enabled": "True" |
| 153 | + } |
157 | 154 | } |
158 | 155 | ] |
159 | 156 | } |
|
165 | 162 | "profileName": { |
166 | 163 | "value": "[parameters('profileName')]" |
167 | 164 | }, |
168 | | - "logAnalytics": { |
169 | | - "value": "[parameters('logAnalytics')]" |
170 | | - }, |
171 | 165 | "metricsEnabled": { |
172 | 166 | "value": "[parameters('metricsEnabled')]" |
173 | 167 | }, |
174 | | - "logsEnabled": { |
175 | | - "value": "[parameters('logsEnabled')]" |
| 168 | + "logsToEnable": { |
| 169 | + "value": "[parameters('logsToEnable')]" |
176 | 170 | }, |
177 | 171 | "location": { |
178 | 172 | "value": "[field('location')]" |
|
0 commit comments