sidekiq 6.5.1 → 7.0.9
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/Changes.md +142 -12
- data/README.md +40 -32
- data/bin/sidekiq +3 -8
- data/bin/sidekiqload +186 -118
- data/bin/sidekiqmon +3 -0
- data/lib/sidekiq/api.rb +226 -139
- data/lib/sidekiq/capsule.rb +127 -0
- data/lib/sidekiq/cli.rb +55 -61
- data/lib/sidekiq/client.rb +31 -18
- data/lib/sidekiq/component.rb +5 -1
- data/lib/sidekiq/config.rb +270 -0
- data/lib/sidekiq/deploy.rb +62 -0
- data/lib/sidekiq/embedded.rb +61 -0
- data/lib/sidekiq/fetch.rb +11 -14
- data/lib/sidekiq/job.rb +375 -10
- data/lib/sidekiq/job_logger.rb +2 -2
- data/lib/sidekiq/job_retry.rb +62 -41
- data/lib/sidekiq/job_util.rb +48 -14
- data/lib/sidekiq/launcher.rb +71 -65
- data/lib/sidekiq/logger.rb +1 -26
- data/lib/sidekiq/manager.rb +9 -11
- data/lib/sidekiq/metrics/query.rb +153 -0
- data/lib/sidekiq/metrics/shared.rb +95 -0
- data/lib/sidekiq/metrics/tracking.rb +136 -0
- data/lib/sidekiq/middleware/chain.rb +84 -48
- data/lib/sidekiq/middleware/current_attributes.rb +12 -17
- data/lib/sidekiq/monitor.rb +17 -4
- data/lib/sidekiq/paginator.rb +9 -1
- data/lib/sidekiq/processor.rb +27 -27
- data/lib/sidekiq/rails.rb +4 -9
- data/lib/sidekiq/redis_client_adapter.rb +8 -47
- data/lib/sidekiq/redis_connection.rb +11 -113
- data/lib/sidekiq/scheduled.rb +60 -33
- data/lib/sidekiq/testing.rb +5 -33
- data/lib/sidekiq/transaction_aware_client.rb +4 -5
- data/lib/sidekiq/version.rb +2 -1
- data/lib/sidekiq/web/action.rb +3 -3
- data/lib/sidekiq/web/application.rb +40 -9
- data/lib/sidekiq/web/csrf_protection.rb +1 -1
- data/lib/sidekiq/web/helpers.rb +32 -18
- data/lib/sidekiq/web.rb +7 -14
- data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
- data/lib/sidekiq.rb +76 -266
- data/sidekiq.gemspec +21 -10
- data/web/assets/javascripts/application.js +19 -1
- data/web/assets/javascripts/base-charts.js +106 -0
- data/web/assets/javascripts/chart.min.js +13 -0
- data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
- data/web/assets/javascripts/dashboard-charts.js +166 -0
- data/web/assets/javascripts/dashboard.js +3 -240
- data/web/assets/javascripts/metrics.js +264 -0
- data/web/assets/stylesheets/application-dark.css +4 -0
- data/web/assets/stylesheets/application-rtl.css +2 -91
- data/web/assets/stylesheets/application.css +65 -297
- data/web/locales/ar.yml +70 -70
- data/web/locales/cs.yml +62 -62
- data/web/locales/da.yml +60 -53
- data/web/locales/de.yml +65 -65
- data/web/locales/el.yml +43 -24
- data/web/locales/en.yml +82 -69
- data/web/locales/es.yml +68 -68
- data/web/locales/fa.yml +65 -65
- data/web/locales/fr.yml +67 -67
- data/web/locales/gd.yml +99 -0
- data/web/locales/he.yml +65 -64
- data/web/locales/hi.yml +59 -59
- data/web/locales/it.yml +53 -53
- data/web/locales/ja.yml +73 -68
- data/web/locales/ko.yml +52 -52
- data/web/locales/lt.yml +66 -66
- data/web/locales/nb.yml +61 -61
- data/web/locales/nl.yml +52 -52
- data/web/locales/pl.yml +45 -45
- data/web/locales/pt-br.yml +59 -69
- data/web/locales/pt.yml +51 -51
- data/web/locales/ru.yml +67 -66
- data/web/locales/sv.yml +53 -53
- data/web/locales/ta.yml +60 -60
- data/web/locales/uk.yml +62 -61
- data/web/locales/ur.yml +64 -64
- data/web/locales/vi.yml +67 -67
- data/web/locales/zh-cn.yml +43 -16
- data/web/locales/zh-tw.yml +42 -8
- data/web/views/_footer.erb +5 -2
- data/web/views/_job_info.erb +18 -2
- data/web/views/_metrics_period_select.erb +12 -0
- data/web/views/_nav.erb +1 -1
- data/web/views/_paging.erb +2 -0
- data/web/views/_poll_link.erb +1 -1
- data/web/views/busy.erb +43 -27
- data/web/views/dashboard.erb +36 -4
- data/web/views/metrics.erb +82 -0
- data/web/views/metrics_for_job.erb +68 -0
- data/web/views/morgue.erb +5 -9
- data/web/views/queue.erb +15 -15
- data/web/views/queues.erb +3 -1
- data/web/views/retries.erb +5 -9
- data/web/views/scheduled.erb +12 -13
- metadata +60 -27
- data/lib/sidekiq/.DS_Store +0 -0
- data/lib/sidekiq/delay.rb +0 -43
- data/lib/sidekiq/extensions/action_mailer.rb +0 -48
- data/lib/sidekiq/extensions/active_record.rb +0 -43
- data/lib/sidekiq/extensions/class_methods.rb +0 -43
- data/lib/sidekiq/extensions/generic_proxy.rb +0 -33
- data/lib/sidekiq/worker.rb +0 -367
- /data/{LICENSE → LICENSE.txt} +0 -0
|
@@ -67,10 +67,17 @@ body {
|
|
|
67
67
|
padding: 0 20px;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
h3 {
|
|
70
|
+
h1, h2, h3 {
|
|
71
|
+
font-size: 24px;
|
|
71
72
|
line-height: 45px;
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
.header-container, .header-container .page-title-container {
|
|
76
|
+
display: flex;
|
|
77
|
+
justify-content: space-between;
|
|
78
|
+
align-items: center;
|
|
79
|
+
}
|
|
80
|
+
|
|
74
81
|
.centered {
|
|
75
82
|
text-align: center;
|
|
76
83
|
}
|
|
@@ -410,51 +417,27 @@ div.interval-slider input {
|
|
|
410
417
|
background: currentcolor;
|
|
411
418
|
}
|
|
412
419
|
|
|
413
|
-
#realtime-legend
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
#realtime-legend .timestamp,
|
|
421
|
-
#history-legend .timestamp {
|
|
422
|
-
display: inline-block;
|
|
423
|
-
width: 220px;
|
|
424
|
-
text-align: right;
|
|
420
|
+
#realtime-legend {
|
|
421
|
+
margin-top: -20px;
|
|
422
|
+
padding-left: 30px;
|
|
423
|
+
display: flex;
|
|
424
|
+
justify-content: end;
|
|
425
|
+
align-items: center;
|
|
425
426
|
}
|
|
426
|
-
#realtime-legend
|
|
427
|
-
|
|
428
|
-
display: inline-block;
|
|
429
|
-
margin: 0 0 0 20px;
|
|
427
|
+
#realtime-legend > * {
|
|
428
|
+
min-width: 14rem;
|
|
430
429
|
}
|
|
431
|
-
#realtime-legend .swatch
|
|
432
|
-
#history-legend .swatch {
|
|
430
|
+
#realtime-legend .swatch {
|
|
433
431
|
display: inline-block;
|
|
434
432
|
width: 10px;
|
|
435
433
|
height: 10px;
|
|
436
|
-
margin: 0
|
|
434
|
+
margin: 0 5px;
|
|
437
435
|
}
|
|
438
|
-
#realtime-legend .
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
@media (max-width: 790px) {
|
|
444
|
-
#realtime-legend,
|
|
445
|
-
#history-legend {
|
|
446
|
-
float: none;
|
|
447
|
-
width: 100%;
|
|
448
|
-
margin-bottom: 20px;
|
|
449
|
-
}
|
|
436
|
+
#realtime-legend .time {
|
|
437
|
+
min-width: auto;
|
|
438
|
+
text-align: right;
|
|
450
439
|
}
|
|
451
440
|
|
|
452
|
-
@media (max-width: 500px) {
|
|
453
|
-
#realtime-legend,
|
|
454
|
-
#history-legend {
|
|
455
|
-
text-align: center;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
441
|
/* Beacon
|
|
459
442
|
********************************** */
|
|
460
443
|
|
|
@@ -614,247 +597,6 @@ div.interval-slider input {
|
|
|
614
597
|
}
|
|
615
598
|
}
|
|
616
599
|
|
|
617
|
-
.rickshaw_graph .detail {
|
|
618
|
-
pointer-events: none;
|
|
619
|
-
position: absolute;
|
|
620
|
-
top: 0;
|
|
621
|
-
z-index: 2;
|
|
622
|
-
background: rgba(0, 0, 0, .9);
|
|
623
|
-
bottom: 0;
|
|
624
|
-
width: 1px;
|
|
625
|
-
transition: opacity .25s linear;
|
|
626
|
-
}
|
|
627
|
-
.rickshaw_graph .detail.inactive {
|
|
628
|
-
opacity: 0
|
|
629
|
-
}
|
|
630
|
-
.rickshaw_graph .detail .item.active {
|
|
631
|
-
opacity: 1
|
|
632
|
-
}
|
|
633
|
-
.rickshaw_graph .detail .x_label {
|
|
634
|
-
font-family: Arial, sans-serif;
|
|
635
|
-
border-radius: 3px;
|
|
636
|
-
padding: 6px;
|
|
637
|
-
opacity: .7;
|
|
638
|
-
border: 1px solid #e0e0e0;
|
|
639
|
-
font-size: 12px;
|
|
640
|
-
position: absolute;
|
|
641
|
-
background: #fff;
|
|
642
|
-
white-space: nowrap
|
|
643
|
-
}
|
|
644
|
-
.rickshaw_graph .detail .x_label.left {
|
|
645
|
-
left: 0
|
|
646
|
-
}
|
|
647
|
-
.rickshaw_graph .detail .x_label.right {
|
|
648
|
-
right: 0
|
|
649
|
-
}
|
|
650
|
-
.rickshaw_graph .detail .item {
|
|
651
|
-
position: absolute;
|
|
652
|
-
z-index: 2;
|
|
653
|
-
border-radius: 3px;
|
|
654
|
-
padding: .25em;
|
|
655
|
-
font-size: 12px;
|
|
656
|
-
font-family: Arial, sans-serif;
|
|
657
|
-
opacity: 0;
|
|
658
|
-
background: rgba(0, 0, 0, .4);
|
|
659
|
-
color: #fff;
|
|
660
|
-
border: 1px solid rgba(0, 0, 0, .4);
|
|
661
|
-
margin-left: 1em;
|
|
662
|
-
margin-right: 1em;
|
|
663
|
-
margin-top: -1em;
|
|
664
|
-
white-space: nowrap
|
|
665
|
-
}
|
|
666
|
-
.rickshaw_graph .detail .item.left {
|
|
667
|
-
left: 0
|
|
668
|
-
}
|
|
669
|
-
.rickshaw_graph .detail .item.right {
|
|
670
|
-
right: 0
|
|
671
|
-
}
|
|
672
|
-
.rickshaw_graph .detail .item.active {
|
|
673
|
-
opacity: 1;
|
|
674
|
-
background: rgba(0, 0, 0, .8)
|
|
675
|
-
}
|
|
676
|
-
.rickshaw_graph .detail .item:after {
|
|
677
|
-
position: absolute;
|
|
678
|
-
display: block;
|
|
679
|
-
width: 0;
|
|
680
|
-
height: 0;
|
|
681
|
-
content: "";
|
|
682
|
-
border: 5px solid transparent
|
|
683
|
-
}
|
|
684
|
-
.rickshaw_graph .detail .item.left:after {
|
|
685
|
-
top: 1em;
|
|
686
|
-
left: -5px;
|
|
687
|
-
margin-top: -5px;
|
|
688
|
-
border-right-color: rgba(0, 0, 0, .8);
|
|
689
|
-
border-left-width: 0
|
|
690
|
-
}
|
|
691
|
-
.rickshaw_graph .detail .item.right:after {
|
|
692
|
-
top: 1em;
|
|
693
|
-
right: -5px;
|
|
694
|
-
margin-top: -5px;
|
|
695
|
-
border-left-color: rgba(0, 0, 0, .8);
|
|
696
|
-
border-right-width: 0
|
|
697
|
-
}
|
|
698
|
-
.rickshaw_graph .detail .dot {
|
|
699
|
-
width: 4px;
|
|
700
|
-
height: 4px;
|
|
701
|
-
margin-left: -3px;
|
|
702
|
-
margin-top: -3.5px;
|
|
703
|
-
border-radius: 5px;
|
|
704
|
-
position: absolute;
|
|
705
|
-
box-shadow: 0 0 2px rgba(0, 0, 0, .6);
|
|
706
|
-
box-sizing: content-box;
|
|
707
|
-
background: #fff;
|
|
708
|
-
border-width: 2px;
|
|
709
|
-
border-style: solid;
|
|
710
|
-
display: none;
|
|
711
|
-
background-clip: padding-box
|
|
712
|
-
}
|
|
713
|
-
.rickshaw_graph .detail .dot.active {
|
|
714
|
-
display: block
|
|
715
|
-
}
|
|
716
|
-
.rickshaw_graph {
|
|
717
|
-
position: relative
|
|
718
|
-
}
|
|
719
|
-
.rickshaw_graph svg {
|
|
720
|
-
display: block;
|
|
721
|
-
overflow: hidden
|
|
722
|
-
}
|
|
723
|
-
.rickshaw_graph .x_tick {
|
|
724
|
-
position: absolute;
|
|
725
|
-
top: 0;
|
|
726
|
-
bottom: 0;
|
|
727
|
-
width: 0;
|
|
728
|
-
border-left: 1px dotted rgba(0, 0, 0, .5);
|
|
729
|
-
pointer-events: none
|
|
730
|
-
}
|
|
731
|
-
.rickshaw_graph .x_tick .title {
|
|
732
|
-
position: absolute;
|
|
733
|
-
font-family: Arial, sans-serif;
|
|
734
|
-
white-space: nowrap;
|
|
735
|
-
margin-left: 3px;
|
|
736
|
-
bottom: 1px
|
|
737
|
-
}
|
|
738
|
-
.rickshaw_graph .y_axis,
|
|
739
|
-
.rickshaw_graph .x_axis_d3 {
|
|
740
|
-
fill: none
|
|
741
|
-
}
|
|
742
|
-
.rickshaw_graph .y_ticks .tick line,
|
|
743
|
-
.rickshaw_graph .x_ticks_d3 .tick {
|
|
744
|
-
stroke: rgba(0, 0, 0, .16);
|
|
745
|
-
stroke-width: 2px;
|
|
746
|
-
shape-rendering: crisp-edges;
|
|
747
|
-
pointer-events: none
|
|
748
|
-
}
|
|
749
|
-
.rickshaw_graph .y_grid .tick,
|
|
750
|
-
.rickshaw_graph .x_grid_d3 .tick {
|
|
751
|
-
z-index: -1;
|
|
752
|
-
stroke: rgba(0, 0, 0, .2);
|
|
753
|
-
stroke-width: 1px;
|
|
754
|
-
stroke-dasharray: 1 1
|
|
755
|
-
}
|
|
756
|
-
.rickshaw_graph .y_grid .tick[data-y-value="0"] {
|
|
757
|
-
stroke-dasharray: 1 0
|
|
758
|
-
}
|
|
759
|
-
.rickshaw_graph .y_grid path,
|
|
760
|
-
.rickshaw_graph .x_grid_d3 path {
|
|
761
|
-
fill: none;
|
|
762
|
-
stroke: none
|
|
763
|
-
}
|
|
764
|
-
.rickshaw_graph .y_ticks path,
|
|
765
|
-
.rickshaw_graph .x_ticks_d3 path {
|
|
766
|
-
fill: none;
|
|
767
|
-
stroke: gray
|
|
768
|
-
}
|
|
769
|
-
.rickshaw_graph .y_ticks text,
|
|
770
|
-
.rickshaw_graph .x_ticks_d3 text {
|
|
771
|
-
opacity: .7;
|
|
772
|
-
font-size: 12px;
|
|
773
|
-
pointer-events: none
|
|
774
|
-
}
|
|
775
|
-
.rickshaw_graph .x_tick.glow .title,
|
|
776
|
-
.rickshaw_graph .y_ticks.glow text {
|
|
777
|
-
fill: #000;
|
|
778
|
-
color: #000;
|
|
779
|
-
text-shadow: -1px 1px 0 rgba(255, 255, 255, .1), 1px -1px 0 rgba(255, 255, 255, .1), 1px 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1), 0 -1px 0 rgba(255, 255, 255, .1), 1px 0 0 rgba(255, 255, 255, .1), -1px 0 0 rgba(255, 255, 255, .1), -1px -1px 0 rgba(255, 255, 255, .1)
|
|
780
|
-
}
|
|
781
|
-
.rickshaw_graph .x_tick.inverse .title,
|
|
782
|
-
.rickshaw_graph .y_ticks.inverse text {
|
|
783
|
-
fill: #fff;
|
|
784
|
-
color: #fff;
|
|
785
|
-
text-shadow: -1px 1px 0 rgba(0, 0, 0, .8), 1px -1px 0 rgba(0, 0, 0, .8), 1px 1px 0 rgba(0, 0, 0, .8), 0 1px 0 rgba(0, 0, 0, .8), 0 -1px 0 rgba(0, 0, 0, .8), 1px 0 0 rgba(0, 0, 0, .8), -1px 0 0 rgba(0, 0, 0, .8), -1px -1px 0 rgba(0, 0, 0, .8)
|
|
786
|
-
}
|
|
787
|
-
.rickshaw_legend {
|
|
788
|
-
font-family: Arial;
|
|
789
|
-
color: #fff;
|
|
790
|
-
background: #404040;
|
|
791
|
-
display: inline-block;
|
|
792
|
-
padding: 12px 5px;
|
|
793
|
-
border-radius: 2px;
|
|
794
|
-
position: relative
|
|
795
|
-
}
|
|
796
|
-
.rickshaw_legend:hover {
|
|
797
|
-
z-index: 10
|
|
798
|
-
}
|
|
799
|
-
.rickshaw_legend .swatch {
|
|
800
|
-
width: 10px;
|
|
801
|
-
height: 10px;
|
|
802
|
-
border: 1px solid rgba(0, 0, 0, .2)
|
|
803
|
-
}
|
|
804
|
-
.rickshaw_legend .line {
|
|
805
|
-
clear: both;
|
|
806
|
-
line-height: 140%;
|
|
807
|
-
padding-right: 15px
|
|
808
|
-
}
|
|
809
|
-
.rickshaw_legend .line .swatch {
|
|
810
|
-
display: inline-block;
|
|
811
|
-
margin-right: 3px;
|
|
812
|
-
border-radius: 2px
|
|
813
|
-
}
|
|
814
|
-
.rickshaw_legend .label {
|
|
815
|
-
margin: 0;
|
|
816
|
-
white-space: nowrap;
|
|
817
|
-
display: inline;
|
|
818
|
-
font-size: inherit;
|
|
819
|
-
background-color: transparent;
|
|
820
|
-
color: inherit;
|
|
821
|
-
font-weight: 400;
|
|
822
|
-
line-height: normal;
|
|
823
|
-
padding: 0;
|
|
824
|
-
text-shadow: none
|
|
825
|
-
}
|
|
826
|
-
.rickshaw_legend .action:hover {
|
|
827
|
-
opacity: .6
|
|
828
|
-
}
|
|
829
|
-
.rickshaw_legend .action {
|
|
830
|
-
margin-right: .2em;
|
|
831
|
-
opacity: .5;
|
|
832
|
-
cursor: pointer;
|
|
833
|
-
}
|
|
834
|
-
.rickshaw_legend .line.disabled {
|
|
835
|
-
opacity: .4
|
|
836
|
-
}
|
|
837
|
-
.rickshaw_legend ul {
|
|
838
|
-
list-style-type: none;
|
|
839
|
-
margin: 0;
|
|
840
|
-
padding: 0;
|
|
841
|
-
margin: 2px;
|
|
842
|
-
cursor: pointer
|
|
843
|
-
}
|
|
844
|
-
.rickshaw_legend li {
|
|
845
|
-
padding: 0 0 0 2px;
|
|
846
|
-
min-width: 80px;
|
|
847
|
-
white-space: nowrap
|
|
848
|
-
}
|
|
849
|
-
.rickshaw_legend li:hover {
|
|
850
|
-
background: rgba(255, 255, 255, .08);
|
|
851
|
-
border-radius: 3px
|
|
852
|
-
}
|
|
853
|
-
.rickshaw_legend li:active {
|
|
854
|
-
background: rgba(255, 255, 255, .2);
|
|
855
|
-
border-radius: 3px
|
|
856
|
-
}
|
|
857
|
-
|
|
858
600
|
.code-wrap {
|
|
859
601
|
white-space: normal;
|
|
860
602
|
}
|
|
@@ -882,37 +624,25 @@ div.interval-slider input {
|
|
|
882
624
|
}
|
|
883
625
|
}
|
|
884
626
|
|
|
885
|
-
.redis-url
|
|
627
|
+
.redis-url {
|
|
886
628
|
overflow: hidden;
|
|
887
629
|
white-space: nowrap;
|
|
888
630
|
}
|
|
889
631
|
|
|
890
632
|
@media (min-width: 768px) {
|
|
891
633
|
.redis-url {
|
|
892
|
-
max-width:
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
.redis-namespace {
|
|
896
|
-
max-width: 150px;
|
|
634
|
+
max-width: 250px;
|
|
897
635
|
}
|
|
898
636
|
}
|
|
899
637
|
|
|
900
638
|
@media (min-width: 992px) {
|
|
901
639
|
.redis-url {
|
|
902
|
-
max-width:
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
.redis-namespace {
|
|
906
|
-
max-width: 300px;
|
|
640
|
+
max-width: 490px;
|
|
907
641
|
}
|
|
908
642
|
}
|
|
909
643
|
@media (min-width: 1200px) {
|
|
910
644
|
.redis-url {
|
|
911
|
-
max-width:
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
.redis-namespace {
|
|
915
|
-
max-width: 350px;
|
|
645
|
+
max-width: 600px;
|
|
916
646
|
}
|
|
917
647
|
}
|
|
918
648
|
|
|
@@ -946,11 +676,49 @@ div.interval-slider input {
|
|
|
946
676
|
}
|
|
947
677
|
|
|
948
678
|
.info-circle {
|
|
949
|
-
color: #
|
|
950
|
-
background-color: #
|
|
679
|
+
color: #333;
|
|
680
|
+
background-color: #ccc;
|
|
951
681
|
border-radius: 50%;
|
|
952
682
|
text-align: center;
|
|
953
683
|
vertical-align: middle;
|
|
954
684
|
padding: 3px 7px;
|
|
955
685
|
margin-left: 5px;
|
|
956
686
|
}
|
|
687
|
+
|
|
688
|
+
.metrics-swatch-wrapper {
|
|
689
|
+
display: flex;
|
|
690
|
+
align-items: center;
|
|
691
|
+
gap: 6px;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.metrics-swatch[type=checkbox] {
|
|
695
|
+
display: inline-block;
|
|
696
|
+
width: 16px;
|
|
697
|
+
height: 16px;
|
|
698
|
+
margin: 0;
|
|
699
|
+
border-radius: 2px;
|
|
700
|
+
appearance: none;
|
|
701
|
+
-webkit-appearance: none;
|
|
702
|
+
-moz-appearance: none;
|
|
703
|
+
border: 1px solid #bbb;
|
|
704
|
+
color: white;
|
|
705
|
+
background-color: currentColor;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/* We need to add the checkmark since we've taken over the appearance */
|
|
709
|
+
.metrics-swatch[type=checkbox]:checked {
|
|
710
|
+
border-color: currentColor;
|
|
711
|
+
background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
|
|
712
|
+
background-size: 100% 100%;
|
|
713
|
+
background-position: center;
|
|
714
|
+
background-repeat: no-repeat;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.metrics-swatch[type=checkbox]:focus {
|
|
718
|
+
outline: 1px solid #888;
|
|
719
|
+
outline-offset: 2px;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
canvas {
|
|
723
|
+
margin: 20px 0 30px;
|
|
724
|
+
}
|
data/web/locales/ar.yml
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
1
|
# elements like %{queue} are variables and should not be translated
|
|
2
2
|
ar:
|
|
3
|
-
|
|
4
|
-
Dashboard: لوحة التحكم
|
|
5
|
-
Status: حالة
|
|
6
|
-
Time: وقت
|
|
7
|
-
Namespace: مساحة الاسم
|
|
8
|
-
Realtime: الزمن الفعلي
|
|
9
|
-
History: تاريخ
|
|
10
|
-
Busy: مشغول
|
|
11
|
-
Utilization: الاستخدام
|
|
12
|
-
Processed: تمت المعالجة
|
|
13
|
-
Failed: فشل
|
|
14
|
-
Scheduled: مجدول
|
|
15
|
-
Retries: إعادة محاولة
|
|
16
|
-
Enqueued: في الرتل
|
|
17
|
-
Worker: عامل
|
|
18
|
-
LivePoll: استعلام مباشر
|
|
19
|
-
StopPolling: إيقاف الاستعلامات
|
|
20
|
-
Queue: رتل
|
|
21
|
-
Class: نوع
|
|
22
|
-
Job: وظيفة
|
|
23
|
-
Arguments: مدخلات
|
|
24
|
-
Extras: إضافات
|
|
25
|
-
Started: بدأت
|
|
26
|
-
ShowAll: عرض الكل
|
|
27
|
-
CurrentMessagesInQueue: الرسائل الحالية في الرتل <span class='title'>%{queue}</span>
|
|
3
|
+
Actions: إجراءات
|
|
28
4
|
AddToQueue: إضافة إلى الرتل
|
|
5
|
+
AreYouSure: هل انت متأكد؟
|
|
29
6
|
AreYouSureDeleteJob: هل أنت متأكد من حذف الوظيفة؟
|
|
30
7
|
AreYouSureDeleteQueue: هل أنت متأكد من حذف الرتل %{queue}؟
|
|
8
|
+
Arguments: مدخلات
|
|
9
|
+
BackToApp: العودة إلى التطبيق
|
|
10
|
+
Busy: مشغول
|
|
11
|
+
Class: نوع
|
|
12
|
+
Connections: اتصالات
|
|
13
|
+
CreatedAt: أنشئت في
|
|
14
|
+
CurrentMessagesInQueue: الرسائل الحالية في الرتل <span class='title'>%{queue}</span>
|
|
15
|
+
Dashboard: لوحة التحكم
|
|
16
|
+
Dead: ميتة
|
|
17
|
+
DeadJobs: وظائف ميتة
|
|
31
18
|
Delete: حذف
|
|
32
|
-
Queues: أرتال
|
|
33
|
-
Size: حجم
|
|
34
|
-
Actions: إجراءات
|
|
35
|
-
NextRetry: إعادة المحاولة القادمة
|
|
36
|
-
RetryCount: عدد مرات إعادة المحاولة
|
|
37
|
-
RetryNow: إعادة المحاولة الآن
|
|
38
|
-
Kill: إبطال
|
|
39
|
-
LastRetry: إعادة المحاولة الأخيرة
|
|
40
|
-
OriginallyFailed: فشل أصلا
|
|
41
|
-
AreYouSure: هل انت متأكد؟
|
|
42
19
|
DeleteAll: حذف الكل
|
|
43
|
-
|
|
44
|
-
KillAll: إبطال الكل
|
|
45
|
-
NoRetriesFound: لاتوجد أي إعادة محاولة
|
|
20
|
+
Enqueued: في الرتل
|
|
46
21
|
Error: خطأ
|
|
22
|
+
ErrorBacktrace: تتبع الخطأ
|
|
47
23
|
ErrorClass: نوع الخطأ
|
|
48
24
|
ErrorMessage: رسالة الخطأ
|
|
49
|
-
|
|
25
|
+
Extras: إضافات
|
|
26
|
+
Failed: فشل
|
|
27
|
+
Failures: فشل
|
|
50
28
|
GoBack: إلى الخلف
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
29
|
+
History: تاريخ
|
|
30
|
+
Job: وظيفة
|
|
31
|
+
Jobs: وظائف
|
|
32
|
+
Kill: إبطال
|
|
33
|
+
KillAll: إبطال الكل
|
|
34
|
+
LastRetry: إعادة المحاولة الأخيرة
|
|
35
|
+
Latency: زمن الانتظار
|
|
36
|
+
LivePoll: استعلام مباشر
|
|
58
37
|
MemoryUsage: استخدام الذاكرة
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
OneMonth: شهر
|
|
63
|
-
ThreeMonths: ثلاثة أشهر
|
|
64
|
-
SixMonths: ستة أشهر
|
|
65
|
-
Failures: فشل
|
|
66
|
-
DeadJobs: وظائف ميتة
|
|
38
|
+
Name: الاسم
|
|
39
|
+
Namespace: مساحة الاسم
|
|
40
|
+
NextRetry: إعادة المحاولة القادمة
|
|
67
41
|
NoDeadJobsFound: لاتوجد وظائف ميتة
|
|
68
|
-
|
|
42
|
+
NoRetriesFound: لاتوجد أي إعادة محاولة
|
|
43
|
+
NoScheduledFound: لايوجد وظائف مجدولة
|
|
44
|
+
NotYetEnqueued: لم تدخل الرتل بعد
|
|
45
|
+
OneMonth: شهر
|
|
46
|
+
OneWeek: أسبوع
|
|
47
|
+
OriginallyFailed: فشل أصلا
|
|
48
|
+
Pause: إيقاف مؤقت
|
|
49
|
+
Paused: موقفة مؤقتاً
|
|
50
|
+
PeakMemoryUsage: ذروة استخدام الذاكرة
|
|
51
|
+
Plugins: الإضافات
|
|
52
|
+
PollingInterval: الفاصل الزمني بين الاستعلامات
|
|
69
53
|
Process: عملية
|
|
54
|
+
Processed: تمت المعالجة
|
|
70
55
|
Processes: عمليات
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Threads: نياسب
|
|
74
|
-
Jobs: وظائف
|
|
75
|
-
Paused: موقفة مؤقتاً
|
|
76
|
-
Stop: إيقاف
|
|
56
|
+
Queue: رتل
|
|
57
|
+
Queues: أرتال
|
|
77
58
|
Quiet: هدوء
|
|
78
|
-
StopAll: إيقاف الكل
|
|
79
59
|
QuietAll: هدوء الكل
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
60
|
+
Realtime: الزمن الفعلي
|
|
61
|
+
Retries: إعادة محاولة
|
|
62
|
+
RetryAll: إعادة المحاولة للكل
|
|
63
|
+
RetryCount: عدد مرات إعادة المحاولة
|
|
64
|
+
RetryNow: إعادة المحاولة الآن
|
|
65
|
+
Scheduled: مجدول
|
|
66
|
+
ScheduledJobs: وظائف مجدولة
|
|
67
|
+
ShowAll: عرض الكل
|
|
68
|
+
SixMonths: ستة أشهر
|
|
69
|
+
Size: حجم
|
|
70
|
+
Started: بدأت
|
|
71
|
+
Status: حالة
|
|
72
|
+
Stop: إيقاف
|
|
73
|
+
StopAll: إيقاف الكل
|
|
74
|
+
StopPolling: إيقاف الاستعلامات
|
|
75
|
+
TextDirection: 'rtl'
|
|
76
|
+
Thread: نيسب
|
|
77
|
+
Threads: نياسب
|
|
78
|
+
ThreeMonths: ثلاثة أشهر
|
|
79
|
+
Time: وقت
|
|
80
|
+
Unpause: متابعة
|
|
81
|
+
Uptime: زمن العمل
|
|
82
|
+
Utilization: الاستخدام
|
|
83
|
+
Version: إصدار
|
|
84
|
+
When: متى
|
|
85
|
+
Worker: عامل
|
|
86
|
+
active: نشيط
|
|
87
|
+
idle: خامل
|