funktor 0.7.20 → 0.7.23

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,7 +21,7 @@ Resources:
21
21
  },
22
22
  <% current_y += 3 %>
23
23
 
24
- { <% "Primary Workers Overview" %>
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": "p60", "color": "#1f77b4", "stat": "p60" } ]
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": "p60", "color": "#1f77b4" } ]
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": "p60",
141
+ "stat": "p20",
142
142
  "period": 60,
143
143
  "sparkline": true,
144
- "title": "<%= worker_name %> p60"
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": "p70", "color": "#ff7f0e" } ]
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": "p70",
159
+ "stat": "p50",
160
160
  "period": 60,
161
161
  "sparkline": true,
162
- "title": "<%= worker_name %> p70"
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": "p70", "color": "#ff7f0e" } ],
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": "p60",
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": 3,
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": "p60" } ],
403
- [ "...", { "label": "p70", "stat": "p70" } ],
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": "p60",
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
- <% current_y += 3 %>
418
- { <% "Incoming Job Queue (Async & scheduled jobs land here first)" %>
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 (Async & scheduled jobs land here first)",
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": "p60" } ],
468
- [ "...", { "stat": "p70" } ],
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": 6,
482
- "y": <%= current_y %>,
483
- "x": 18,
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": 6,
509
- "y": <%= current_y + 3 %>,
510
- "x": 18,
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
- <% current_y += 6 %>
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(20m)\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" %>
@@ -566,23 +576,25 @@ Resources:
566
576
  "metrics": [
567
577
  [ "AWS/Lambda", "Duration", "FunctionName",
568
578
  "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", "Resource",
569
- "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "label": "p60" } ],
570
- [ "...", { "label": "p70", "stat": "p70" } ],
579
+ "${self:custom.funktor.<%= queue_name.camelize %>QueueHandlerName}", { "label": "p20" } ],
580
+ [ "...", { "label": "p50", "stat": "p50" } ],
571
581
  [ "...", { "label": "p80", "stat": "p80" } ],
572
582
  [ "...", { "label": "p90", "stat": "p90" } ]
573
583
  ],
574
584
  "view": "singleValue",
575
585
  "region": "us-east-1",
576
- "stat": "p60",
586
+ "stat": "p20",
577
587
  "period": 60,
578
588
  "sparkline": true,
579
589
  "title": "Handler Duration"
580
590
  }
581
591
  },
582
- { <% "Active Job Queue" %>
583
- "height": 3,
592
+ <% current_y += 3 %>
593
+
594
+ { <% "Active Job Queue Counts" %>
595
+ "height": 4,
584
596
  "width": 9,
585
- "y": <%= current_y + 3 %>,
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 (Async jobs go here immediately, scheduled jobs land here in the minute before they're scheduled)",
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": "p60" } ],
636
- [ "...", { "stat": "p70" } ],
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": 6,
650
- "y": <%= current_y + 3 %>,
651
- "x": 18,
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": 6,
676
- "y": <%= current_y + 6 %>,
677
- "x": 18,
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
- <% current_y += 9 %>
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(20m)\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 Jobs" %>
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 Jobs\n"
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" %>
@@ -731,38 +757,41 @@ Resources:
731
757
  "type": "metric",
732
758
  "properties": {
733
759
  "metrics": [
734
- [ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", "Resource", "${self:custom.funktor.JobActivatorName}", { "label": "p60" } ],
735
- [ "...", { "label": "p70", "stat": "p70" } ],
760
+ [ "AWS/Lambda", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", "Resource", "${self:custom.funktor.JobActivatorName}", { "label": "p20" } ],
761
+ [ "...", { "label": "p50", "stat": "p50" } ],
736
762
  [ "...", { "label": "p80", "stat": "p80" } ],
737
763
  [ "...", { "label": "p90", "stat": "p90" } ]
738
764
  ],
739
765
  "view": "singleValue",
740
766
  "region": "us-east-1",
741
- "stat": "p60",
767
+ "stat": "p20",
742
768
  "period": 60,
743
769
  "sparkline": true,
744
770
  "title": "Handler Duration"
745
771
  }
746
772
  },
773
+ <% current_y += 3 %>
747
774
 
748
775
 
749
776
 
750
- <% current_y += 3 %>
751
- { <% "Delayed Job SchedulerError count and success rate (%)" %>
777
+
778
+
779
+ { <% "Job Activator Error count and success rate (%)" %>
752
780
  "height": 3,
753
- "width": 6,
754
- "y": <%= current_y %>,
755
- "x": 18,
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": "Delayed Job SchedulerError count and success rate (%)",
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
- { <% "Delayed Job Scheduler Duration" %>
805
+ { <% "Job Activator Concurrent Executions" %>
777
806
  "height": 3,
778
- "width": 9,
779
- "y": <%= current_y %>,
780
- "x": 9,
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", "Duration", "FunctionName", "${self:custom.funktor.JobActivatorName}", { "stat": "p60" } ],
786
- [ "...", { "stat": "p70" } ],
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": "Delayed Job Scheduler Duration",
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": 3,
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(20m)\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": 9,
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": 3,
901
- "width": 9,
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": 3,
925
- "width": 6,
967
+ "height": 6,
968
+ "width": 5,
926
969
  "y": <%= current_y %>,
927
- "x": 18,
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
  }