funktor 0.7.19 → 0.7.22
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/funktor-testapp/funktor_config/funktor.yml +4 -4
- data/funktor-testapp/funktor_config/resources/cloudwatch_dashboard.yml +324 -220
- data/lib/funktor/cli/templates/funktor_config/resources/cloudwatch_dashboard.yml +229 -146
- data/lib/funktor/version.rb +1 -1
- metadata +2 -2
@@ -21,7 +21,7 @@ Resources:
|
|
21
21
|
},
|
22
22
|
<% current_y += 3 %>
|
23
23
|
|
24
|
-
{ <% "
|
24
|
+
{ <% "Worker Overview" %>
|
25
25
|
"height": 1,
|
26
26
|
"width": 24,
|
27
27
|
"y": <%= current_y %>,
|
@@ -45,7 +45,7 @@ Resources:
|
|
45
45
|
"metrics": [
|
46
46
|
[ "${self:custom.funktor.DashboardNamespace}", "processed", "WorkerClassName", "<%= worker_name %>", { "color": "#2ca02c" } ],
|
47
47
|
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "p90", "color": "#ff7f0e", "stat": "p90" } ],
|
48
|
-
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "
|
48
|
+
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "p50", "color": "#1f77b4", "stat": "p50" } ]
|
49
49
|
],
|
50
50
|
"view": "singleValue",
|
51
51
|
"region": "us-east-1",
|
@@ -134,14 +134,14 @@ Resources:
|
|
134
134
|
"type": "metric",
|
135
135
|
"properties": {
|
136
136
|
"metrics": [
|
137
|
-
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "
|
137
|
+
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "p20", "color": "#1f77b4" } ]
|
138
138
|
],
|
139
139
|
"view": "singleValue",
|
140
140
|
"region": "us-east-1",
|
141
|
-
"stat": "
|
141
|
+
"stat": "p20",
|
142
142
|
"period": 60,
|
143
143
|
"sparkline": true,
|
144
|
-
"title": "<%= worker_name %>
|
144
|
+
"title": "<%= worker_name %> p20"
|
145
145
|
}
|
146
146
|
},
|
147
147
|
{ <% "Worker Duration Percentiles" %>
|
@@ -152,14 +152,14 @@ Resources:
|
|
152
152
|
"type": "metric",
|
153
153
|
"properties": {
|
154
154
|
"metrics": [
|
155
|
-
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "
|
155
|
+
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "label": "p50", "color": "#ff7f0e" } ]
|
156
156
|
],
|
157
157
|
"view": "singleValue",
|
158
158
|
"region": "us-east-1",
|
159
|
-
"stat": "
|
159
|
+
"stat": "p50",
|
160
160
|
"period": 60,
|
161
161
|
"sparkline": true,
|
162
|
-
"title": "<%= worker_name %>
|
162
|
+
"title": "<%= worker_name %> p50"
|
163
163
|
}
|
164
164
|
},
|
165
165
|
{ <% "Worker Duration Percentiles" %>
|
@@ -236,9 +236,6 @@ Resources:
|
|
236
236
|
},
|
237
237
|
<% current_y += 3 %>
|
238
238
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
239
|
{ <% "Processed Jobs By Worker" %>
|
243
240
|
"height": 3,
|
244
241
|
"width": 3,
|
@@ -291,13 +288,13 @@ Resources:
|
|
291
288
|
"metrics": [
|
292
289
|
[ "${self:custom.funktor.DashboardNamespace}", "Duration", "WorkerClassName", "<%= worker_name %>", { "stat": "p90", "color": "#d62728" } ],
|
293
290
|
[ "...", { "stat": "p80", "color": "#2ca02c" } ],
|
294
|
-
[ "...", { "stat": "
|
291
|
+
[ "...", { "stat": "p50", "color": "#ff7f0e" } ],
|
295
292
|
[ "...", { "color": "#1f77b4" } ]
|
296
293
|
],
|
297
294
|
"view": "timeSeries",
|
298
295
|
"stacked": false,
|
299
296
|
"region": "us-east-1",
|
300
|
-
"stat": "
|
297
|
+
"stat": "p20",
|
301
298
|
"period": 60,
|
302
299
|
"title": "<%= worker_name %> Duration Percentiles",
|
303
300
|
"legend": {
|
@@ -351,7 +348,7 @@ Resources:
|
|
351
348
|
<%- end -%>
|
352
349
|
|
353
350
|
{ <% "Funktor Behind the Scenes Banner" %>
|
354
|
-
"height":
|
351
|
+
"height": 2,
|
355
352
|
"width": 24,
|
356
353
|
"y": <%= current_y %>,
|
357
354
|
"x": 0,
|
@@ -360,9 +357,9 @@ Resources:
|
|
360
357
|
"markdown": "\n# Behind the scenes\n\n The stats below give some insight into the inner workings of the Funktor apparatus."
|
361
358
|
}
|
362
359
|
},
|
360
|
+
<% current_y += 2 %>
|
363
361
|
|
364
362
|
|
365
|
-
<% current_y += 6 %>
|
366
363
|
{ <% "Incoming Jobs" %>
|
367
364
|
"height": 3,
|
368
365
|
"width": 6,
|
@@ -370,7 +367,7 @@ Resources:
|
|
370
367
|
"x": 0,
|
371
368
|
"type": "text",
|
372
369
|
"properties": {
|
373
|
-
"markdown": "\n# Incoming Jobs\n"
|
370
|
+
"markdown": "\n# Incoming Jobs\n All jobs enter the system here. Jobs that are to be executed within the next 90 second go directly to a work queue. Jobs farther in the future are put in the jobs table."
|
374
371
|
}
|
375
372
|
},
|
376
373
|
{ <% "Incoming Job Queue Messages per minute" %>
|
@@ -399,24 +396,24 @@ Resources:
|
|
399
396
|
"type": "metric",
|
400
397
|
"properties": {
|
401
398
|
"metrics": [
|
402
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", "Resource", "${self:custom.funktor.IncomingJobHandlerName}", { "label": "
|
403
|
-
[ "...", { "label": "
|
399
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", "Resource", "${self:custom.funktor.IncomingJobHandlerName}", { "label": "p20" } ],
|
400
|
+
[ "...", { "label": "p50", "stat": "p50" } ],
|
404
401
|
[ "...", { "label": "p80", "stat": "p80" } ],
|
405
402
|
[ "...", { "label": "p90", "stat": "p90" } ]
|
406
403
|
],
|
407
404
|
"view": "singleValue",
|
408
405
|
"region": "us-east-1",
|
409
|
-
"stat": "
|
406
|
+
"stat": "p20",
|
410
407
|
"period": 60,
|
411
408
|
"sparkline": true,
|
412
409
|
"title": "Handler Duration Percentiles"
|
413
410
|
}
|
414
411
|
},
|
412
|
+
<% current_y += 3 %>
|
415
413
|
|
416
414
|
|
417
|
-
<%
|
418
|
-
|
419
|
-
"height": 6,
|
415
|
+
{ <% "Incoming Job Queue Counts" %>
|
416
|
+
"height": 4,
|
420
417
|
"width": 9,
|
421
418
|
"y": <%= current_y %>,
|
422
419
|
"x": 0,
|
@@ -434,39 +431,18 @@ Resources:
|
|
434
431
|
"view": "timeSeries",
|
435
432
|
"stacked": false,
|
436
433
|
"region": "us-east-1",
|
437
|
-
"title": "Incoming Job Queue
|
434
|
+
"title": "Incoming Job Queue Counts",
|
438
435
|
"period": 60,
|
439
436
|
"stat": "Sum",
|
440
437
|
"setPeriodToTimeRange": true,
|
441
438
|
"liveData": true
|
442
439
|
}
|
443
440
|
},
|
444
|
-
{ <% "Incoming Job Handler Duration in Milliseconds" %>
|
445
|
-
"height": 6,
|
446
|
-
"width": 9,
|
447
|
-
"y": <%= current_y %>,
|
448
|
-
"x": 9,
|
449
|
-
"type": "metric",
|
450
|
-
"properties": {
|
451
|
-
"period": 60,
|
452
|
-
"metrics": [
|
453
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "stat": "p60" } ],
|
454
|
-
[ "...", { "stat": "p70" } ],
|
455
|
-
[ "...", { "stat": "p80" } ],
|
456
|
-
[ "...", { "stat": "p90" } ]
|
457
|
-
],
|
458
|
-
"region": "us-east-1",
|
459
|
-
"title": "Incoming Job Handler Duration in Milliseconds",
|
460
|
-
"view": "timeSeries",
|
461
|
-
"stacked": false,
|
462
|
-
"liveData": true
|
463
|
-
}
|
464
|
-
},
|
465
441
|
{ <% "Incoming Job Handler Error count and success rate (%)" %>
|
466
442
|
"height": 3,
|
467
|
-
"width":
|
468
|
-
"y": <%= current_y %>,
|
469
|
-
"x":
|
443
|
+
"width": 4,
|
444
|
+
"y": <%= current_y + 4 %>,
|
445
|
+
"x": 0,
|
470
446
|
"type": "metric",
|
471
447
|
"properties": {
|
472
448
|
"period": 60,
|
@@ -487,13 +463,11 @@ Resources:
|
|
487
463
|
"liveData": true
|
488
464
|
}
|
489
465
|
},
|
490
|
-
|
491
|
-
|
492
466
|
{ <% "Incoming Job Handler Concurrent Executions" %>
|
493
467
|
"height": 3,
|
494
|
-
"width":
|
495
|
-
"y": <%= current_y +
|
496
|
-
"x":
|
468
|
+
"width": 5,
|
469
|
+
"y": <%= current_y + 4 %>,
|
470
|
+
"x": 4,
|
497
471
|
"type": "metric",
|
498
472
|
"properties": {
|
499
473
|
"period": 60,
|
@@ -507,10 +481,60 @@ Resources:
|
|
507
481
|
"liveData": true
|
508
482
|
}
|
509
483
|
},
|
484
|
+
|
485
|
+
{ <% "Incoming Job Handler Duration in Milliseconds" %>
|
486
|
+
"x": 9,
|
487
|
+
"y": <%= current_y %>,
|
488
|
+
"width": 10,
|
489
|
+
"height": 7,
|
490
|
+
"type": "metric",
|
491
|
+
"properties": {
|
492
|
+
"period": 60,
|
493
|
+
"metrics": [
|
494
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "stat": "p20" } ],
|
495
|
+
[ "...", { "stat": "p50" } ],
|
496
|
+
[ "...", { "stat": "p80" } ],
|
497
|
+
[ "...", { "stat": "p90" } ]
|
498
|
+
],
|
499
|
+
"region": "us-east-1",
|
500
|
+
"title": "Incoming Job Handler Duration in Milliseconds",
|
501
|
+
"view": "timeSeries",
|
502
|
+
"stacked": false,
|
503
|
+
"liveData": true
|
504
|
+
}
|
505
|
+
},
|
506
|
+
{ <% "Incoming Job Handler Init Duration" %>
|
507
|
+
"type": "log",
|
508
|
+
"height": 4,
|
509
|
+
"width": 5,
|
510
|
+
"y": <%= current_y %>,
|
511
|
+
"x": 19,
|
512
|
+
"properties": {
|
513
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.IncomingJobHandlerName}' | fields @initDuration\n| filter ispresent(@initDuration)\n| stats pct(@initDuration, 5) as p5,\n\n\n\n pct(@initDuration, 50) as p50,\n\n\n\n pct(@initDuration, 95) as p95,\n\n\n\n pct(@initDuration, 99) as p99\n\n\n\n by bin(20m)\n",
|
514
|
+
"region": "us-east-1",
|
515
|
+
"stacked": false,
|
516
|
+
"view": "timeSeries",
|
517
|
+
"title": "Incoming Job Handler Init Duration"
|
518
|
+
}
|
519
|
+
},
|
520
|
+
{ <% "Incoming Job Handler Memory" %>
|
521
|
+
"height": 3,
|
522
|
+
"width": 5,
|
523
|
+
"y": <%= current_y + 4 %>,
|
524
|
+
"x": 19,
|
525
|
+
"type": "log",
|
526
|
+
"properties": {
|
527
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.IncomingJobHandlerName}' | filter @type=\"REPORT\"\n| stats max(@memorySize) as provisioned,\navg(@maxMemoryUsed) as avg_used,\nmax(@maxMemoryUsed) as max_used by bin(60s)",
|
528
|
+
"region": "us-east-1",
|
529
|
+
"stacked": false,
|
530
|
+
"title": "IncomingJobHandler Memory",
|
531
|
+
"view": "timeSeries"
|
532
|
+
}
|
533
|
+
},
|
534
|
+
<% current_y += 7 %>
|
510
535
|
|
511
536
|
|
512
537
|
|
513
|
-
<% current_y += 6 %>
|
514
538
|
<%- queue_names.each do |queue_name| -%>
|
515
539
|
{ <% "Active Jobs" %>
|
516
540
|
"height": 3,
|
@@ -519,7 +543,7 @@ Resources:
|
|
519
543
|
"x": 0,
|
520
544
|
"type": "text",
|
521
545
|
"properties": {
|
522
|
-
"markdown": "\n# <%= queue_name.camelize %> Queue\n"
|
546
|
+
"markdown": "\n# <%= queue_name.camelize %> Queue\n Async jobs land here immediately, scheduled jobs land here in the minute before they're scheduled."
|
523
547
|
}
|
524
548
|
},
|
525
549
|
{ <% "Active Jobs messages per minut" %>
|
@@ -551,23 +575,25 @@ Resources:
|
|
551
575
|
"metrics": [
|
552
576
|
[ "AWS/Lambda", "Duration", "FunctionName",
|
553
577
|
"${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", "Resource",
|
554
|
-
"${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "label": "
|
555
|
-
[ "...", { "label": "
|
578
|
+
"${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "label": "p20" } ],
|
579
|
+
[ "...", { "label": "p50", "stat": "p50" } ],
|
556
580
|
[ "...", { "label": "p80", "stat": "p80" } ],
|
557
581
|
[ "...", { "label": "p90", "stat": "p90" } ]
|
558
582
|
],
|
559
583
|
"view": "singleValue",
|
560
584
|
"region": "us-east-1",
|
561
|
-
"stat": "
|
585
|
+
"stat": "p20",
|
562
586
|
"period": 60,
|
563
587
|
"sparkline": true,
|
564
588
|
"title": "Handler Duration"
|
565
589
|
}
|
566
590
|
},
|
567
|
-
|
568
|
-
|
591
|
+
<% current_y += 3 %>
|
592
|
+
|
593
|
+
{ <% "Active Job Queue Counts" %>
|
594
|
+
"height": 4,
|
569
595
|
"width": 9,
|
570
|
-
"y": <%= current_y
|
596
|
+
"y": <%= current_y %>,
|
571
597
|
"x": 0,
|
572
598
|
"type": "metric",
|
573
599
|
"properties": {
|
@@ -588,38 +614,17 @@ Resources:
|
|
588
614
|
"view": "timeSeries",
|
589
615
|
"stacked": false,
|
590
616
|
"region": "us-east-1",
|
591
|
-
"title": "<%= queue_name.camelize %> Queue
|
617
|
+
"title": "<%= queue_name.camelize %> Queue Counts",
|
592
618
|
"period": 60,
|
593
619
|
"stat": "Sum",
|
594
620
|
"liveData": true
|
595
621
|
}
|
596
622
|
},
|
597
|
-
{ <% "Active Job Handler Duration in Milliseconds" %>
|
598
|
-
"height": 6,
|
599
|
-
"width": 9,
|
600
|
-
"y": <%= current_y + 3 %>,
|
601
|
-
"x": 9,
|
602
|
-
"type": "metric",
|
603
|
-
"properties": {
|
604
|
-
"period": 60,
|
605
|
-
"metrics": [
|
606
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "stat": "p60" } ],
|
607
|
-
[ "...", { "stat": "p70" } ],
|
608
|
-
[ "...", { "stat": "p80" } ],
|
609
|
-
[ "...", { "stat": "p90" } ]
|
610
|
-
],
|
611
|
-
"region": "us-east-1",
|
612
|
-
"title": "<%= queue_name.camelize %> Queue Handler Duration in Milliseconds",
|
613
|
-
"view": "timeSeries",
|
614
|
-
"stacked": false,
|
615
|
-
"liveData": true
|
616
|
-
}
|
617
|
-
},
|
618
623
|
{ <% "Active Job HandlerError count and success rate (%)" %>
|
619
624
|
"height": 3,
|
620
|
-
"width":
|
621
|
-
"y": <%= current_y +
|
622
|
-
"x":
|
625
|
+
"width": 4,
|
626
|
+
"y": <%= current_y + 4 %>,
|
627
|
+
"x": 0,
|
623
628
|
"type": "metric",
|
624
629
|
"properties": {
|
625
630
|
"period": 60,
|
@@ -643,9 +648,9 @@ Resources:
|
|
643
648
|
},
|
644
649
|
{ <% "Active Job Handler Concurrent executions" %>
|
645
650
|
"height": 3,
|
646
|
-
"width":
|
647
|
-
"y": <%= current_y +
|
648
|
-
"x":
|
651
|
+
"width": 5,
|
652
|
+
"y": <%= current_y + 4 %>,
|
653
|
+
"x": 4,
|
649
654
|
"type": "metric",
|
650
655
|
"properties": {
|
651
656
|
"period": 60,
|
@@ -661,19 +666,67 @@ Resources:
|
|
661
666
|
}
|
662
667
|
},
|
663
668
|
|
664
|
-
<%
|
669
|
+
{ <% "Active Job Handler Duration in Milliseconds" %>
|
670
|
+
"x": 9,
|
671
|
+
"y": <%= current_y %>,
|
672
|
+
"width": 10,
|
673
|
+
"height": 7,
|
674
|
+
"type": "metric",
|
675
|
+
"properties": {
|
676
|
+
"period": 60,
|
677
|
+
"metrics": [
|
678
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "stat": "p20" } ],
|
679
|
+
[ "...", { "stat": "p50" } ],
|
680
|
+
[ "...", { "stat": "p80" } ],
|
681
|
+
[ "...", { "stat": "p90" } ]
|
682
|
+
],
|
683
|
+
"region": "us-east-1",
|
684
|
+
"title": "<%= queue_name.camelize %> Queue Handler Duration in Milliseconds",
|
685
|
+
"view": "timeSeries",
|
686
|
+
"stacked": false,
|
687
|
+
"liveData": true
|
688
|
+
}
|
689
|
+
},
|
690
|
+
{ <% "Queue Handler Init Duration" %>
|
691
|
+
"type": "log",
|
692
|
+
"height": 4,
|
693
|
+
"width": 5,
|
694
|
+
"y": <%= current_y %>,
|
695
|
+
"x": 19,
|
696
|
+
"properties": {
|
697
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}' | fields @initDuration\n| filter ispresent(@initDuration)\n| stats pct(@initDuration, 5) as p5,\n\n\n\n pct(@initDuration, 50) as p50,\n\n\n\n pct(@initDuration, 95) as p95,\n\n\n\n pct(@initDuration, 99) as p99\n\n\n\n by bin(20m)\n",
|
698
|
+
"region": "us-east-1",
|
699
|
+
"stacked": false,
|
700
|
+
"view": "timeSeries",
|
701
|
+
"title": "<%= queue_name.camelize %> Handler Init Duration"
|
702
|
+
}
|
703
|
+
},
|
704
|
+
{ <% "Queue Handler Memory" %>
|
705
|
+
"height": 3,
|
706
|
+
"width": 5,
|
707
|
+
"y": <%= current_y + 4 %>,
|
708
|
+
"x": 19,
|
709
|
+
"type": "log",
|
710
|
+
"properties": {
|
711
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}' | filter @type=\"REPORT\"\n| stats max(@memorySize) as provisioned,\navg(@maxMemoryUsed) as avg_used,\nmax(@maxMemoryUsed) as max_used by bin(60s)",
|
712
|
+
"region": "us-east-1",
|
713
|
+
"stacked": false,
|
714
|
+
"title": "<%= queue_name.camelize %> Handler Memory",
|
715
|
+
"view": "timeSeries"
|
716
|
+
}
|
717
|
+
},
|
718
|
+
<% current_y += 7 %>
|
665
719
|
<%- end -%>
|
666
720
|
|
667
|
-
|
668
721
|
|
669
|
-
{ <% "Delayed
|
722
|
+
{ <% "Delayed Job Activator" %>
|
670
723
|
"height": 3,
|
671
724
|
"width": 6,
|
672
725
|
"y": <%= current_y %>,
|
673
726
|
"x": 0,
|
674
727
|
"type": "text",
|
675
728
|
"properties": {
|
676
|
-
"markdown": "\n# Delayed
|
729
|
+
"markdown": "\n# Delayed Job Activator\n This job fires every minute and pulls jobs scheduled in the next 90 seconds from the table and sends them to the Incoming Jobs Queue."
|
677
730
|
}
|
678
731
|
},
|
679
732
|
{ <% "Messages To Be Scheduled" %>
|
@@ -702,28 +755,30 @@ Resources:
|
|
702
755
|
"type": "metric",
|
703
756
|
"properties": {
|
704
757
|
"metrics": [
|
705
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", "Resource", "${self:custom.funktor.JobActivatorName}", { "label": "
|
706
|
-
[ "...", { "label": "
|
758
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", "Resource", "${self:custom.funktor.JobActivatorName}", { "label": "p20" } ],
|
759
|
+
[ "...", { "label": "p50", "stat": "p50" } ],
|
707
760
|
[ "...", { "label": "p80", "stat": "p80" } ],
|
708
761
|
[ "...", { "label": "p90", "stat": "p90" } ]
|
709
762
|
],
|
710
763
|
"view": "singleValue",
|
711
764
|
"region": "us-east-1",
|
712
|
-
"stat": "
|
765
|
+
"stat": "p20",
|
713
766
|
"period": 60,
|
714
767
|
"sparkline": true,
|
715
768
|
"title": "Handler Duration"
|
716
769
|
}
|
717
770
|
},
|
771
|
+
<% current_y += 3 %>
|
718
772
|
|
719
773
|
|
720
774
|
|
721
|
-
|
722
|
-
|
775
|
+
|
776
|
+
|
777
|
+
{ <% "Job Activator Error count and success rate (%)" %>
|
723
778
|
"height": 3,
|
724
|
-
"width":
|
725
|
-
"y": <%= current_y %>,
|
726
|
-
"x":
|
779
|
+
"width": 4,
|
780
|
+
"y": <%= current_y + 4 %>,
|
781
|
+
"x": 0,
|
727
782
|
"type": "metric",
|
728
783
|
"properties": {
|
729
784
|
"period": 60,
|
@@ -733,7 +788,7 @@ Resources:
|
|
733
788
|
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ]
|
734
789
|
],
|
735
790
|
"region": "us-east-1",
|
736
|
-
"title": "
|
791
|
+
"title": "Job Activator Error count and success rate (%)",
|
737
792
|
"yAxis": {
|
738
793
|
"right": {
|
739
794
|
"max": 100
|
@@ -744,31 +799,28 @@ Resources:
|
|
744
799
|
"liveData": true
|
745
800
|
}
|
746
801
|
},
|
747
|
-
{ <% "
|
802
|
+
{ <% "Job Activator Concurrent Executions" %>
|
748
803
|
"height": 3,
|
749
|
-
"width":
|
750
|
-
"y": <%= current_y %>,
|
751
|
-
"x":
|
804
|
+
"width": 5,
|
805
|
+
"y": <%= current_y + 4 %>,
|
806
|
+
"x": 4,
|
752
807
|
"type": "metric",
|
753
808
|
"properties": {
|
754
809
|
"period": 60,
|
755
810
|
"metrics": [
|
756
|
-
[ "AWS/Lambda", "
|
757
|
-
[ "...", { "stat": "p70" } ],
|
758
|
-
[ "...", { "stat": "p80" } ],
|
759
|
-
[ "...", { "stat": "p90" } ]
|
811
|
+
[ "AWS/Lambda", "ConcurrentExecutions", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "Maximum" } ]
|
760
812
|
],
|
761
813
|
"region": "us-east-1",
|
762
|
-
"title": "
|
814
|
+
"title": "Job Activator Concurrent Executions",
|
763
815
|
"view": "timeSeries",
|
764
816
|
"stacked": false,
|
765
817
|
"liveData": true
|
766
818
|
}
|
767
819
|
},
|
768
820
|
{ <% "Delayed Jobs To Be Executed In The Next 90 Seconds" %>
|
769
|
-
"height":
|
821
|
+
"height": 4,
|
770
822
|
"width": 9,
|
771
|
-
"y": <%= current_y %>,
|
823
|
+
"y": <%= current_y + 3 %>,
|
772
824
|
"x": 0,
|
773
825
|
"type": "metric",
|
774
826
|
"properties": {
|
@@ -784,9 +836,59 @@ Resources:
|
|
784
836
|
"liveData": true
|
785
837
|
}
|
786
838
|
},
|
839
|
+
{ <% "Job Activator Duration in Milliseconds" %>
|
840
|
+
"x": 9,
|
841
|
+
"y": <%= current_y %>,
|
842
|
+
"width": 10,
|
843
|
+
"height": 7,
|
844
|
+
"type": "metric",
|
845
|
+
"properties": {
|
846
|
+
"period": 60,
|
847
|
+
"metrics": [
|
848
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "p20" } ],
|
849
|
+
[ "...", { "stat": "p50" } ],
|
850
|
+
[ "...", { "stat": "p80" } ],
|
851
|
+
[ "...", { "stat": "p90" } ]
|
852
|
+
],
|
853
|
+
"region": "us-east-1",
|
854
|
+
"title": "Job Activator Duration in Milliseconds",
|
855
|
+
"view": "timeSeries",
|
856
|
+
"stacked": false,
|
857
|
+
"liveData": true
|
858
|
+
}
|
859
|
+
},
|
860
|
+
{ <% "Job Activator Init Duration" %>
|
861
|
+
"type": "log",
|
862
|
+
"height": 4,
|
863
|
+
"width": 5,
|
864
|
+
"y": <%= current_y %>,
|
865
|
+
"x": 19,
|
866
|
+
"properties": {
|
867
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.JobActivatorName}' | fields @initDuration\n| filter ispresent(@initDuration)\n| stats pct(@initDuration, 5) as p5,\n\n\n\n pct(@initDuration, 50) as p50,\n\n\n\n pct(@initDuration, 95) as p95,\n\n\n\n pct(@initDuration, 99) as p99\n\n\n\n by bin(20m)\n",
|
868
|
+
"region": "us-east-1",
|
869
|
+
"stacked": false,
|
870
|
+
"view": "timeSeries",
|
871
|
+
"title": "Job Activator Init Duration"
|
872
|
+
}
|
873
|
+
},
|
874
|
+
{ <% "Job Activator Memory" %>
|
875
|
+
"height": 3,
|
876
|
+
"width": 5,
|
877
|
+
"y": <%= current_y + 4 %>,
|
878
|
+
"x": 19,
|
879
|
+
"type": "log",
|
880
|
+
"properties": {
|
881
|
+
"query": "SOURCE '/aws/lambda/${self:custom.funktor.JobActivatorName}' | filter @type=\"REPORT\"\n| stats max(@memorySize) as provisioned,\navg(@maxMemoryUsed) as avg_used,\nmax(@maxMemoryUsed) as max_used by bin(60s)",
|
882
|
+
"region": "us-east-1",
|
883
|
+
"stacked": false,
|
884
|
+
"title": "Job Activator Memory",
|
885
|
+
"view": "timeSeries"
|
886
|
+
}
|
887
|
+
},
|
888
|
+
<% current_y += 7 %>
|
889
|
+
|
787
890
|
|
788
891
|
|
789
|
-
<% current_y += 3 %>
|
790
892
|
{ <% "Scheduled Job Table Read Capacity Units" %>
|
791
893
|
"height": 3,
|
792
894
|
"width": 9,
|
@@ -809,29 +911,11 @@ Resources:
|
|
809
911
|
"liveData": true
|
810
912
|
}
|
811
913
|
},
|
812
|
-
{ <% "Delayd Job Schedule Concurrent executions" %>
|
813
|
-
"height": 3,
|
814
|
-
"width": 6,
|
815
|
-
"y": <%= current_y %>,
|
816
|
-
"x": 18,
|
817
|
-
"type": "metric",
|
818
|
-
"properties": {
|
819
|
-
"period": 60,
|
820
|
-
"metrics": [
|
821
|
-
[ "AWS/Lambda", "ConcurrentExecutions", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "Maximum" } ]
|
822
|
-
],
|
823
|
-
"region": "us-east-1",
|
824
|
-
"title": "Delayd Job Schedule Concurrent executions",
|
825
|
-
"view": "timeSeries",
|
826
|
-
"stacked": false,
|
827
|
-
"liveData": true
|
828
|
-
}
|
829
|
-
},
|
830
914
|
{ <% "Scheduled Job Table Write Capacity Units" %>
|
831
915
|
"height": 3,
|
832
916
|
"width": 9,
|
833
|
-
"y": <%= current_y %>,
|
834
|
-
"x":
|
917
|
+
"y": <%= current_y + 3 %>,
|
918
|
+
"x": 0,
|
835
919
|
"type": "metric",
|
836
920
|
"properties": {
|
837
921
|
"metrics": [
|
@@ -850,14 +934,11 @@ Resources:
|
|
850
934
|
}
|
851
935
|
},
|
852
936
|
|
853
|
-
|
854
|
-
|
855
|
-
<% current_y += 3 %>
|
856
937
|
{ <% "Scheduled Job Table Latency" %>
|
857
|
-
"height":
|
858
|
-
"width":
|
938
|
+
"height": 6,
|
939
|
+
"width": 10,
|
859
940
|
"y": <%= current_y %>,
|
860
|
-
"x":
|
941
|
+
"x": 9,
|
861
942
|
"type": "metric",
|
862
943
|
"properties": {
|
863
944
|
"metrics": [
|
@@ -866,6 +947,7 @@ Resources:
|
|
866
947
|
[ ".", "ThrottledRequests", ".", ".", ".", "PutItem", { "yAxis": "right", "visible": false } ],
|
867
948
|
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "DeleteItem" ],
|
868
949
|
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "UpdateItem" ],
|
950
|
+
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "GetItem" ],
|
869
951
|
[ ".", "ThrottledRequests", ".", ".", ".", ".", { "yAxis": "right", "visible": false } ]
|
870
952
|
],
|
871
953
|
"view": "timeSeries",
|
@@ -877,16 +959,19 @@ Resources:
|
|
877
959
|
"liveData": true
|
878
960
|
}
|
879
961
|
},
|
962
|
+
|
880
963
|
{ <% "Scheduled Job Table Throttled Operations" %>
|
881
|
-
"height":
|
882
|
-
"width":
|
964
|
+
"height": 6,
|
965
|
+
"width": 5,
|
883
966
|
"y": <%= current_y %>,
|
884
|
-
"x":
|
967
|
+
"x": 19,
|
885
968
|
"type": "metric",
|
886
969
|
"properties": {
|
887
970
|
"metrics": [
|
888
971
|
[ "AWS/DynamoDB", "ThrottledRequests", "TableName", "${self:custom.funktor.JobsTableName}", "Operation", "DeleteItem" ],
|
889
|
-
[ "...", "PutItem" ]
|
972
|
+
[ "...", "PutItem" ],
|
973
|
+
[ "...", "UpdateItem" ],
|
974
|
+
[ "...", "GetItem" ]
|
890
975
|
],
|
891
976
|
"view": "timeSeries",
|
892
977
|
"stacked": false,
|
@@ -897,9 +982,7 @@ Resources:
|
|
897
982
|
"liveData": true
|
898
983
|
}
|
899
984
|
}
|
900
|
-
|
901
|
-
|
902
|
-
|
985
|
+
<% current_y += 6 %>
|
903
986
|
|
904
987
|
]
|
905
988
|
}
|