funktor 0.7.21 → 0.7.24
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/funktor-testapp/app/workers/audit_worker.rb +0 -3
- data/funktor-testapp/funktor_config/funktor.yml +4 -4
- data/funktor-testapp/funktor_config/resources/cloudwatch_dashboard.yml +281 -230
- data/lib/funktor/cli/templates/funktor_config/resources/cloudwatch_dashboard.yml +216 -173
- data/lib/funktor/version.rb +1 -1
- metadata +1 -1
|
@@ -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 %>,
|
|
@@ -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,
|
|
@@ -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" %>
|
|
@@ -412,11 +409,11 @@ Resources:
|
|
|
412
409
|
"title": "Handler Duration Percentiles"
|
|
413
410
|
}
|
|
414
411
|
},
|
|
412
|
+
<% current_y += 3 %>
|
|
415
413
|
|
|
416
414
|
|
|
417
|
-
<%
|
|
418
|
-
|
|
419
|
-
"height": 3,
|
|
415
|
+
{ <% "Incoming Job Queue Counts" %>
|
|
416
|
+
"height": 4,
|
|
420
417
|
"width": 9,
|
|
421
418
|
"y": <%= current_y %>,
|
|
422
419
|
"x": 0,
|
|
@@ -434,60 +431,26 @@ 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 Init Duration" %>
|
|
445
|
-
"type": "log",
|
|
446
|
-
"x": 0,
|
|
447
|
-
"y": <%= current_y + 3 %>,
|
|
448
|
-
"width": 9,
|
|
449
|
-
"height": 3,
|
|
450
|
-
"properties": {
|
|
451
|
-
"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(1h)\n",
|
|
452
|
-
"region": "us-east-1",
|
|
453
|
-
"stacked": false,
|
|
454
|
-
"view": "timeSeries",
|
|
455
|
-
"title": "Incoming Job Handler Init Duration"
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
{ <% "Incoming Job Handler Duration in Milliseconds" %>
|
|
459
|
-
"height": 6,
|
|
460
|
-
"width": 9,
|
|
461
|
-
"y": <%= current_y %>,
|
|
462
|
-
"x": 9,
|
|
463
|
-
"type": "metric",
|
|
464
|
-
"properties": {
|
|
465
|
-
"period": 60,
|
|
466
|
-
"metrics": [
|
|
467
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "stat": "p20" } ],
|
|
468
|
-
[ "...", { "stat": "p50" } ],
|
|
469
|
-
[ "...", { "stat": "p80" } ],
|
|
470
|
-
[ "...", { "stat": "p90" } ]
|
|
471
|
-
],
|
|
472
|
-
"region": "us-east-1",
|
|
473
|
-
"title": "Incoming Job Handler Duration in Milliseconds",
|
|
474
|
-
"view": "timeSeries",
|
|
475
|
-
"stacked": false,
|
|
476
|
-
"liveData": true
|
|
477
|
-
}
|
|
478
|
-
},
|
|
479
441
|
{ <% "Incoming Job Handler Error count and success rate (%)" %>
|
|
480
442
|
"height": 3,
|
|
481
|
-
"width":
|
|
482
|
-
"y": <%= current_y %>,
|
|
483
|
-
"x":
|
|
443
|
+
"width": 4,
|
|
444
|
+
"y": <%= current_y + 4 %>,
|
|
445
|
+
"x": 0,
|
|
484
446
|
"type": "metric",
|
|
485
447
|
"properties": {
|
|
486
448
|
"period": 60,
|
|
487
449
|
"metrics": [
|
|
488
450
|
[ "AWS/Lambda", "Errors", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "id": "errors", "stat": "Sum", "color": "#d13212" } ],
|
|
489
451
|
[ ".", "Invocations", ".", ".", { "id": "invocations", "stat": "Sum", "visible": false } ],
|
|
490
|
-
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ]
|
|
452
|
+
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ],
|
|
453
|
+
[ "AWS/Lambda", "Throttles", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "id": "throttles", "color": "#ff7f0e" } ]
|
|
491
454
|
],
|
|
492
455
|
"region": "us-east-1",
|
|
493
456
|
"title": "Incoming Job Handler Error count and success rate (%)",
|
|
@@ -501,13 +464,11 @@ Resources:
|
|
|
501
464
|
"liveData": true
|
|
502
465
|
}
|
|
503
466
|
},
|
|
504
|
-
|
|
505
|
-
|
|
506
467
|
{ <% "Incoming Job Handler Concurrent Executions" %>
|
|
507
468
|
"height": 3,
|
|
508
|
-
"width":
|
|
509
|
-
"y": <%= current_y +
|
|
510
|
-
"x":
|
|
469
|
+
"width": 5,
|
|
470
|
+
"y": <%= current_y + 4 %>,
|
|
471
|
+
"x": 4,
|
|
511
472
|
"type": "metric",
|
|
512
473
|
"properties": {
|
|
513
474
|
"period": 60,
|
|
@@ -521,9 +482,58 @@ Resources:
|
|
|
521
482
|
"liveData": true
|
|
522
483
|
}
|
|
523
484
|
},
|
|
524
|
-
|
|
485
|
+
|
|
486
|
+
{ <% "Incoming Job Handler Duration in Milliseconds" %>
|
|
487
|
+
"x": 9,
|
|
488
|
+
"y": <%= current_y %>,
|
|
489
|
+
"width": 10,
|
|
490
|
+
"height": 7,
|
|
491
|
+
"type": "metric",
|
|
492
|
+
"properties": {
|
|
493
|
+
"period": 60,
|
|
494
|
+
"metrics": [
|
|
495
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.IncomingJobHandlerName}", { "stat": "p20" } ],
|
|
496
|
+
[ "...", { "stat": "p50" } ],
|
|
497
|
+
[ "...", { "stat": "p80" } ],
|
|
498
|
+
[ "...", { "stat": "p90" } ]
|
|
499
|
+
],
|
|
500
|
+
"region": "us-east-1",
|
|
501
|
+
"title": "Incoming Job Handler Duration in Milliseconds",
|
|
502
|
+
"view": "timeSeries",
|
|
503
|
+
"stacked": false,
|
|
504
|
+
"liveData": true
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
{ <% "Incoming Job Handler Init Duration" %>
|
|
508
|
+
"type": "log",
|
|
509
|
+
"height": 4,
|
|
510
|
+
"width": 5,
|
|
511
|
+
"y": <%= current_y %>,
|
|
512
|
+
"x": 19,
|
|
513
|
+
"properties": {
|
|
514
|
+
"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(1m)\n",
|
|
515
|
+
"region": "us-east-1",
|
|
516
|
+
"stacked": false,
|
|
517
|
+
"view": "timeSeries",
|
|
518
|
+
"title": "Incoming Job Handler Init Duration"
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
{ <% "Incoming Job Handler Memory" %>
|
|
522
|
+
"height": 3,
|
|
523
|
+
"width": 5,
|
|
524
|
+
"y": <%= current_y + 4 %>,
|
|
525
|
+
"x": 19,
|
|
526
|
+
"type": "log",
|
|
527
|
+
"properties": {
|
|
528
|
+
"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)",
|
|
529
|
+
"region": "us-east-1",
|
|
530
|
+
"stacked": false,
|
|
531
|
+
"title": "IncomingJobHandler Memory",
|
|
532
|
+
"view": "timeSeries"
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
<% current_y += 7 %>
|
|
525
536
|
|
|
526
|
-
|
|
527
537
|
|
|
528
538
|
|
|
529
539
|
<%- queue_names.each do |queue_name| -%>
|
|
@@ -534,7 +544,7 @@ Resources:
|
|
|
534
544
|
"x": 0,
|
|
535
545
|
"type": "text",
|
|
536
546
|
"properties": {
|
|
537
|
-
"markdown": "\n# <%= queue_name.camelize %> Queue\n"
|
|
547
|
+
"markdown": "\n# <%= queue_name.camelize %> Queue\n Async jobs land here immediately, scheduled jobs land here in the minute before they're scheduled."
|
|
538
548
|
}
|
|
539
549
|
},
|
|
540
550
|
{ <% "Active Jobs messages per minut" %>
|
|
@@ -579,10 +589,12 @@ Resources:
|
|
|
579
589
|
"title": "Handler Duration"
|
|
580
590
|
}
|
|
581
591
|
},
|
|
582
|
-
|
|
583
|
-
|
|
592
|
+
<% current_y += 3 %>
|
|
593
|
+
|
|
594
|
+
{ <% "Active Job Queue Counts" %>
|
|
595
|
+
"height": 4,
|
|
584
596
|
"width": 9,
|
|
585
|
-
"y": <%= current_y
|
|
597
|
+
"y": <%= current_y %>,
|
|
586
598
|
"x": 0,
|
|
587
599
|
"type": "metric",
|
|
588
600
|
"properties": {
|
|
@@ -603,52 +615,17 @@ Resources:
|
|
|
603
615
|
"view": "timeSeries",
|
|
604
616
|
"stacked": false,
|
|
605
617
|
"region": "us-east-1",
|
|
606
|
-
"title": "<%= queue_name.camelize %> Queue
|
|
618
|
+
"title": "<%= queue_name.camelize %> Queue Counts",
|
|
607
619
|
"period": 60,
|
|
608
620
|
"stat": "Sum",
|
|
609
621
|
"liveData": true
|
|
610
622
|
}
|
|
611
623
|
},
|
|
612
|
-
{ <% "Queue Handler Init Duration" %>
|
|
613
|
-
"type": "log",
|
|
614
|
-
"x": 0,
|
|
615
|
-
"y": <%= current_y + 3 %>,
|
|
616
|
-
"width": 9,
|
|
617
|
-
"height": 3,
|
|
618
|
-
"properties": {
|
|
619
|
-
"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(1h)\n",
|
|
620
|
-
"region": "us-east-1",
|
|
621
|
-
"stacked": false,
|
|
622
|
-
"view": "timeSeries",
|
|
623
|
-
"title": "Handler Init Duration"
|
|
624
|
-
}
|
|
625
|
-
},
|
|
626
|
-
{ <% "Active Job Handler Duration in Milliseconds" %>
|
|
627
|
-
"height": 6,
|
|
628
|
-
"width": 9,
|
|
629
|
-
"y": <%= current_y + 3 %>,
|
|
630
|
-
"x": 9,
|
|
631
|
-
"type": "metric",
|
|
632
|
-
"properties": {
|
|
633
|
-
"period": 60,
|
|
634
|
-
"metrics": [
|
|
635
|
-
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "stat": "p20" } ],
|
|
636
|
-
[ "...", { "stat": "p50" } ],
|
|
637
|
-
[ "...", { "stat": "p80" } ],
|
|
638
|
-
[ "...", { "stat": "p90" } ]
|
|
639
|
-
],
|
|
640
|
-
"region": "us-east-1",
|
|
641
|
-
"title": "<%= queue_name.camelize %> Queue Handler Duration in Milliseconds",
|
|
642
|
-
"view": "timeSeries",
|
|
643
|
-
"stacked": false,
|
|
644
|
-
"liveData": true
|
|
645
|
-
}
|
|
646
|
-
},
|
|
647
624
|
{ <% "Active Job HandlerError count and success rate (%)" %>
|
|
648
625
|
"height": 3,
|
|
649
|
-
"width":
|
|
650
|
-
"y": <%= current_y +
|
|
651
|
-
"x":
|
|
626
|
+
"width": 4,
|
|
627
|
+
"y": <%= current_y + 4 %>,
|
|
628
|
+
"x": 0,
|
|
652
629
|
"type": "metric",
|
|
653
630
|
"properties": {
|
|
654
631
|
"period": 60,
|
|
@@ -656,7 +633,8 @@ Resources:
|
|
|
656
633
|
[ "AWS/Lambda", "Errors", "FunctionName",
|
|
657
634
|
"${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "id": "errors", "stat": "Sum", "color": "#d13212" } ],
|
|
658
635
|
[ ".", "Invocations", ".", ".", { "id": "invocations", "stat": "Sum", "visible": false } ],
|
|
659
|
-
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ]
|
|
636
|
+
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ],
|
|
637
|
+
[ "AWS/Lambda", "Throttles", "FunctionName", "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "id": "throttles", "color": "#ff7f0e" } ]
|
|
660
638
|
],
|
|
661
639
|
"region": "us-east-1",
|
|
662
640
|
"title": "<%= queue_name.camelize %> Queue Handler Error count and success rate (%)",
|
|
@@ -672,9 +650,9 @@ Resources:
|
|
|
672
650
|
},
|
|
673
651
|
{ <% "Active Job Handler Concurrent executions" %>
|
|
674
652
|
"height": 3,
|
|
675
|
-
"width":
|
|
676
|
-
"y": <%= current_y +
|
|
677
|
-
"x":
|
|
653
|
+
"width": 5,
|
|
654
|
+
"y": <%= current_y + 4 %>,
|
|
655
|
+
"x": 4,
|
|
678
656
|
"type": "metric",
|
|
679
657
|
"properties": {
|
|
680
658
|
"period": 60,
|
|
@@ -690,19 +668,67 @@ Resources:
|
|
|
690
668
|
}
|
|
691
669
|
},
|
|
692
670
|
|
|
693
|
-
<%
|
|
671
|
+
{ <% "Active Job Handler Duration in Milliseconds" %>
|
|
672
|
+
"x": 9,
|
|
673
|
+
"y": <%= current_y %>,
|
|
674
|
+
"width": 10,
|
|
675
|
+
"height": 7,
|
|
676
|
+
"type": "metric",
|
|
677
|
+
"properties": {
|
|
678
|
+
"period": 60,
|
|
679
|
+
"metrics": [
|
|
680
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "stat": "p20" } ],
|
|
681
|
+
[ "...", { "stat": "p50" } ],
|
|
682
|
+
[ "...", { "stat": "p80" } ],
|
|
683
|
+
[ "...", { "stat": "p90" } ]
|
|
684
|
+
],
|
|
685
|
+
"region": "us-east-1",
|
|
686
|
+
"title": "<%= queue_name.camelize %> Queue Handler Duration in Milliseconds",
|
|
687
|
+
"view": "timeSeries",
|
|
688
|
+
"stacked": false,
|
|
689
|
+
"liveData": true
|
|
690
|
+
}
|
|
691
|
+
},
|
|
692
|
+
{ <% "Queue Handler Init Duration" %>
|
|
693
|
+
"type": "log",
|
|
694
|
+
"height": 4,
|
|
695
|
+
"width": 5,
|
|
696
|
+
"y": <%= current_y %>,
|
|
697
|
+
"x": 19,
|
|
698
|
+
"properties": {
|
|
699
|
+
"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(1m)\n",
|
|
700
|
+
"region": "us-east-1",
|
|
701
|
+
"stacked": false,
|
|
702
|
+
"view": "timeSeries",
|
|
703
|
+
"title": "<%= queue_name.camelize %> Handler Init Duration"
|
|
704
|
+
}
|
|
705
|
+
},
|
|
706
|
+
{ <% "Queue Handler Memory" %>
|
|
707
|
+
"height": 3,
|
|
708
|
+
"width": 5,
|
|
709
|
+
"y": <%= current_y + 4 %>,
|
|
710
|
+
"x": 19,
|
|
711
|
+
"type": "log",
|
|
712
|
+
"properties": {
|
|
713
|
+
"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)",
|
|
714
|
+
"region": "us-east-1",
|
|
715
|
+
"stacked": false,
|
|
716
|
+
"title": "<%= queue_name.camelize %> Handler Memory",
|
|
717
|
+
"view": "timeSeries"
|
|
718
|
+
}
|
|
719
|
+
},
|
|
720
|
+
<% current_y += 7 %>
|
|
694
721
|
<%- end -%>
|
|
695
722
|
|
|
696
|
-
|
|
697
723
|
|
|
698
|
-
{ <% "Delayed
|
|
724
|
+
{ <% "Delayed Job Activator" %>
|
|
699
725
|
"height": 3,
|
|
700
726
|
"width": 6,
|
|
701
727
|
"y": <%= current_y %>,
|
|
702
728
|
"x": 0,
|
|
703
729
|
"type": "text",
|
|
704
730
|
"properties": {
|
|
705
|
-
"markdown": "\n# Delayed
|
|
731
|
+
"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."
|
|
706
732
|
}
|
|
707
733
|
},
|
|
708
734
|
{ <% "Messages To Be Scheduled" %>
|
|
@@ -744,25 +770,28 @@ Resources:
|
|
|
744
770
|
"title": "Handler Duration"
|
|
745
771
|
}
|
|
746
772
|
},
|
|
773
|
+
<% current_y += 3 %>
|
|
747
774
|
|
|
748
775
|
|
|
749
776
|
|
|
750
|
-
|
|
751
|
-
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
{ <% "Job Activator Error count and success rate (%)" %>
|
|
752
780
|
"height": 3,
|
|
753
|
-
"width":
|
|
754
|
-
"y": <%= current_y %>,
|
|
755
|
-
"x":
|
|
781
|
+
"width": 4,
|
|
782
|
+
"y": <%= current_y + 4 %>,
|
|
783
|
+
"x": 0,
|
|
756
784
|
"type": "metric",
|
|
757
785
|
"properties": {
|
|
758
786
|
"period": 60,
|
|
759
787
|
"metrics": [
|
|
760
788
|
[ "AWS/Lambda", "Errors", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "id": "errors", "stat": "Sum", "color": "#d13212" } ],
|
|
761
789
|
[ ".", "Invocations", ".", ".", { "id": "invocations", "stat": "Sum", "visible": false } ],
|
|
762
|
-
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ]
|
|
790
|
+
[ { "expression": "100 - 100 * errors / MAX([errors, invocations])", "label": "Success rate (%)", "id": "availability", "yAxis": "right", "region": "us-east-1" } ],
|
|
791
|
+
[ "AWS/Lambda", "Throttles", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "id": "throttles", "color": "#ff7f0e" } ]
|
|
763
792
|
],
|
|
764
793
|
"region": "us-east-1",
|
|
765
|
-
"title": "
|
|
794
|
+
"title": "Job Activator Error count and success rate (%)",
|
|
766
795
|
"yAxis": {
|
|
767
796
|
"right": {
|
|
768
797
|
"max": 100
|
|
@@ -773,31 +802,28 @@ Resources:
|
|
|
773
802
|
"liveData": true
|
|
774
803
|
}
|
|
775
804
|
},
|
|
776
|
-
{ <% "
|
|
805
|
+
{ <% "Job Activator Concurrent Executions" %>
|
|
777
806
|
"height": 3,
|
|
778
|
-
"width":
|
|
779
|
-
"y": <%= current_y %>,
|
|
780
|
-
"x":
|
|
807
|
+
"width": 5,
|
|
808
|
+
"y": <%= current_y + 4 %>,
|
|
809
|
+
"x": 4,
|
|
781
810
|
"type": "metric",
|
|
782
811
|
"properties": {
|
|
783
812
|
"period": 60,
|
|
784
813
|
"metrics": [
|
|
785
|
-
[ "AWS/Lambda", "
|
|
786
|
-
[ "...", { "stat": "p50" } ],
|
|
787
|
-
[ "...", { "stat": "p80" } ],
|
|
788
|
-
[ "...", { "stat": "p90" } ]
|
|
814
|
+
[ "AWS/Lambda", "ConcurrentExecutions", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "Maximum" } ]
|
|
789
815
|
],
|
|
790
816
|
"region": "us-east-1",
|
|
791
|
-
"title": "
|
|
817
|
+
"title": "Job Activator Concurrent Executions",
|
|
792
818
|
"view": "timeSeries",
|
|
793
819
|
"stacked": false,
|
|
794
820
|
"liveData": true
|
|
795
821
|
}
|
|
796
822
|
},
|
|
797
823
|
{ <% "Delayed Jobs To Be Executed In The Next 90 Seconds" %>
|
|
798
|
-
"height":
|
|
824
|
+
"height": 4,
|
|
799
825
|
"width": 9,
|
|
800
|
-
"y": <%= current_y %>,
|
|
826
|
+
"y": <%= current_y + 3 %>,
|
|
801
827
|
"x": 0,
|
|
802
828
|
"type": "metric",
|
|
803
829
|
"properties": {
|
|
@@ -813,9 +839,59 @@ Resources:
|
|
|
813
839
|
"liveData": true
|
|
814
840
|
}
|
|
815
841
|
},
|
|
842
|
+
{ <% "Job Activator Duration in Milliseconds" %>
|
|
843
|
+
"x": 9,
|
|
844
|
+
"y": <%= current_y %>,
|
|
845
|
+
"width": 10,
|
|
846
|
+
"height": 7,
|
|
847
|
+
"type": "metric",
|
|
848
|
+
"properties": {
|
|
849
|
+
"period": 60,
|
|
850
|
+
"metrics": [
|
|
851
|
+
[ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "p20" } ],
|
|
852
|
+
[ "...", { "stat": "p50" } ],
|
|
853
|
+
[ "...", { "stat": "p80" } ],
|
|
854
|
+
[ "...", { "stat": "p90" } ]
|
|
855
|
+
],
|
|
856
|
+
"region": "us-east-1",
|
|
857
|
+
"title": "Job Activator Duration in Milliseconds",
|
|
858
|
+
"view": "timeSeries",
|
|
859
|
+
"stacked": false,
|
|
860
|
+
"liveData": true
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
{ <% "Job Activator Init Duration" %>
|
|
864
|
+
"type": "log",
|
|
865
|
+
"height": 4,
|
|
866
|
+
"width": 5,
|
|
867
|
+
"y": <%= current_y %>,
|
|
868
|
+
"x": 19,
|
|
869
|
+
"properties": {
|
|
870
|
+
"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(1m)\n",
|
|
871
|
+
"region": "us-east-1",
|
|
872
|
+
"stacked": false,
|
|
873
|
+
"view": "timeSeries",
|
|
874
|
+
"title": "Job Activator Init Duration"
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
{ <% "Job Activator Memory" %>
|
|
878
|
+
"height": 3,
|
|
879
|
+
"width": 5,
|
|
880
|
+
"y": <%= current_y + 4 %>,
|
|
881
|
+
"x": 19,
|
|
882
|
+
"type": "log",
|
|
883
|
+
"properties": {
|
|
884
|
+
"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)",
|
|
885
|
+
"region": "us-east-1",
|
|
886
|
+
"stacked": false,
|
|
887
|
+
"title": "Job Activator Memory",
|
|
888
|
+
"view": "timeSeries"
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
<% current_y += 7 %>
|
|
892
|
+
|
|
816
893
|
|
|
817
894
|
|
|
818
|
-
<% current_y += 3 %>
|
|
819
895
|
{ <% "Scheduled Job Table Read Capacity Units" %>
|
|
820
896
|
"height": 3,
|
|
821
897
|
"width": 9,
|
|
@@ -838,29 +914,11 @@ Resources:
|
|
|
838
914
|
"liveData": true
|
|
839
915
|
}
|
|
840
916
|
},
|
|
841
|
-
{ <% "Delayd Job Schedule Concurrent executions" %>
|
|
842
|
-
"height": 3,
|
|
843
|
-
"width": 6,
|
|
844
|
-
"y": <%= current_y %>,
|
|
845
|
-
"x": 18,
|
|
846
|
-
"type": "metric",
|
|
847
|
-
"properties": {
|
|
848
|
-
"period": 60,
|
|
849
|
-
"metrics": [
|
|
850
|
-
[ "AWS/Lambda", "ConcurrentExecutions", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "Maximum" } ]
|
|
851
|
-
],
|
|
852
|
-
"region": "us-east-1",
|
|
853
|
-
"title": "Delayd Job Schedule Concurrent executions",
|
|
854
|
-
"view": "timeSeries",
|
|
855
|
-
"stacked": false,
|
|
856
|
-
"liveData": true
|
|
857
|
-
}
|
|
858
|
-
},
|
|
859
917
|
{ <% "Scheduled Job Table Write Capacity Units" %>
|
|
860
918
|
"height": 3,
|
|
861
919
|
"width": 9,
|
|
862
|
-
"y": <%= current_y %>,
|
|
863
|
-
"x":
|
|
920
|
+
"y": <%= current_y + 3 %>,
|
|
921
|
+
"x": 0,
|
|
864
922
|
"type": "metric",
|
|
865
923
|
"properties": {
|
|
866
924
|
"metrics": [
|
|
@@ -879,26 +937,9 @@ Resources:
|
|
|
879
937
|
}
|
|
880
938
|
},
|
|
881
939
|
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
<% current_y += 3 %>
|
|
885
|
-
{ <% "Job Activator Init Duration" %>
|
|
886
|
-
"type": "log",
|
|
887
|
-
"x": 0,
|
|
888
|
-
"y": <%= current_y %>,
|
|
889
|
-
"width": 9,
|
|
890
|
-
"height": 3,
|
|
891
|
-
"properties": {
|
|
892
|
-
"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(1h)\n",
|
|
893
|
-
"region": "us-east-1",
|
|
894
|
-
"stacked": false,
|
|
895
|
-
"view": "timeSeries",
|
|
896
|
-
"title": "Handler Init Duration"
|
|
897
|
-
}
|
|
898
|
-
},
|
|
899
940
|
{ <% "Scheduled Job Table Latency" %>
|
|
900
|
-
"height":
|
|
901
|
-
"width":
|
|
941
|
+
"height": 6,
|
|
942
|
+
"width": 10,
|
|
902
943
|
"y": <%= current_y %>,
|
|
903
944
|
"x": 9,
|
|
904
945
|
"type": "metric",
|
|
@@ -909,6 +950,7 @@ Resources:
|
|
|
909
950
|
[ ".", "ThrottledRequests", ".", ".", ".", "PutItem", { "yAxis": "right", "visible": false } ],
|
|
910
951
|
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "DeleteItem" ],
|
|
911
952
|
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "UpdateItem" ],
|
|
953
|
+
[ ".", "SuccessfulRequestLatency", ".", ".", ".", "GetItem" ],
|
|
912
954
|
[ ".", "ThrottledRequests", ".", ".", ".", ".", { "yAxis": "right", "visible": false } ]
|
|
913
955
|
],
|
|
914
956
|
"view": "timeSeries",
|
|
@@ -920,16 +962,19 @@ Resources:
|
|
|
920
962
|
"liveData": true
|
|
921
963
|
}
|
|
922
964
|
},
|
|
965
|
+
|
|
923
966
|
{ <% "Scheduled Job Table Throttled Operations" %>
|
|
924
|
-
"height":
|
|
925
|
-
"width":
|
|
967
|
+
"height": 6,
|
|
968
|
+
"width": 5,
|
|
926
969
|
"y": <%= current_y %>,
|
|
927
|
-
"x":
|
|
970
|
+
"x": 19,
|
|
928
971
|
"type": "metric",
|
|
929
972
|
"properties": {
|
|
930
973
|
"metrics": [
|
|
931
974
|
[ "AWS/DynamoDB", "ThrottledRequests", "TableName", "${self:custom.funktor.JobsTableName}", "Operation", "DeleteItem" ],
|
|
932
|
-
[ "...", "PutItem" ]
|
|
975
|
+
[ "...", "PutItem" ],
|
|
976
|
+
[ "...", "UpdateItem" ],
|
|
977
|
+
[ "...", "GetItem" ]
|
|
933
978
|
],
|
|
934
979
|
"view": "timeSeries",
|
|
935
980
|
"stacked": false,
|
|
@@ -940,9 +985,7 @@ Resources:
|
|
|
940
985
|
"liveData": true
|
|
941
986
|
}
|
|
942
987
|
}
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
988
|
+
<% current_y += 6 %>
|
|
946
989
|
|
|
947
990
|
]
|
|
948
991
|
}
|
data/lib/funktor/version.rb
CHANGED