Skip to content

Commit 89f35a6

Browse files
CloudWatch RUM now supports unminification of JS error stack traces.
1 parent 256880f commit 89f35a6

17 files changed

+860
-14
lines changed

generator/ServiceModels/rum/rum-2018-05-10.api.json

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,9 @@
403403
"Created":{"shape":"ISOTimestampString"},
404404
"CustomEvents":{"shape":"CustomEvents"},
405405
"DataStorage":{"shape":"DataStorage"},
406+
"DeobfuscationConfiguration":{"shape":"DeobfuscationConfiguration"},
406407
"Domain":{"shape":"AppMonitorDomain"},
408+
"DomainList":{"shape":"AppMonitorDomainList"},
407409
"Id":{"shape":"AppMonitorId"},
408410
"LastModified":{"shape":"ISOTimestampString"},
409411
"Name":{"shape":"AppMonitorName"},
@@ -437,7 +439,13 @@
437439
"type":"string",
438440
"max":253,
439441
"min":1,
440-
"pattern":"^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-]$"
442+
"pattern":"^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(\\*|(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-])$"
443+
},
444+
"AppMonitorDomainList":{
445+
"type":"list",
446+
"member":{"shape":"AppMonitorDomain"},
447+
"max":5,
448+
"min":1
441449
},
442450
"AppMonitorId":{
443451
"type":"string",
@@ -631,15 +639,14 @@
631639
},
632640
"CreateAppMonitorRequest":{
633641
"type":"structure",
634-
"required":[
635-
"Domain",
636-
"Name"
637-
],
642+
"required":["Name"],
638643
"members":{
639644
"AppMonitorConfiguration":{"shape":"AppMonitorConfiguration"},
640645
"CustomEvents":{"shape":"CustomEvents"},
641646
"CwLogEnabled":{"shape":"Boolean"},
647+
"DeobfuscationConfiguration":{"shape":"DeobfuscationConfiguration"},
642648
"Domain":{"shape":"AppMonitorDomain"},
649+
"DomainList":{"shape":"AppMonitorDomainList"},
643650
"Name":{"shape":"AppMonitorName"},
644651
"Tags":{"shape":"TagMap"}
645652
}
@@ -743,6 +750,25 @@
743750
"members":{
744751
}
745752
},
753+
"DeobfuscationConfiguration":{
754+
"type":"structure",
755+
"members":{
756+
"JavaScriptSourceMaps":{"shape":"JavaScriptSourceMaps"}
757+
}
758+
},
759+
"DeobfuscationS3Uri":{
760+
"type":"string",
761+
"max":1024,
762+
"min":1,
763+
"pattern":"^s3://[a-z0-9][-.a-z0-9]{1,61}(?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?$"
764+
},
765+
"DeobfuscationStatus":{
766+
"type":"string",
767+
"enum":[
768+
"ENABLED",
769+
"DISABLED"
770+
]
771+
},
746772
"DestinationArn":{
747773
"type":"string",
748774
"max":2048,
@@ -890,6 +916,14 @@
890916
},
891917
"exception":true
892918
},
919+
"JavaScriptSourceMaps":{
920+
"type":"structure",
921+
"required":["Status"],
922+
"members":{
923+
"S3Uri":{"shape":"DeobfuscationS3Uri"},
924+
"Status":{"shape":"DeobfuscationStatus"}
925+
}
926+
},
893927
"JsonValue":{"type":"string"},
894928
"ListAppMonitorsRequest":{
895929
"type":"structure",
@@ -1393,7 +1427,9 @@
13931427
"AppMonitorConfiguration":{"shape":"AppMonitorConfiguration"},
13941428
"CustomEvents":{"shape":"CustomEvents"},
13951429
"CwLogEnabled":{"shape":"Boolean"},
1430+
"DeobfuscationConfiguration":{"shape":"DeobfuscationConfiguration"},
13961431
"Domain":{"shape":"AppMonitorDomain"},
1432+
"DomainList":{"shape":"AppMonitorDomainList"},
13971433
"Name":{
13981434
"shape":"AppMonitorName",
13991435
"location":"uri",

generator/ServiceModels/rum/rum-2018-05-10.docs.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,19 @@
5959
"base": null,
6060
"refs": {
6161
"AppMonitor$Domain": "<p>The top-level internet domain name for which your application has administrative authority.</p>",
62+
"AppMonitorDomainList$member": null,
6263
"CreateAppMonitorRequest$Domain": "<p>The top-level internet domain name for which your application has administrative authority.</p>",
6364
"UpdateAppMonitorRequest$Domain": "<p>The top-level internet domain name for which your application has administrative authority.</p>"
6465
}
6566
},
67+
"AppMonitorDomainList": {
68+
"base": null,
69+
"refs": {
70+
"AppMonitor$DomainList": "<p> List the domain names for which your application has administrative authority. </p>",
71+
"CreateAppMonitorRequest$DomainList": "<p> List the domain names for which your application has administrative authority. The <code>CreateAppMonitor</code> requires either the domain or the domain list. </p>",
72+
"UpdateAppMonitorRequest$DomainList": "<p> List the domain names for which your application has administrative authority. The <code>UpdateAppMonitor</code> allows either the domain or the domain list. </p>"
73+
}
74+
},
6675
"AppMonitorId": {
6776
"base": null,
6877
"refs": {
@@ -250,6 +259,26 @@
250259
"refs": {
251260
}
252261
},
262+
"DeobfuscationConfiguration": {
263+
"base": "<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>",
264+
"refs": {
265+
"AppMonitor$DeobfuscationConfiguration": "<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>",
266+
"CreateAppMonitorRequest$DeobfuscationConfiguration": "<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>",
267+
"UpdateAppMonitorRequest$DeobfuscationConfiguration": "<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>"
268+
}
269+
},
270+
"DeobfuscationS3Uri": {
271+
"base": null,
272+
"refs": {
273+
"JavaScriptSourceMaps$S3Uri": "<p> The S3Uri of the bucket or folder that stores the source map files. It is required if status is ENABLED. </p>"
274+
}
275+
},
276+
"DeobfuscationStatus": {
277+
"base": null,
278+
"refs": {
279+
"JavaScriptSourceMaps$Status": "<p> Specifies whether JavaScript error stack traces should be unminified for this app monitor. The default is for JavaScript error stack trace unminification to be <code>DISABLED</code>. </p>"
280+
}
281+
},
253282
"DestinationArn": {
254283
"base": null,
255284
"refs": {
@@ -375,6 +404,12 @@
375404
"refs": {
376405
}
377406
},
407+
"JavaScriptSourceMaps": {
408+
"base": "<p> A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps. </p>",
409+
"refs": {
410+
"DeobfuscationConfiguration$JavaScriptSourceMaps": "<p> A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps. </p>"
411+
}
412+
},
378413
"JsonValue": {
379414
"base": null,
380415
"refs": {

generator/ServiceModels/rum/rum-2018-05-10.normal.json

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -436,10 +436,18 @@
436436
"shape":"DataStorage",
437437
"documentation":"<p>A structure that contains information about whether this app monitor stores a copy of the telemetry data that RUM collects using CloudWatch Logs.</p>"
438438
},
439+
"DeobfuscationConfiguration":{
440+
"shape":"DeobfuscationConfiguration",
441+
"documentation":"<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>"
442+
},
439443
"Domain":{
440444
"shape":"AppMonitorDomain",
441445
"documentation":"<p>The top-level internet domain name for which your application has administrative authority.</p>"
442446
},
447+
"DomainList":{
448+
"shape":"AppMonitorDomainList",
449+
"documentation":"<p> List the domain names for which your application has administrative authority. </p>"
450+
},
443451
"Id":{
444452
"shape":"AppMonitorId",
445453
"documentation":"<p>The unique ID of this app monitor.</p>"
@@ -527,7 +535,13 @@
527535
"type":"string",
528536
"max":253,
529537
"min":1,
530-
"pattern":"^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-]$"
538+
"pattern":"^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\\.\\*-]{4,253}$)(?!.*\\.-)(?!.*-\\.)(?!.*\\.\\.)(?!.*[^\\.]{64,})^(\\*\\.)?(?![-\\.\\*])[^\\*]{1,}\\.(\\*|(?!.*--)(?=.*[a-zA-Z])[^\\*]{1,}[^\\*-])$"
539+
},
540+
"AppMonitorDomainList":{
541+
"type":"list",
542+
"member":{"shape":"AppMonitorDomain"},
543+
"max":5,
544+
"min":1
531545
},
532546
"AppMonitorId":{
533547
"type":"string",
@@ -801,10 +815,7 @@
801815
},
802816
"CreateAppMonitorRequest":{
803817
"type":"structure",
804-
"required":[
805-
"Domain",
806-
"Name"
807-
],
818+
"required":["Name"],
808819
"members":{
809820
"AppMonitorConfiguration":{
810821
"shape":"AppMonitorConfiguration",
@@ -818,10 +829,18 @@
818829
"shape":"Boolean",
819830
"documentation":"<p>Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges.</p> <p>If you omit this parameter, the default is <code>false</code>.</p>"
820831
},
832+
"DeobfuscationConfiguration":{
833+
"shape":"DeobfuscationConfiguration",
834+
"documentation":"<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>"
835+
},
821836
"Domain":{
822837
"shape":"AppMonitorDomain",
823838
"documentation":"<p>The top-level internet domain name for which your application has administrative authority.</p>"
824839
},
840+
"DomainList":{
841+
"shape":"AppMonitorDomainList",
842+
"documentation":"<p> List the domain names for which your application has administrative authority. The <code>CreateAppMonitor</code> requires either the domain or the domain list. </p>"
843+
},
825844
"Name":{
826845
"shape":"AppMonitorName",
827846
"documentation":"<p>A name for the app monitor.</p>"
@@ -958,6 +977,29 @@
958977
"members":{
959978
}
960979
},
980+
"DeobfuscationConfiguration":{
981+
"type":"structure",
982+
"members":{
983+
"JavaScriptSourceMaps":{
984+
"shape":"JavaScriptSourceMaps",
985+
"documentation":"<p> A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps. </p>"
986+
}
987+
},
988+
"documentation":"<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>"
989+
},
990+
"DeobfuscationS3Uri":{
991+
"type":"string",
992+
"max":1024,
993+
"min":1,
994+
"pattern":"^s3://[a-z0-9][-.a-z0-9]{1,61}(?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?$"
995+
},
996+
"DeobfuscationStatus":{
997+
"type":"string",
998+
"enum":[
999+
"ENABLED",
1000+
"DISABLED"
1001+
]
1002+
},
9611003
"DestinationArn":{
9621004
"type":"string",
9631005
"max":2048,
@@ -1138,6 +1180,21 @@
11381180
},
11391181
"exception":true
11401182
},
1183+
"JavaScriptSourceMaps":{
1184+
"type":"structure",
1185+
"required":["Status"],
1186+
"members":{
1187+
"S3Uri":{
1188+
"shape":"DeobfuscationS3Uri",
1189+
"documentation":"<p> The S3Uri of the bucket or folder that stores the source map files. It is required if status is ENABLED. </p>"
1190+
},
1191+
"Status":{
1192+
"shape":"DeobfuscationStatus",
1193+
"documentation":"<p> Specifies whether JavaScript error stack traces should be unminified for this app monitor. The default is for JavaScript error stack trace unminification to be <code>DISABLED</code>. </p>"
1194+
}
1195+
},
1196+
"documentation":"<p> A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps. </p>"
1197+
},
11411198
"JsonValue":{"type":"string"},
11421199
"ListAppMonitorsRequest":{
11431200
"type":"structure",
@@ -1815,10 +1872,18 @@
18151872
"shape":"Boolean",
18161873
"documentation":"<p>Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges.</p>"
18171874
},
1875+
"DeobfuscationConfiguration":{
1876+
"shape":"DeobfuscationConfiguration",
1877+
"documentation":"<p> A structure that contains the configuration for how an app monitor can deobfuscate stack traces. </p>"
1878+
},
18181879
"Domain":{
18191880
"shape":"AppMonitorDomain",
18201881
"documentation":"<p>The top-level internet domain name for which your application has administrative authority.</p>"
18211882
},
1883+
"DomainList":{
1884+
"shape":"AppMonitorDomainList",
1885+
"documentation":"<p> List the domain names for which your application has administrative authority. The <code>UpdateAppMonitor</code> allows either the domain or the domain list. </p>"
1886+
},
18221887
"Name":{
18231888
"shape":"AppMonitorName",
18241889
"documentation":"<p>The name of the app monitor to update.</p>",

sdk/code-analysis/ServiceAnalysis/CloudWatchRUM/Generated/PropertyValueRules.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<property>Amazon.CloudWatchRUM.Model.CreateAppMonitorRequest.Domain</property>
4646
<min>1</min>
4747
<max>253</max>
48-
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-]$</pattern>
48+
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(\*|(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-])$</pattern>
4949
</property-value-rule>
5050
<property-value-rule>
5151
<property>Amazon.CloudWatchRUM.Model.CreateAppMonitorRequest.Name</property>
@@ -206,7 +206,7 @@
206206
<property>Amazon.CloudWatchRUM.Model.UpdateAppMonitorRequest.Domain</property>
207207
<min>1</min>
208208
<max>253</max>
209-
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-]$</pattern>
209+
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(\*|(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-])$</pattern>
210210
</property-value-rule>
211211
<property-value-rule>
212212
<property>Amazon.CloudWatchRUM.Model.UpdateAppMonitorRequest.Name</property>
@@ -240,7 +240,7 @@
240240
<property>Amazon.CloudWatchRUM.Model.AppMonitor.Domain</property>
241241
<min>1</min>
242242
<max>253</max>
243-
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-]$</pattern>
243+
<pattern>^(localhost)$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|(?=^[a-zA-Z0-9\.\*-]{4,253}$)(?!.*\.-)(?!.*-\.)(?!.*\.\.)(?!.*[^\.]{64,})^(\*\.)?(?![-\.\*])[^\*]{1,}\.(\*|(?!.*--)(?=.*[a-zA-Z])[^\*]{1,}[^\*-])$</pattern>
244244
</property-value-rule>
245245
<property-value-rule>
246246
<property>Amazon.CloudWatchRUM.Model.AppMonitor.Id</property>
@@ -301,6 +301,12 @@
301301
<min>1</min>
302302
<max>255</max>
303303
</property-value-rule>
304+
<property-value-rule>
305+
<property>Amazon.CloudWatchRUM.Model.JavaScriptSourceMaps.S3Uri</property>
306+
<min>1</min>
307+
<max>1024</max>
308+
<pattern>^s3://[a-z0-9][-.a-z0-9]{1,61}(?:/[-!_*'().a-z0-9A-Z]+(?:/[-!_*'().a-z0-9A-Z]+)*)?/?$</pattern>
309+
</property-value-rule>
304310
<property-value-rule>
305311
<property>Amazon.CloudWatchRUM.Model.MetricDefinition.EventPattern</property>
306312
<min>0</min>

sdk/src/Services/CloudWatchRUM/Generated/Model/AppMonitor.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ public partial class AppMonitor
4040
private string _created;
4141
private CustomEvents _customEvents;
4242
private DataStorage _dataStorage;
43+
private DeobfuscationConfiguration _deobfuscationConfiguration;
4344
private string _domain;
45+
private List<string> _domainList = AWSConfigs.InitializeCollections ? new List<string>() : null;
4446
private string _id;
4547
private string _lastModified;
4648
private string _name;
@@ -127,6 +129,25 @@ internal bool IsSetDataStorage()
127129
return this._dataStorage != null;
128130
}
129131

132+
/// <summary>
133+
/// Gets and sets the property DeobfuscationConfiguration.
134+
/// <para>
135+
/// A structure that contains the configuration for how an app monitor can deobfuscate
136+
/// stack traces.
137+
/// </para>
138+
/// </summary>
139+
public DeobfuscationConfiguration DeobfuscationConfiguration
140+
{
141+
get { return this._deobfuscationConfiguration; }
142+
set { this._deobfuscationConfiguration = value; }
143+
}
144+
145+
// Check to see if DeobfuscationConfiguration property is set
146+
internal bool IsSetDeobfuscationConfiguration()
147+
{
148+
return this._deobfuscationConfiguration != null;
149+
}
150+
130151
/// <summary>
131152
/// Gets and sets the property Domain.
132153
/// <para>
@@ -146,6 +167,25 @@ internal bool IsSetDomain()
146167
return this._domain != null;
147168
}
148169

170+
/// <summary>
171+
/// Gets and sets the property DomainList.
172+
/// <para>
173+
/// List the domain names for which your application has administrative authority.
174+
/// </para>
175+
/// </summary>
176+
[AWSProperty(Min=1, Max=5)]
177+
public List<string> DomainList
178+
{
179+
get { return this._domainList; }
180+
set { this._domainList = value; }
181+
}
182+
183+
// Check to see if DomainList property is set
184+
internal bool IsSetDomainList()
185+
{
186+
return this._domainList != null && (this._domainList.Count > 0 || !AWSConfigs.InitializeCollections);
187+
}
188+
149189
/// <summary>
150190
/// Gets and sets the property Id.
151191
/// <para>

0 commit comments

Comments
 (0)