funktor 0.7.5 → 0.7.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/funktor-testapp/Dockerfile +63 -0
  4. data/funktor-testapp/app/services/job_flood.rb +1 -1
  5. data/funktor-testapp/funktor_config/boot.rb +3 -0
  6. data/funktor-testapp/funktor_config/environment.yml +10 -1
  7. data/funktor-testapp/funktor_config/function_definitions/default_queue_handler.yml +5 -1
  8. data/funktor-testapp/funktor_config/function_definitions/incoming_job_handler.yml +5 -1
  9. data/funktor-testapp/funktor_config/function_definitions/job_activator.yml +5 -1
  10. data/funktor-testapp/funktor_config/function_definitions/low_concurrency_queue_handler.yml +5 -1
  11. data/funktor-testapp/funktor_config/package.yml +6 -6
  12. data/funktor-testapp/funktor_config/resources/cloudwatch_dashboard.yml +645 -37
  13. data/funktor-testapp/funktor_config/ruby_layer.yml +1 -1
  14. data/funktor-testapp/serverless.yml +13 -3
  15. data/lib/funktor/activity_tracker.rb +1 -2
  16. data/lib/funktor/cli/init.rb +4 -0
  17. data/lib/funktor/cli/templates/Dockerfile +63 -0
  18. data/lib/funktor/cli/templates/funktor_config/environment.yml +10 -1
  19. data/lib/funktor/cli/templates/funktor_config/function_definitions/incoming_job_handler.yml +5 -1
  20. data/lib/funktor/cli/templates/funktor_config/function_definitions/job_activator.yml +5 -1
  21. data/lib/funktor/cli/templates/funktor_config/function_definitions/work_queue_handler.yml +5 -1
  22. data/lib/funktor/cli/templates/funktor_config/package.yml +6 -6
  23. data/lib/funktor/cli/templates/funktor_config/resources/cloudwatch_dashboard.yml +161 -0
  24. data/lib/funktor/cli/templates/funktor_config/ruby_layer.yml +1 -1
  25. data/lib/funktor/cli/templates/serverless.yml +13 -3
  26. data/lib/funktor/incoming_job_handler.rb +9 -7
  27. data/lib/funktor/job_activator.rb +33 -17
  28. data/lib/funktor/job_pusher.rb +1 -1
  29. data/lib/funktor/version.rb +1 -1
  30. data/lib/funktor/web/application.rb +1 -1
  31. data/lib/funktor/work_queue_handler.rb +21 -6
  32. data/lib/funktor.rb +20 -1
  33. metadata +4 -2
@@ -21,10 +21,609 @@ Resources:
21
21
  },
22
22
 
23
23
 
24
+
25
+ {
26
+ "height": 3,
27
+ "width": 6,
28
+ "y": 3,
29
+ "x": 0,
30
+ "type": "text",
31
+ "properties": {
32
+ "markdown": "\n# AuditWorker\n"
33
+ }
34
+ },
35
+ {
36
+ "height": 3,
37
+ "width": 6,
38
+ "y": 3,
39
+ "x": 6,
40
+ "type": "metric",
41
+ "properties": {
42
+ "metrics": [
43
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "AuditWorker" ],
44
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "AuditWorker", { "color": "#d62728" } ]
45
+ ],
46
+ "view": "singleValue",
47
+ "region": "us-east-1",
48
+ "stat": "Sum",
49
+ "period": 60,
50
+ "sparkline": true,
51
+ "title": "AuditWorker Jobs Per Minute"
52
+ }
53
+ },
54
+ {
55
+ "height": 3,
56
+ "width": 12,
57
+ "y": 3,
58
+ "x": 12,
59
+ "type": "metric",
60
+ "properties": {
61
+ "metrics": [
62
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "AuditWorker", { "label": "p10" } ],
63
+ [ "...", { "label": "p50", "stat": "p50" } ],
64
+ [ "...", { "label": "p99", "stat": "p99" } ],
65
+ [ "...", { "label": "Average", "stat": "Average" } ]
66
+ ],
67
+ "view": "singleValue",
68
+ "region": "us-east-1",
69
+ "stat": "p10",
70
+ "period": 60,
71
+ "sparkline": true,
72
+ "title": "AuditWorker Duration"
73
+ }
74
+ },
75
+
76
+
77
+
78
+
79
+
80
+ {
81
+ "height": 3,
82
+ "width": 6,
83
+ "y": 6,
84
+ "x": 0,
85
+ "type": "metric",
86
+ "properties": {
87
+ "metrics": [
88
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "AuditWorker" ]
89
+ ],
90
+ "view": "timeSeries",
91
+ "stacked": false,
92
+ "region": "us-east-1",
93
+ "title": "AuditWorker Processed Jobs",
94
+ "period": 60,
95
+ "stat": "Sum"
96
+ }
97
+ },
98
+ {
99
+ "height": 3,
100
+ "width": 6,
101
+ "y": 9,
102
+ "x": 0,
103
+ "type": "metric",
104
+ "properties": {
105
+ "metrics": [
106
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "AuditWorker", { "color": "#d62728" }]
107
+ ],
108
+ "view": "timeSeries",
109
+ "stacked": false,
110
+ "region": "us-east-1",
111
+ "title": "AuditWorker Failed Jobs",
112
+ "period": 60,
113
+ "stat": "Sum"
114
+ }
115
+ },
116
+ {
117
+ "height": 6,
118
+ "width": 12,
119
+ "y": 6,
120
+ "x": 6,
121
+ "type": "metric",
122
+ "properties": {
123
+ "metrics": [
124
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "AuditWorker" ],
125
+ [ "...", { "stat": "p80" } ],
126
+ [ "...", { "stat": "p70" } ],
127
+ [ "...", { "stat": "p60" } ]
128
+ ],
129
+ "view": "timeSeries",
130
+ "stacked": false,
131
+ "region": "us-east-1",
132
+ "stat": "p90",
133
+ "period": 60,
134
+ "title": "AuditWorker Duration Percentiles"
135
+ }
136
+ },
137
+ {
138
+ "height": 3,
139
+ "width": 6,
140
+ "y": 6,
141
+ "x": 18,
142
+ "type": "metric",
143
+ "properties": {
144
+ "metrics": [
145
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "AuditWorker" ]
146
+ ],
147
+ "view": "timeSeries",
148
+ "stacked": false,
149
+ "region": "us-east-1",
150
+ "stat": "Maximum",
151
+ "period": 60,
152
+ "title": "AuditWorker Max"
153
+ }
154
+ },
155
+ {
156
+ "height": 3,
157
+ "width": 6,
158
+ "y": 6,
159
+ "x": 18,
160
+ "type": "metric",
161
+ "properties": {
162
+ "metrics": [
163
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "AuditWorker" ]
164
+ ],
165
+ "view": "timeSeries",
166
+ "stacked": false,
167
+ "region": "us-east-1",
168
+ "stat": "Minimum",
169
+ "period": 60,
170
+ "title": "AuditWorker Min"
171
+ }
172
+ },
173
+
174
+ {
175
+ "height": 3,
176
+ "width": 6,
177
+ "y": 12,
178
+ "x": 0,
179
+ "type": "text",
180
+ "properties": {
181
+ "markdown": "\n# GreetingsWorker\n"
182
+ }
183
+ },
184
+ {
185
+ "height": 3,
186
+ "width": 6,
187
+ "y": 12,
188
+ "x": 6,
189
+ "type": "metric",
190
+ "properties": {
191
+ "metrics": [
192
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "GreetingsWorker" ],
193
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "GreetingsWorker", { "color": "#d62728" } ]
194
+ ],
195
+ "view": "singleValue",
196
+ "region": "us-east-1",
197
+ "stat": "Sum",
198
+ "period": 60,
199
+ "sparkline": true,
200
+ "title": "GreetingsWorker Jobs Per Minute"
201
+ }
202
+ },
203
+ {
204
+ "height": 3,
205
+ "width": 12,
206
+ "y": 12,
207
+ "x": 12,
208
+ "type": "metric",
209
+ "properties": {
210
+ "metrics": [
211
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "GreetingsWorker", { "label": "p10" } ],
212
+ [ "...", { "label": "p50", "stat": "p50" } ],
213
+ [ "...", { "label": "p99", "stat": "p99" } ],
214
+ [ "...", { "label": "Average", "stat": "Average" } ]
215
+ ],
216
+ "view": "singleValue",
217
+ "region": "us-east-1",
218
+ "stat": "p10",
219
+ "period": 60,
220
+ "sparkline": true,
221
+ "title": "GreetingsWorker Duration"
222
+ }
223
+ },
224
+
225
+
226
+
227
+
228
+
229
+ {
230
+ "height": 3,
231
+ "width": 6,
232
+ "y": 15,
233
+ "x": 0,
234
+ "type": "metric",
235
+ "properties": {
236
+ "metrics": [
237
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "GreetingsWorker" ]
238
+ ],
239
+ "view": "timeSeries",
240
+ "stacked": false,
241
+ "region": "us-east-1",
242
+ "title": "GreetingsWorker Processed Jobs",
243
+ "period": 60,
244
+ "stat": "Sum"
245
+ }
246
+ },
247
+ {
248
+ "height": 3,
249
+ "width": 6,
250
+ "y": 18,
251
+ "x": 0,
252
+ "type": "metric",
253
+ "properties": {
254
+ "metrics": [
255
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "GreetingsWorker", { "color": "#d62728" }]
256
+ ],
257
+ "view": "timeSeries",
258
+ "stacked": false,
259
+ "region": "us-east-1",
260
+ "title": "GreetingsWorker Failed Jobs",
261
+ "period": 60,
262
+ "stat": "Sum"
263
+ }
264
+ },
265
+ {
266
+ "height": 6,
267
+ "width": 12,
268
+ "y": 15,
269
+ "x": 6,
270
+ "type": "metric",
271
+ "properties": {
272
+ "metrics": [
273
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "GreetingsWorker" ],
274
+ [ "...", { "stat": "p80" } ],
275
+ [ "...", { "stat": "p70" } ],
276
+ [ "...", { "stat": "p60" } ]
277
+ ],
278
+ "view": "timeSeries",
279
+ "stacked": false,
280
+ "region": "us-east-1",
281
+ "stat": "p90",
282
+ "period": 60,
283
+ "title": "GreetingsWorker Duration Percentiles"
284
+ }
285
+ },
286
+ {
287
+ "height": 3,
288
+ "width": 6,
289
+ "y": 15,
290
+ "x": 18,
291
+ "type": "metric",
292
+ "properties": {
293
+ "metrics": [
294
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "GreetingsWorker" ]
295
+ ],
296
+ "view": "timeSeries",
297
+ "stacked": false,
298
+ "region": "us-east-1",
299
+ "stat": "Maximum",
300
+ "period": 60,
301
+ "title": "GreetingsWorker Max"
302
+ }
303
+ },
304
+ {
305
+ "height": 3,
306
+ "width": 6,
307
+ "y": 15,
308
+ "x": 18,
309
+ "type": "metric",
310
+ "properties": {
311
+ "metrics": [
312
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "GreetingsWorker" ]
313
+ ],
314
+ "view": "timeSeries",
315
+ "stacked": false,
316
+ "region": "us-east-1",
317
+ "stat": "Minimum",
318
+ "period": 60,
319
+ "title": "GreetingsWorker Min"
320
+ }
321
+ },
322
+
323
+ {
324
+ "height": 3,
325
+ "width": 6,
326
+ "y": 21,
327
+ "x": 0,
328
+ "type": "text",
329
+ "properties": {
330
+ "markdown": "\n# HelloWorker\n"
331
+ }
332
+ },
333
+ {
334
+ "height": 3,
335
+ "width": 6,
336
+ "y": 21,
337
+ "x": 6,
338
+ "type": "metric",
339
+ "properties": {
340
+ "metrics": [
341
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "HelloWorker" ],
342
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "HelloWorker", { "color": "#d62728" } ]
343
+ ],
344
+ "view": "singleValue",
345
+ "region": "us-east-1",
346
+ "stat": "Sum",
347
+ "period": 60,
348
+ "sparkline": true,
349
+ "title": "HelloWorker Jobs Per Minute"
350
+ }
351
+ },
352
+ {
353
+ "height": 3,
354
+ "width": 12,
355
+ "y": 21,
356
+ "x": 12,
357
+ "type": "metric",
358
+ "properties": {
359
+ "metrics": [
360
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "HelloWorker", { "label": "p10" } ],
361
+ [ "...", { "label": "p50", "stat": "p50" } ],
362
+ [ "...", { "label": "p99", "stat": "p99" } ],
363
+ [ "...", { "label": "Average", "stat": "Average" } ]
364
+ ],
365
+ "view": "singleValue",
366
+ "region": "us-east-1",
367
+ "stat": "p10",
368
+ "period": 60,
369
+ "sparkline": true,
370
+ "title": "HelloWorker Duration"
371
+ }
372
+ },
373
+
374
+
375
+
376
+
377
+
378
+ {
379
+ "height": 3,
380
+ "width": 6,
381
+ "y": 24,
382
+ "x": 0,
383
+ "type": "metric",
384
+ "properties": {
385
+ "metrics": [
386
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "HelloWorker" ]
387
+ ],
388
+ "view": "timeSeries",
389
+ "stacked": false,
390
+ "region": "us-east-1",
391
+ "title": "HelloWorker Processed Jobs",
392
+ "period": 60,
393
+ "stat": "Sum"
394
+ }
395
+ },
396
+ {
397
+ "height": 3,
398
+ "width": 6,
399
+ "y": 27,
400
+ "x": 0,
401
+ "type": "metric",
402
+ "properties": {
403
+ "metrics": [
404
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "HelloWorker", { "color": "#d62728" }]
405
+ ],
406
+ "view": "timeSeries",
407
+ "stacked": false,
408
+ "region": "us-east-1",
409
+ "title": "HelloWorker Failed Jobs",
410
+ "period": 60,
411
+ "stat": "Sum"
412
+ }
413
+ },
414
+ {
415
+ "height": 6,
416
+ "width": 12,
417
+ "y": 24,
418
+ "x": 6,
419
+ "type": "metric",
420
+ "properties": {
421
+ "metrics": [
422
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "HelloWorker" ],
423
+ [ "...", { "stat": "p80" } ],
424
+ [ "...", { "stat": "p70" } ],
425
+ [ "...", { "stat": "p60" } ]
426
+ ],
427
+ "view": "timeSeries",
428
+ "stacked": false,
429
+ "region": "us-east-1",
430
+ "stat": "p90",
431
+ "period": 60,
432
+ "title": "HelloWorker Duration Percentiles"
433
+ }
434
+ },
435
+ {
436
+ "height": 3,
437
+ "width": 6,
438
+ "y": 24,
439
+ "x": 18,
440
+ "type": "metric",
441
+ "properties": {
442
+ "metrics": [
443
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "HelloWorker" ]
444
+ ],
445
+ "view": "timeSeries",
446
+ "stacked": false,
447
+ "region": "us-east-1",
448
+ "stat": "Maximum",
449
+ "period": 60,
450
+ "title": "HelloWorker Max"
451
+ }
452
+ },
453
+ {
454
+ "height": 3,
455
+ "width": 6,
456
+ "y": 24,
457
+ "x": 18,
458
+ "type": "metric",
459
+ "properties": {
460
+ "metrics": [
461
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "HelloWorker" ]
462
+ ],
463
+ "view": "timeSeries",
464
+ "stacked": false,
465
+ "region": "us-east-1",
466
+ "stat": "Minimum",
467
+ "period": 60,
468
+ "title": "HelloWorker Min"
469
+ }
470
+ },
471
+
472
+ {
473
+ "height": 3,
474
+ "width": 6,
475
+ "y": 30,
476
+ "x": 0,
477
+ "type": "text",
478
+ "properties": {
479
+ "markdown": "\n# SingleThreadAuditWorker\n"
480
+ }
481
+ },
482
+ {
483
+ "height": 3,
484
+ "width": 6,
485
+ "y": 30,
486
+ "x": 6,
487
+ "type": "metric",
488
+ "properties": {
489
+ "metrics": [
490
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "SingleThreadAuditWorker" ],
491
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "SingleThreadAuditWorker", { "color": "#d62728" } ]
492
+ ],
493
+ "view": "singleValue",
494
+ "region": "us-east-1",
495
+ "stat": "Sum",
496
+ "period": 60,
497
+ "sparkline": true,
498
+ "title": "SingleThreadAuditWorker Jobs Per Minute"
499
+ }
500
+ },
501
+ {
502
+ "height": 3,
503
+ "width": 12,
504
+ "y": 30,
505
+ "x": 12,
506
+ "type": "metric",
507
+ "properties": {
508
+ "metrics": [
509
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "SingleThreadAuditWorker", { "label": "p10" } ],
510
+ [ "...", { "label": "p50", "stat": "p50" } ],
511
+ [ "...", { "label": "p99", "stat": "p99" } ],
512
+ [ "...", { "label": "Average", "stat": "Average" } ]
513
+ ],
514
+ "view": "singleValue",
515
+ "region": "us-east-1",
516
+ "stat": "p10",
517
+ "period": 60,
518
+ "sparkline": true,
519
+ "title": "SingleThreadAuditWorker Duration"
520
+ }
521
+ },
522
+
523
+
524
+
525
+
526
+
527
+ {
528
+ "height": 3,
529
+ "width": 6,
530
+ "y": 33,
531
+ "x": 0,
532
+ "type": "metric",
533
+ "properties": {
534
+ "metrics": [
535
+ [ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "SingleThreadAuditWorker" ]
536
+ ],
537
+ "view": "timeSeries",
538
+ "stacked": false,
539
+ "region": "us-east-1",
540
+ "title": "SingleThreadAuditWorker Processed Jobs",
541
+ "period": 60,
542
+ "stat": "Sum"
543
+ }
544
+ },
545
+ {
546
+ "height": 3,
547
+ "width": 6,
548
+ "y": 36,
549
+ "x": 0,
550
+ "type": "metric",
551
+ "properties": {
552
+ "metrics": [
553
+ [ "${self:custom.funktor.DashboardNamespace}", "failed", "WorkerClassName", "SingleThreadAuditWorker", { "color": "#d62728" }]
554
+ ],
555
+ "view": "timeSeries",
556
+ "stacked": false,
557
+ "region": "us-east-1",
558
+ "title": "SingleThreadAuditWorker Failed Jobs",
559
+ "period": 60,
560
+ "stat": "Sum"
561
+ }
562
+ },
563
+ {
564
+ "height": 6,
565
+ "width": 12,
566
+ "y": 33,
567
+ "x": 6,
568
+ "type": "metric",
569
+ "properties": {
570
+ "metrics": [
571
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "SingleThreadAuditWorker" ],
572
+ [ "...", { "stat": "p80" } ],
573
+ [ "...", { "stat": "p70" } ],
574
+ [ "...", { "stat": "p60" } ]
575
+ ],
576
+ "view": "timeSeries",
577
+ "stacked": false,
578
+ "region": "us-east-1",
579
+ "stat": "p90",
580
+ "period": 60,
581
+ "title": "SingleThreadAuditWorker Duration Percentiles"
582
+ }
583
+ },
584
+ {
585
+ "height": 3,
586
+ "width": 6,
587
+ "y": 33,
588
+ "x": 18,
589
+ "type": "metric",
590
+ "properties": {
591
+ "metrics": [
592
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "SingleThreadAuditWorker" ]
593
+ ],
594
+ "view": "timeSeries",
595
+ "stacked": false,
596
+ "region": "us-east-1",
597
+ "stat": "Maximum",
598
+ "period": 60,
599
+ "title": "SingleThreadAuditWorker Max"
600
+ }
601
+ },
602
+ {
603
+ "height": 3,
604
+ "width": 6,
605
+ "y": 33,
606
+ "x": 18,
607
+ "type": "metric",
608
+ "properties": {
609
+ "metrics": [
610
+ [ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "SingleThreadAuditWorker" ]
611
+ ],
612
+ "view": "timeSeries",
613
+ "stacked": false,
614
+ "region": "us-east-1",
615
+ "stat": "Minimum",
616
+ "period": 60,
617
+ "title": "SingleThreadAuditWorker Min"
618
+ }
619
+ },
620
+
621
+
622
+
24
623
  {
25
624
  "height": 6,
26
625
  "width": 12,
27
- "y": 3,
626
+ "y": 39,
28
627
  "x": 12,
29
628
  "type": "metric",
30
629
  "properties": {
@@ -50,7 +649,7 @@ Resources:
50
649
  {
51
650
  "height": 6,
52
651
  "width": 12,
53
- "y": 3,
652
+ "y": 39,
54
653
  "x": 0,
55
654
  "type": "metric",
56
655
  "properties": {
@@ -73,10 +672,11 @@ Resources:
73
672
  }
74
673
  },
75
674
 
675
+
76
676
  {
77
677
  "height": 6,
78
678
  "width": 12,
79
- "y": 9,
679
+ "y": 45,
80
680
  "x": 12,
81
681
  "type": "metric",
82
682
  "properties": {
@@ -97,7 +697,7 @@ Resources:
97
697
  {
98
698
  "height": 6,
99
699
  "width": 12,
100
- "y": 9,
700
+ "y": 45,
101
701
  "x": 0,
102
702
  "type": "metric",
103
703
  "properties": {
@@ -121,7 +721,7 @@ Resources:
121
721
  {
122
722
  "height": 3,
123
723
  "width": 24,
124
- "y": 12,
724
+ "y": 48,
125
725
  "x": 0,
126
726
  "type": "text",
127
727
  "properties": {
@@ -134,7 +734,7 @@ Resources:
134
734
  {
135
735
  "height": 3,
136
736
  "width": 6,
137
- "y": 18,
737
+ "y": 54,
138
738
  "x": 0,
139
739
  "type": "text",
140
740
  "properties": {
@@ -144,7 +744,7 @@ Resources:
144
744
  {
145
745
  "height": 3,
146
746
  "width": 3,
147
- "y": 18,
747
+ "y": 54,
148
748
  "x": 6,
149
749
  "type": "metric",
150
750
  "properties": {
@@ -155,13 +755,14 @@ Resources:
155
755
  "region": "us-east-1",
156
756
  "stat": "Sum",
157
757
  "period": 60,
758
+ "sparkline": true,
158
759
  "title": "Messages Per Minute"
159
760
  }
160
761
  },
161
762
  {
162
763
  "height": 3,
163
764
  "width": 15,
164
- "y": 18,
765
+ "y": 54,
165
766
  "x": 9,
166
767
  "type": "metric",
167
768
  "properties": {
@@ -175,6 +776,7 @@ Resources:
175
776
  "region": "us-east-1",
176
777
  "stat": "p10",
177
778
  "period": 60,
779
+ "sparkline": true,
178
780
  "title": "Handler Duration"
179
781
  }
180
782
  },
@@ -184,7 +786,7 @@ Resources:
184
786
  {
185
787
  "height": 6,
186
788
  "width": 9,
187
- "y": 21,
789
+ "y": 57,
188
790
  "x": 0,
189
791
  "type": "metric",
190
792
  "properties": {
@@ -210,7 +812,7 @@ Resources:
210
812
  {
211
813
  "height": 6,
212
814
  "width": 9,
213
- "y": 21,
815
+ "y": 57,
214
816
  "x": 9,
215
817
  "type": "metric",
216
818
  "properties": {
@@ -230,7 +832,7 @@ Resources:
230
832
  {
231
833
  "height": 3,
232
834
  "width": 6,
233
- "y": 21,
835
+ "y": 57,
234
836
  "x": 18,
235
837
  "type": "metric",
236
838
  "properties": {
@@ -257,7 +859,7 @@ Resources:
257
859
  {
258
860
  "height": 3,
259
861
  "width": 6,
260
- "y": 24,
862
+ "y": 60,
261
863
  "x": 18,
262
864
  "type": "metric",
263
865
  "properties": {
@@ -279,7 +881,7 @@ Resources:
279
881
  {
280
882
  "height": 3,
281
883
  "width": 6,
282
- "y": 27,
884
+ "y": 63,
283
885
  "x": 0,
284
886
  "type": "text",
285
887
  "properties": {
@@ -289,7 +891,7 @@ Resources:
289
891
  {
290
892
  "height": 3,
291
893
  "width": 3,
292
- "y": 27,
894
+ "y": 63,
293
895
  "x": 6,
294
896
  "type": "metric",
295
897
  "properties": {
@@ -301,13 +903,14 @@ Resources:
301
903
  "region": "us-east-1",
302
904
  "stat": "Sum",
303
905
  "period": 60,
906
+ "sparkline": true,
304
907
  "title": "Messages Per Minute"
305
908
  }
306
909
  },
307
910
  {
308
911
  "height": 3,
309
912
  "width": 15,
310
- "y": 27,
913
+ "y": 63,
311
914
  "x": 9,
312
915
  "type": "metric",
313
916
  "properties": {
@@ -323,13 +926,14 @@ Resources:
323
926
  "region": "us-east-1",
324
927
  "stat": "p10",
325
928
  "period": 60,
929
+ "sparkline": true,
326
930
  "title": "Handler Duration"
327
931
  }
328
932
  },
329
933
  {
330
934
  "height": 6,
331
935
  "width": 9,
332
- "y": 30,
936
+ "y": 66,
333
937
  "x": 0,
334
938
  "type": "metric",
335
939
  "properties": {
@@ -359,7 +963,7 @@ Resources:
359
963
  {
360
964
  "height": 6,
361
965
  "width": 9,
362
- "y": 30,
966
+ "y": 66,
363
967
  "x": 9,
364
968
  "type": "metric",
365
969
  "properties": {
@@ -379,7 +983,7 @@ Resources:
379
983
  {
380
984
  "height": 3,
381
985
  "width": 6,
382
- "y": 30,
986
+ "y": 66,
383
987
  "x": 18,
384
988
  "type": "metric",
385
989
  "properties": {
@@ -405,7 +1009,7 @@ Resources:
405
1009
  {
406
1010
  "height": 3,
407
1011
  "width": 6,
408
- "y": 33,
1012
+ "y": 69,
409
1013
  "x": 18,
410
1014
  "type": "metric",
411
1015
  "properties": {
@@ -426,7 +1030,7 @@ Resources:
426
1030
  {
427
1031
  "height": 3,
428
1032
  "width": 6,
429
- "y": 36,
1033
+ "y": 72,
430
1034
  "x": 0,
431
1035
  "type": "text",
432
1036
  "properties": {
@@ -436,7 +1040,7 @@ Resources:
436
1040
  {
437
1041
  "height": 3,
438
1042
  "width": 3,
439
- "y": 36,
1043
+ "y": 72,
440
1044
  "x": 6,
441
1045
  "type": "metric",
442
1046
  "properties": {
@@ -448,13 +1052,14 @@ Resources:
448
1052
  "region": "us-east-1",
449
1053
  "stat": "Sum",
450
1054
  "period": 60,
1055
+ "sparkline": true,
451
1056
  "title": "Messages Per Minute"
452
1057
  }
453
1058
  },
454
1059
  {
455
1060
  "height": 3,
456
1061
  "width": 15,
457
- "y": 36,
1062
+ "y": 72,
458
1063
  "x": 9,
459
1064
  "type": "metric",
460
1065
  "properties": {
@@ -470,13 +1075,14 @@ Resources:
470
1075
  "region": "us-east-1",
471
1076
  "stat": "p10",
472
1077
  "period": 60,
1078
+ "sparkline": true,
473
1079
  "title": "Handler Duration"
474
1080
  }
475
1081
  },
476
1082
  {
477
1083
  "height": 6,
478
1084
  "width": 9,
479
- "y": 39,
1085
+ "y": 75,
480
1086
  "x": 0,
481
1087
  "type": "metric",
482
1088
  "properties": {
@@ -506,7 +1112,7 @@ Resources:
506
1112
  {
507
1113
  "height": 6,
508
1114
  "width": 9,
509
- "y": 39,
1115
+ "y": 75,
510
1116
  "x": 9,
511
1117
  "type": "metric",
512
1118
  "properties": {
@@ -526,7 +1132,7 @@ Resources:
526
1132
  {
527
1133
  "height": 3,
528
1134
  "width": 6,
529
- "y": 39,
1135
+ "y": 75,
530
1136
  "x": 18,
531
1137
  "type": "metric",
532
1138
  "properties": {
@@ -552,7 +1158,7 @@ Resources:
552
1158
  {
553
1159
  "height": 3,
554
1160
  "width": 6,
555
- "y": 42,
1161
+ "y": 78,
556
1162
  "x": 18,
557
1163
  "type": "metric",
558
1164
  "properties": {
@@ -576,7 +1182,7 @@ Resources:
576
1182
  {
577
1183
  "height": 3,
578
1184
  "width": 6,
579
- "y": 45,
1185
+ "y": 81,
580
1186
  "x": 0,
581
1187
  "type": "text",
582
1188
  "properties": {
@@ -586,7 +1192,7 @@ Resources:
586
1192
  {
587
1193
  "height": 3,
588
1194
  "width": 3,
589
- "y": 45,
1195
+ "y": 81,
590
1196
  "x": 6,
591
1197
  "type": "metric",
592
1198
  "properties": {
@@ -597,13 +1203,14 @@ Resources:
597
1203
  "region": "us-east-1",
598
1204
  "stat": "Average",
599
1205
  "period": 60,
1206
+ "sparkline": true,
600
1207
  "title": "Messages To Be Scheduled"
601
1208
  }
602
1209
  },
603
1210
  {
604
1211
  "height": 3,
605
1212
  "width": 15,
606
- "y": 45,
1213
+ "y": 81,
607
1214
  "x": 9,
608
1215
  "type": "metric",
609
1216
  "properties": {
@@ -617,6 +1224,7 @@ Resources:
617
1224
  "region": "us-east-1",
618
1225
  "stat": "p10",
619
1226
  "period": 60,
1227
+ "sparkline": true,
620
1228
  "title": "Handler Duration"
621
1229
  }
622
1230
  },
@@ -627,7 +1235,7 @@ Resources:
627
1235
  {
628
1236
  "height": 3,
629
1237
  "width": 6,
630
- "y": 48,
1238
+ "y": 84,
631
1239
  "x": 18,
632
1240
  "type": "metric",
633
1241
  "properties": {
@@ -652,7 +1260,7 @@ Resources:
652
1260
  {
653
1261
  "height": 3,
654
1262
  "width": 9,
655
- "y": 48,
1263
+ "y": 84,
656
1264
  "x": 9,
657
1265
  "type": "metric",
658
1266
  "properties": {
@@ -672,7 +1280,7 @@ Resources:
672
1280
  {
673
1281
  "height": 3,
674
1282
  "width": 9,
675
- "y": 48,
1283
+ "y": 84,
676
1284
  "x": 0,
677
1285
  "type": "metric",
678
1286
  "properties": {
@@ -694,7 +1302,7 @@ Resources:
694
1302
  {
695
1303
  "height": 3,
696
1304
  "width": 9,
697
- "y": 51,
1305
+ "y": 87,
698
1306
  "x": 0,
699
1307
  "type": "metric",
700
1308
  "properties": {
@@ -716,7 +1324,7 @@ Resources:
716
1324
  {
717
1325
  "height": 3,
718
1326
  "width": 6,
719
- "y": 51,
1327
+ "y": 87,
720
1328
  "x": 18,
721
1329
  "type": "metric",
722
1330
  "properties": {
@@ -734,7 +1342,7 @@ Resources:
734
1342
  {
735
1343
  "height": 3,
736
1344
  "width": 9,
737
- "y": 51,
1345
+ "y": 87,
738
1346
  "x": 9,
739
1347
  "type": "metric",
740
1348
  "properties": {
@@ -760,7 +1368,7 @@ Resources:
760
1368
  {
761
1369
  "height": 3,
762
1370
  "width": 18,
763
- "y": 54,
1371
+ "y": 90,
764
1372
  "x": 0,
765
1373
  "type": "metric",
766
1374
  "properties": {
@@ -784,7 +1392,7 @@ Resources:
784
1392
  {
785
1393
  "height": 3,
786
1394
  "width": 6,
787
- "y": 54,
1395
+ "y": 90,
788
1396
  "x": 18,
789
1397
  "type": "metric",
790
1398
  "properties": {