patient_http-sidekiq 1.2.0 → 1.4.0

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/ARCHITECTURE.md +31 -10
  3. data/CHANGELOG.md +32 -0
  4. data/README.md +126 -2
  5. data/VERSION +1 -1
  6. data/lib/patient_http/sidekiq/configuration.rb +258 -1
  7. data/lib/patient_http/sidekiq/direct_task_handler.rb +46 -0
  8. data/lib/patient_http/sidekiq/processor_observer.rb +162 -21
  9. data/lib/patient_http/sidekiq/redis_pool.rb +88 -0
  10. data/lib/patient_http/sidekiq/request_executor.rb +40 -10
  11. data/lib/patient_http/sidekiq/request_worker.rb +5 -2
  12. data/lib/patient_http/sidekiq/stats.rb +230 -33
  13. data/lib/patient_http/sidekiq/task_handler.rb +9 -3
  14. data/lib/patient_http/sidekiq/task_monitor.rb +410 -121
  15. data/lib/patient_http/sidekiq/task_monitor_thread.rb +41 -7
  16. data/lib/patient_http/sidekiq/web_ui/assets/patient-http/css/patient_http.css +29 -71
  17. data/lib/patient_http/sidekiq/web_ui/locales/ar.yml +10 -5
  18. data/lib/patient_http/sidekiq/web_ui/locales/cs.yml +10 -5
  19. data/lib/patient_http/sidekiq/web_ui/locales/da.yml +10 -5
  20. data/lib/patient_http/sidekiq/web_ui/locales/de.yml +10 -5
  21. data/lib/patient_http/sidekiq/web_ui/locales/el.yml +10 -5
  22. data/lib/patient_http/sidekiq/web_ui/locales/en.yml +10 -5
  23. data/lib/patient_http/sidekiq/web_ui/locales/es.yml +10 -5
  24. data/lib/patient_http/sidekiq/web_ui/locales/fa.yml +10 -5
  25. data/lib/patient_http/sidekiq/web_ui/locales/fr.yml +10 -5
  26. data/lib/patient_http/sidekiq/web_ui/locales/gd.yml +10 -5
  27. data/lib/patient_http/sidekiq/web_ui/locales/he.yml +10 -5
  28. data/lib/patient_http/sidekiq/web_ui/locales/hi.yml +10 -5
  29. data/lib/patient_http/sidekiq/web_ui/locales/it.yml +10 -5
  30. data/lib/patient_http/sidekiq/web_ui/locales/ja.yml +10 -5
  31. data/lib/patient_http/sidekiq/web_ui/locales/ko.yml +10 -5
  32. data/lib/patient_http/sidekiq/web_ui/locales/lt.yml +10 -5
  33. data/lib/patient_http/sidekiq/web_ui/locales/nb.yml +10 -5
  34. data/lib/patient_http/sidekiq/web_ui/locales/nl.yml +10 -5
  35. data/lib/patient_http/sidekiq/web_ui/locales/pl.yml +10 -5
  36. data/lib/patient_http/sidekiq/web_ui/locales/pt-BR.yml +10 -5
  37. data/lib/patient_http/sidekiq/web_ui/locales/pt.yml +10 -5
  38. data/lib/patient_http/sidekiq/web_ui/locales/ru.yml +10 -5
  39. data/lib/patient_http/sidekiq/web_ui/locales/sv.yml +10 -5
  40. data/lib/patient_http/sidekiq/web_ui/locales/ta.yml +10 -5
  41. data/lib/patient_http/sidekiq/web_ui/locales/tr.yml +10 -5
  42. data/lib/patient_http/sidekiq/web_ui/locales/uk.yml +10 -5
  43. data/lib/patient_http/sidekiq/web_ui/locales/ur.yml +10 -5
  44. data/lib/patient_http/sidekiq/web_ui/locales/vi.yml +10 -5
  45. data/lib/patient_http/sidekiq/web_ui/locales/zh-CN.yml +10 -5
  46. data/lib/patient_http/sidekiq/web_ui/locales/zh-TW.yml +10 -5
  47. data/lib/patient_http/sidekiq/web_ui/views/patient_http.html.erb +99 -44
  48. data/lib/patient_http/sidekiq/web_ui.rb +53 -1
  49. data/lib/patient_http/sidekiq.rb +303 -31
  50. data/patient_http-sidekiq.gemspec +1 -1
  51. metadata +6 -4
@@ -20,12 +20,15 @@ module PatientHttp
20
20
  #
21
21
  # @param config [Configuration] the configuration object
22
22
  # @param task_monitor [TaskMonitor] the inflight request registry
23
- # @param inflight_ids_callback [Proc] callback to get current inflight request IDs
23
+ # @param tracked_ids_callback [Proc] callback to get the IDs of all requests the
24
+ # processors are tracking (queued, pending, and in-flight)
25
+ # @param stats [Stats, nil] stats aggregator to flush on the monitor cadence
24
26
  # @return [void]
25
- def initialize(config, task_monitor, inflight_ids_callback)
27
+ def initialize(config, task_monitor, tracked_ids_callback, stats: nil)
26
28
  @config = config
27
29
  @task_monitor = task_monitor
28
- @inflight_ids_callback = inflight_ids_callback
30
+ @tracked_ids_callback = tracked_ids_callback
31
+ @stats = stats
29
32
  @thread = nil
30
33
  @running = Concurrent::AtomicBoolean.new(false)
31
34
  @stop_signal = Concurrent::Event.new
@@ -77,6 +80,11 @@ module PatientHttp
77
80
  def run
78
81
  @config.logger&.info("[PatientHttp::Sidekiq] Monitor thread started")
79
82
 
83
+ # Route Sidekiq client pushes made from this thread (orphan
84
+ # re-enqueues) through the gem's dedicated Redis pool.
85
+ gem_pool = PatientHttp::Sidekiq.redis_pool
86
+ Thread.current[:sidekiq_redis_pool] = gem_pool.pool if gem_pool
87
+
80
88
  last_heartbeat_update = monotonic_time - @config.heartbeat_interval
81
89
  last_gc_attempt = monotonic_time - @config.heartbeat_interval
82
90
 
@@ -85,9 +93,13 @@ module PatientHttp
85
93
 
86
94
  current_time = monotonic_time
87
95
 
96
+ # Publish this process's capacity on every pass. It is a single
97
+ # round trip, and the Web UI reports the inflight counts it carries,
98
+ # which would otherwise be a full heartbeat interval old.
99
+ ping_process
100
+
88
101
  # Update heartbeats for all inflight requests
89
102
  if current_time - last_heartbeat_update >= @config.heartbeat_interval
90
- @task_monitor.ping_process
91
103
  update_heartbeats
92
104
  last_heartbeat_update = current_time
93
105
  end
@@ -98,6 +110,8 @@ module PatientHttp
98
110
  last_gc_attempt = current_time
99
111
  end
100
112
 
113
+ flush_stats
114
+
101
115
  # Sleep with interruptible wait - returns true if interrupted
102
116
  wait_time = @config.heartbeat_interval / 2.0
103
117
  wait_time = MAX_MONITOR_SLEEP if wait_time > MAX_MONITOR_SLEEP
@@ -107,16 +121,36 @@ module PatientHttp
107
121
  @config.logger&.info("[PatientHttp::Sidekiq] Monitor thread stopped")
108
122
  end
109
123
 
110
- # Update heartbeats for all inflight requests.
124
+ # Register this process and publish its capacity.
125
+ #
126
+ # @return [void]
127
+ def ping_process
128
+ @task_monitor.ping_process
129
+ rescue => e
130
+ @config.logger&.error("[PatientHttp::Sidekiq] Failed to register the process: #{e.class} - #{e.message}")
131
+ raise if PatientHttp.testing?
132
+ end
133
+
134
+ # Flush locally aggregated stats when their interval has elapsed.
135
+ #
136
+ # @return [void]
137
+ def flush_stats
138
+ @stats&.flush_if_due
139
+ rescue => e
140
+ @config.logger&.error("[PatientHttp::Sidekiq] Failed to flush stats: #{e.class} - #{e.message}")
141
+ raise if PatientHttp.testing?
142
+ end
143
+
144
+ # Update heartbeats for all tracked requests.
111
145
  #
112
146
  # @return [void]
113
147
  def update_heartbeats
114
- request_ids = @inflight_ids_callback.call
148
+ request_ids = @tracked_ids_callback.call
115
149
  return if request_ids.empty?
116
150
 
117
151
  @task_monitor.update_heartbeats(request_ids)
118
152
 
119
- @config.logger&.debug("[PatientHttp::Sidekiq] Updated heartbeats for #{request_ids.size} inflight requests")
153
+ @config.logger&.debug("[PatientHttp::Sidekiq] Updated heartbeats for #{request_ids.size} tracked requests")
120
154
  rescue => e
121
155
  @config.logger&.error("[PatientHttp::Sidekiq] Failed to update heartbeats: #{e.class} - #{e.message}")
122
156
  raise if PatientHttp.testing?
@@ -71,14 +71,21 @@
71
71
  }
72
72
 
73
73
  /* Summary Stats Grid */
74
+ /* Four cards fill a row exactly (four bases of 25% less their share of the
75
+ gaps), so the row breaks after the fourth card and the cards left over grow
76
+ to fill the row below. */
74
77
  .stats-grid {
75
- display: grid;
76
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
78
+ display: flex;
79
+ flex-wrap: wrap;
77
80
  gap: 24px;
78
81
  margin-bottom: 32px;
79
82
  }
80
83
 
81
84
  .stat-card {
85
+ flex: 1 1 calc(25% - 18px);
86
+ /* Without this a long label could grow a card past its basis and change
87
+ how many cards fit on a row. */
88
+ min-width: 0;
82
89
  padding: 24px;
83
90
  background: var(--patient-http-card-bg);
84
91
  border: 1px solid var(--patient-http-border);
@@ -108,59 +115,6 @@
108
115
  color: var(--patient-http-error);
109
116
  }
110
117
 
111
- /* Capacity Section */
112
- .capacity-section {
113
- margin: 32px 0;
114
- padding: 24px;
115
- background: var(--patient-http-card-bg);
116
- border: 1px solid var(--patient-http-border);
117
- border-radius: 6px;
118
- }
119
-
120
- .capacity-cards {
121
- display: grid;
122
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
123
- gap: 24px;
124
- margin-bottom: 32px;
125
- }
126
-
127
- .capacity-card {
128
- padding: 16px;
129
- background: var(--patient-http-card-bg);
130
- border: 1px solid var(--patient-http-border);
131
- border-radius: 4px;
132
- text-align: center;
133
- }
134
-
135
- .capacity-label {
136
- font-size: 0.875em;
137
- color: var(--patient-http-subtle);
138
- font-weight: 500;
139
- margin-bottom: 8px;
140
- display: block;
141
- }
142
-
143
- .capacity-value {
144
- display: block;
145
- font-size: 1.75em;
146
- font-weight: 700;
147
- color: var(--patient-http-primary);
148
- line-height: 1;
149
- margin-bottom: 4px;
150
- }
151
-
152
- .capacity-unit {
153
- font-size: 0.75em;
154
- color: var(--patient-http-subtle);
155
- text-transform: uppercase;
156
- letter-spacing: 0.05em;
157
- }
158
-
159
- /* Process Breakdown Table */
160
- .process-breakdown {
161
- margin-top: 24px;
162
- }
163
-
164
118
  /* Breakdown Sections (HTTP Status Codes, Error Types) */
165
119
  .breakdown-section {
166
120
  margin: 32px 0;
@@ -174,6 +128,15 @@
174
128
  margin: 0 0 24px 0;
175
129
  }
176
130
 
131
+ /* Wide tables scroll inside their section instead of overflowing the page. */
132
+ .patient-http-dashboard .table-scroll {
133
+ overflow-x: auto;
134
+ }
135
+
136
+ .patient-http-dashboard .table-scroll .table {
137
+ min-width: 640px;
138
+ }
139
+
177
140
  /* Table Styling */
178
141
  .patient-http-dashboard .table {
179
142
  width: 100%;
@@ -205,6 +168,13 @@
205
168
  background: var(--patient-http-bg);
206
169
  }
207
170
 
171
+ /* URLs are the widest thing on the page; keep one from pushing the other
172
+ columns off screen. */
173
+ .patient-http-dashboard .table td.url {
174
+ max-width: 32em;
175
+ overflow-wrap: anywhere;
176
+ }
177
+
208
178
  .patient-http-dashboard .table .empty-state {
209
179
  text-align: center;
210
180
  color: var(--patient-http-subtle);
@@ -213,12 +183,8 @@
213
183
 
214
184
  /* Responsive Design */
215
185
  @media (max-width: 768px) {
216
- .stats-grid {
217
- grid-template-columns: repeat(2, 1fr);
218
- }
219
-
220
- .capacity-cards {
221
- grid-template-columns: 1fr;
186
+ .stat-card {
187
+ flex-basis: 40%;
222
188
  }
223
189
 
224
190
  .patient-http-dashboard h2 {
@@ -235,16 +201,8 @@
235
201
  }
236
202
 
237
203
  @media (max-width: 480px) {
238
- .stats-grid {
239
- grid-template-columns: 1fr;
240
- }
241
-
242
- .capacity-bar {
243
- height: 20px;
244
- }
245
-
246
- .capacity-value {
247
- font-size: 1.5em;
204
+ .stat-card {
205
+ flex-basis: 100%;
248
206
  }
249
207
  }
250
208
 
@@ -5,18 +5,23 @@ ar:
5
5
  patient_http_average_duration: "متوسط المدة (ثواني)"
6
6
  patient_http_total_errors: "مجموع الأخطاء"
7
7
  patient_http_max_capacity_exceeded: "تم تجاوز السعة القصوى"
8
- patient_http_connection_capacity: "سعة الاتصال"
9
8
  patient_http_max_capacity: "السعة القصوى"
10
- patient_http_connections: "اتصالات"
11
9
  patient_http_currently_inflight: "قيد التنفيذ حالياً"
12
- patient_http_requests: "طلبات"
13
10
  patient_http_capacity_utilization: "استغلال السعة"
14
- patient_http_used: "مستخدم"
15
- patient_http_per_process_details: "تفاصيل كل عملية"
11
+ patient_http_sidekiq_processes: "عمليات Sidekiq"
16
12
  patient_http_process: "عملية"
17
13
  patient_http_inflight: "قيد التنفيذ"
14
+ patient_http_peak_inflight: "الذروة (لكل عملية)"
18
15
  patient_http_utilization: "الاستغلال"
19
16
  patient_http_no_active_processes: "لا توجد عمليات نشطة"
17
+ patient_http_processors: "المعالجات"
18
+ patient_http_processor: "معالج"
19
+ patient_http_errors: "الأخطاء"
20
+ patient_http_avg_duration: "متوسط المدة"
21
+ patient_http_inflight_requests: "الطلبات الجارية"
22
+ patient_http_age: "العمر (ثواني)"
23
+ patient_http_method: "الطريقة"
24
+ patient_http_url: "الرابط"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "رموز حالة HTTP"
@@ -5,18 +5,23 @@ cs:
5
5
  patient_http_average_duration: "Průměrná doba trvání (sekundy)"
6
6
  patient_http_total_errors: "Celkem chyb"
7
7
  patient_http_max_capacity_exceeded: "Překročená maximální kapacita"
8
- patient_http_connection_capacity: "Kapacita připojení"
9
8
  patient_http_max_capacity: "Max. kapacita"
10
- patient_http_connections: "připojení"
11
9
  patient_http_currently_inflight: "Právě probíhá"
12
- patient_http_requests: "požadavků"
13
10
  patient_http_capacity_utilization: "Využití kapacity"
14
- patient_http_used: "využito"
15
- patient_http_per_process_details: "Podrobnosti po procesech"
11
+ patient_http_sidekiq_processes: "Procesy Sidekiq"
16
12
  patient_http_process: "Proces"
17
13
  patient_http_inflight: "Probíhá"
14
+ patient_http_peak_inflight: "Vrchol (na proces)"
18
15
  patient_http_utilization: "Využití"
19
16
  patient_http_no_active_processes: "Žádné aktivní procesy"
17
+ patient_http_processors: "Procesory"
18
+ patient_http_processor: "Procesor"
19
+ patient_http_errors: "Chyby"
20
+ patient_http_avg_duration: "Průměrná doba"
21
+ patient_http_inflight_requests: "Probíhající požadavky"
22
+ patient_http_age: "Stáří (sekundy)"
23
+ patient_http_method: "Metoda"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTP stavové kódy"
@@ -5,18 +5,23 @@ da:
5
5
  patient_http_average_duration: "Gennemsnitlig varighed (sekunder)"
6
6
  patient_http_total_errors: "Samlede fejl"
7
7
  patient_http_max_capacity_exceeded: "Maks. kapacitet overskredet"
8
- patient_http_connection_capacity: "Forbindelseskapacitet"
9
8
  patient_http_max_capacity: "Maks. kapacitet"
10
- patient_http_connections: "forbindelser"
11
9
  patient_http_currently_inflight: "Igangværende"
12
- patient_http_requests: "anmodninger"
13
10
  patient_http_capacity_utilization: "Kapacitetsudnyttelse"
14
- patient_http_used: "brugt"
15
- patient_http_per_process_details: "Detaljer pr. proces"
11
+ patient_http_sidekiq_processes: "Sidekiq-processer"
16
12
  patient_http_process: "Proces"
17
13
  patient_http_inflight: "Igangværende"
14
+ patient_http_peak_inflight: "Top (pr. proces)"
18
15
  patient_http_utilization: "Udnyttelse"
19
16
  patient_http_no_active_processes: "Ingen aktive processer"
17
+ patient_http_processors: "Processorer"
18
+ patient_http_processor: "Processor"
19
+ patient_http_errors: "Fejl"
20
+ patient_http_avg_duration: "Gns. varighed"
21
+ patient_http_inflight_requests: "Igangværende anmodninger"
22
+ patient_http_age: "Alder (sekunder)"
23
+ patient_http_method: "Metode"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTP-statuskoder"
@@ -5,18 +5,23 @@ de:
5
5
  patient_http_average_duration: "Durchschnittsdauer (Sekunden)"
6
6
  patient_http_total_errors: "Gesamtfehler"
7
7
  patient_http_max_capacity_exceeded: "Max. Kapazität überschritten"
8
- patient_http_connection_capacity: "Verbindungskapazität"
9
8
  patient_http_max_capacity: "Max. Kapazität"
10
- patient_http_connections: "Verbindungen"
11
9
  patient_http_currently_inflight: "Aktuell in Bearbeitung"
12
- patient_http_requests: "Anfragen"
13
10
  patient_http_capacity_utilization: "Kapazitätsauslastung"
14
- patient_http_used: "verwendet"
15
- patient_http_per_process_details: "Details pro Prozess"
11
+ patient_http_sidekiq_processes: "Sidekiq-Prozesse"
16
12
  patient_http_process: "Prozess"
17
13
  patient_http_inflight: "In Bearbeitung"
14
+ patient_http_peak_inflight: "Spitze (pro Prozess)"
18
15
  patient_http_utilization: "Auslastung"
19
16
  patient_http_no_active_processes: "Keine aktiven Prozesse"
17
+ patient_http_processors: "Prozessoren"
18
+ patient_http_processor: "Prozessor"
19
+ patient_http_errors: "Fehler"
20
+ patient_http_avg_duration: "Durchschnittsdauer"
21
+ patient_http_inflight_requests: "Laufende Anfragen"
22
+ patient_http_age: "Alter (Sekunden)"
23
+ patient_http_method: "Methode"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTP-Statuscodes"
@@ -5,18 +5,23 @@ el:
5
5
  patient_http_average_duration: "Μέση διάρκεια (δευτερόλεπτα)"
6
6
  patient_http_total_errors: "Σύνολο σφαλμάτων"
7
7
  patient_http_max_capacity_exceeded: "Υπέρβαση μέγιστης χωρητικότητας"
8
- patient_http_connection_capacity: "Χωρητικότητα σύνδεσης"
9
8
  patient_http_max_capacity: "Μέγιστη χωρητικότητα"
10
- patient_http_connections: "συνδέσεις"
11
9
  patient_http_currently_inflight: "Επί του παρόντος σε εξέλιξη"
12
- patient_http_requests: "αιτήματα"
13
10
  patient_http_capacity_utilization: "Χρήση χωρητικότητας"
14
- patient_http_used: "χρησιμοποιείται"
15
- patient_http_per_process_details: "Λεπτομέρειες ανά διεργασία"
11
+ patient_http_sidekiq_processes: "Διεργασίες Sidekiq"
16
12
  patient_http_process: "Διεργασία"
17
13
  patient_http_inflight: "Σε εξέλιξη"
14
+ patient_http_peak_inflight: "Κορυφή (ανά διεργασία)"
18
15
  patient_http_utilization: "Χρήση"
19
16
  patient_http_no_active_processes: "Καμία ενεργή διεργασία"
17
+ patient_http_processors: "Επεξεργαστές"
18
+ patient_http_processor: "Επεξεργαστής"
19
+ patient_http_errors: "Σφάλματα"
20
+ patient_http_avg_duration: "Μέση διάρκεια"
21
+ patient_http_inflight_requests: "Αιτήματα σε εξέλιξη"
22
+ patient_http_age: "Ηλικία (δευτερόλεπτα)"
23
+ patient_http_method: "Μέθοδος"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "Κωδικοί κατάστασης HTTP"
@@ -5,18 +5,23 @@ en:
5
5
  patient_http_average_duration: "Average Duration (seconds)"
6
6
  patient_http_total_errors: "Total Errors"
7
7
  patient_http_max_capacity_exceeded: "Max Capacity Exceeded"
8
- patient_http_connection_capacity: "Connection Capacity"
9
8
  patient_http_max_capacity: "Max Capacity"
10
- patient_http_connections: "connections"
11
9
  patient_http_currently_inflight: "Currently Inflight"
12
- patient_http_requests: "requests"
13
10
  patient_http_capacity_utilization: "Capacity Utilization"
14
- patient_http_used: "used"
15
- patient_http_per_process_details: "Per-Process Details"
11
+ patient_http_sidekiq_processes: "Sidekiq Processes"
16
12
  patient_http_process: "Process"
17
13
  patient_http_inflight: "Inflight"
14
+ patient_http_peak_inflight: "Peak (per process)"
18
15
  patient_http_utilization: "Utilization"
19
16
  patient_http_no_active_processes: "No active processes"
17
+ patient_http_processors: "Processors"
18
+ patient_http_processor: "Processor"
19
+ patient_http_errors: "Errors"
20
+ patient_http_avg_duration: "Avg Duration"
21
+ patient_http_inflight_requests: "In-Flight Requests"
22
+ patient_http_age: "Age (seconds)"
23
+ patient_http_method: "Method"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTP Status Codes"
@@ -5,18 +5,23 @@ es:
5
5
  patient_http_average_duration: "Duración media (segundos)"
6
6
  patient_http_total_errors: "Total de errores"
7
7
  patient_http_max_capacity_exceeded: "Capacidad máxima excedida"
8
- patient_http_connection_capacity: "Capacidad de conexión"
9
8
  patient_http_max_capacity: "Capacidad máx."
10
- patient_http_connections: "conexiones"
11
9
  patient_http_currently_inflight: "Actualmente en vuelo"
12
- patient_http_requests: "solicitudes"
13
10
  patient_http_capacity_utilization: "Utilización de la capacidad"
14
- patient_http_used: "usado"
15
- patient_http_per_process_details: "Detalles por proceso"
11
+ patient_http_sidekiq_processes: "Procesos de Sidekiq"
16
12
  patient_http_process: "Proceso"
17
13
  patient_http_inflight: "En vuelo"
14
+ patient_http_peak_inflight: "Máximo (por proceso)"
18
15
  patient_http_utilization: "Utilización"
19
16
  patient_http_no_active_processes: "No hay procesos activos"
17
+ patient_http_processors: "Procesadores"
18
+ patient_http_processor: "Procesador"
19
+ patient_http_errors: "Errores"
20
+ patient_http_avg_duration: "Duración media"
21
+ patient_http_inflight_requests: "Solicitudes en curso"
22
+ patient_http_age: "Antigüedad (segundos)"
23
+ patient_http_method: "Método"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "Códigos de estado HTTP"
@@ -5,18 +5,23 @@ fa:
5
5
  patient_http_average_duration: "مدت زمان میانگین (ثانیه)"
6
6
  patient_http_total_errors: "مجموع خطاها"
7
7
  patient_http_max_capacity_exceeded: "ظرفیت حداکثر تجاوز شد"
8
- patient_http_connection_capacity: "ظرفیت اتصال"
9
8
  patient_http_max_capacity: "ظرفیت حداکثر"
10
- patient_http_connections: "اتصالات"
11
9
  patient_http_currently_inflight: "در حال پردازش"
12
- patient_http_requests: "درخواستها"
13
10
  patient_http_capacity_utilization: "بهرهوری ظرفیت"
14
- patient_http_used: "استفاده شده"
15
- patient_http_per_process_details: "جزئیات هر پردازش"
11
+ patient_http_sidekiq_processes: "پردازش‌های Sidekiq"
16
12
  patient_http_process: "پردازش"
17
13
  patient_http_inflight: "در جریان"
14
+ patient_http_peak_inflight: "اوج (به ازای هر پردازش)"
18
15
  patient_http_utilization: "بهرهوری"
19
16
  patient_http_no_active_processes: "هیچ پردازش فعالی وجود ندارد"
17
+ patient_http_processors: "پردازنده‌ها"
18
+ patient_http_processor: "پردازنده"
19
+ patient_http_errors: "خطاها"
20
+ patient_http_avg_duration: "میانگین مدت زمان"
21
+ patient_http_inflight_requests: "درخواست‌های در حال اجرا"
22
+ patient_http_age: "سن (ثانیه)"
23
+ patient_http_method: "روش"
24
+ patient_http_url: "نشانی"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "کدهای وضعیت HTTP"
@@ -5,18 +5,23 @@ fr:
5
5
  patient_http_average_duration: "Durée moyenne (secondes)"
6
6
  patient_http_total_errors: "Total des erreurs"
7
7
  patient_http_max_capacity_exceeded: "Capacité max. dépassée"
8
- patient_http_connection_capacity: "Capacité de connexion"
9
8
  patient_http_max_capacity: "Capacité max."
10
- patient_http_connections: "connexions"
11
9
  patient_http_currently_inflight: "En cours de traitement"
12
- patient_http_requests: "requêtes"
13
10
  patient_http_capacity_utilization: "Utilisation de la capacité"
14
- patient_http_used: "utilisé"
15
- patient_http_per_process_details: "Détails par processus"
11
+ patient_http_sidekiq_processes: "Processus Sidekiq"
16
12
  patient_http_process: "Processus"
17
13
  patient_http_inflight: "En cours"
14
+ patient_http_peak_inflight: "Pic (par processus)"
18
15
  patient_http_utilization: "Utilisation"
19
16
  patient_http_no_active_processes: "Aucun processus actif"
17
+ patient_http_processors: "Processeurs"
18
+ patient_http_processor: "Processeur"
19
+ patient_http_errors: "Erreurs"
20
+ patient_http_avg_duration: "Durée moyenne"
21
+ patient_http_inflight_requests: "Requêtes en cours"
22
+ patient_http_age: "Âge (secondes)"
23
+ patient_http_method: "Méthode"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "Codes d'état HTTP"
@@ -5,18 +5,23 @@ gd:
5
5
  patient_http_average_duration: "Cuibheasachd faid (diogan)"
6
6
  patient_http_total_errors: "Mearachdan gu lèir"
7
7
  patient_http_max_capacity_exceeded: "Comas as motha thairis"
8
- patient_http_connection_capacity: "Comas ceangail"
9
8
  patient_http_max_capacity: "Comas as motha"
10
- patient_http_connections: "ceanglaichean"
11
9
  patient_http_currently_inflight: "Ga làimhseachadh an-dràsta"
12
- patient_http_requests: "iarrtasan"
13
10
  patient_http_capacity_utilization: "Cleachdadh comais"
14
- patient_http_used: "air a chleachdadh"
15
- patient_http_per_process_details: "Mion-fhiosrachadh gach pròiseas"
11
+ patient_http_sidekiq_processes: "Pròiseasan Sidekiq"
16
12
  patient_http_process: "Pròiseas"
17
13
  patient_http_inflight: "Ga làimhseachadh"
14
+ patient_http_peak_inflight: "Àirde (gach pròiseas)"
18
15
  patient_http_utilization: "Cleachdadh"
19
16
  patient_http_no_active_processes: "Chan eil pròiseasan gnìomhach ann"
17
+ patient_http_processors: "Pròiseasairean"
18
+ patient_http_processor: "Pròiseasar"
19
+ patient_http_errors: "Mearachdan"
20
+ patient_http_avg_duration: "Faid chuibheasach"
21
+ patient_http_inflight_requests: "Iarrtasan a' ruith"
22
+ patient_http_age: "Aois (diogan)"
23
+ patient_http_method: "Dòigh"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "Còdan inbhe HTTP"
@@ -5,18 +5,23 @@ he:
5
5
  patient_http_average_duration: "משך זמן ממוצע (שניות)"
6
6
  patient_http_total_errors: "סה״כ שגיאות"
7
7
  patient_http_max_capacity_exceeded: "עבר את הקיבולת המרבית"
8
- patient_http_connection_capacity: "קיבולת חיבורים"
9
8
  patient_http_max_capacity: "קיבולת מקסימלית"
10
- patient_http_connections: "חיבורים"
11
9
  patient_http_currently_inflight: "בתהליך כרגע"
12
- patient_http_requests: "בקשות"
13
10
  patient_http_capacity_utilization: "ניצול קיבולת"
14
- patient_http_used: "בשימוש"
15
- patient_http_per_process_details: "פרטים לפי תהליך"
11
+ patient_http_sidekiq_processes: "תהליכי Sidekiq"
16
12
  patient_http_process: "תהליך"
17
13
  patient_http_inflight: "בתהליך"
14
+ patient_http_peak_inflight: "שיא (לכל תהליך)"
18
15
  patient_http_utilization: "ניצול"
19
16
  patient_http_no_active_processes: "אין תהליכים פעילים"
17
+ patient_http_processors: "מעבדים"
18
+ patient_http_processor: "מעבד"
19
+ patient_http_errors: "שגיאות"
20
+ patient_http_avg_duration: "משך זמן ממוצע"
21
+ patient_http_inflight_requests: "בקשות בביצוע"
22
+ patient_http_age: "גיל (שניות)"
23
+ patient_http_method: "שיטה"
24
+ patient_http_url: "כתובת"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "קודי סטטוס HTTP"
@@ -5,18 +5,23 @@ hi:
5
5
  patient_http_average_duration: "औसत अवधि (सेकंड)"
6
6
  patient_http_total_errors: "कुल त्रुटियां"
7
7
  patient_http_max_capacity_exceeded: "अधिकतम क्षमता पार हो गई"
8
- patient_http_connection_capacity: "कनेक्शन क्षमता"
9
8
  patient_http_max_capacity: "अधिकतम क्षमता"
10
- patient_http_connections: "कनेक्शन"
11
9
  patient_http_currently_inflight: "वर्तमान में जारी"
12
- patient_http_requests: "अनुरोध"
13
10
  patient_http_capacity_utilization: "क्षमता उपयोग"
14
- patient_http_used: "उपयोग में"
15
- patient_http_per_process_details: "प्रति-प्रक्रिया विवरण"
11
+ patient_http_sidekiq_processes: "Sidekiq प्रक्रियाएं"
16
12
  patient_http_process: "प्रक्रिया"
17
13
  patient_http_inflight: "जारी"
14
+ patient_http_peak_inflight: "शिखर (प्रति प्रक्रिया)"
18
15
  patient_http_utilization: "उपयोग"
19
16
  patient_http_no_active_processes: "कोई सक्रिय प्रक्रिया नहीं"
17
+ patient_http_processors: "प्रोसेसर"
18
+ patient_http_processor: "प्रोसेसर"
19
+ patient_http_errors: "त्रुटियां"
20
+ patient_http_avg_duration: "औसत अवधि"
21
+ patient_http_inflight_requests: "चालू अनुरोध"
22
+ patient_http_age: "आयु (सेकंड)"
23
+ patient_http_method: "विधि"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTP स्थिति कोड"
@@ -5,18 +5,23 @@ it:
5
5
  patient_http_average_duration: "Durata media (secondi)"
6
6
  patient_http_total_errors: "Totale errori"
7
7
  patient_http_max_capacity_exceeded: "Capacità massima superata"
8
- patient_http_connection_capacity: "Capacità connessione"
9
8
  patient_http_max_capacity: "Capacità max"
10
- patient_http_connections: "connessioni"
11
9
  patient_http_currently_inflight: "Attualmente in corso"
12
- patient_http_requests: "richieste"
13
10
  patient_http_capacity_utilization: "Utilizzo capacità"
14
- patient_http_used: "utilizzato"
15
- patient_http_per_process_details: "Dettagli per processo"
11
+ patient_http_sidekiq_processes: "Processi Sidekiq"
16
12
  patient_http_process: "Processo"
17
13
  patient_http_inflight: "In corso"
14
+ patient_http_peak_inflight: "Picco (per processo)"
18
15
  patient_http_utilization: "Utilizzo"
19
16
  patient_http_no_active_processes: "Nessun processo attivo"
17
+ patient_http_processors: "Processori"
18
+ patient_http_processor: "Processore"
19
+ patient_http_errors: "Errori"
20
+ patient_http_avg_duration: "Durata media"
21
+ patient_http_inflight_requests: "Richieste in corso"
22
+ patient_http_age: "Età (secondi)"
23
+ patient_http_method: "Metodo"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "Codici di stato HTTP"
@@ -5,18 +5,23 @@ ja:
5
5
  patient_http_average_duration: "平均所要時間(秒)"
6
6
  patient_http_total_errors: "総エラー数"
7
7
  patient_http_max_capacity_exceeded: "最大容量超過"
8
- patient_http_connection_capacity: "接続容量"
9
8
  patient_http_max_capacity: "最大容量"
10
- patient_http_connections: "接続"
11
9
  patient_http_currently_inflight: "処理中"
12
- patient_http_requests: "リクエスト"
13
10
  patient_http_capacity_utilization: "容量使用率"
14
- patient_http_used: "使用済み"
15
- patient_http_per_process_details: "プロセスごとの詳細"
11
+ patient_http_sidekiq_processes: "Sidekiq プロセス"
16
12
  patient_http_process: "プロセス"
17
13
  patient_http_inflight: "処理中"
14
+ patient_http_peak_inflight: "ピーク(プロセスごと)"
18
15
  patient_http_utilization: "使用率"
19
16
  patient_http_no_active_processes: "アクティブなプロセスはありません"
17
+ patient_http_processors: "プロセッサー"
18
+ patient_http_processor: "プロセッサー"
19
+ patient_http_errors: "エラー数"
20
+ patient_http_avg_duration: "平均所要時間"
21
+ patient_http_inflight_requests: "処理中のリクエスト"
22
+ patient_http_age: "経過時間(秒)"
23
+ patient_http_method: "メソッド"
24
+ patient_http_url: "URL"
20
25
  patient_http_clear_stats: "Clear Statistics"
21
26
  patient_http_clear_confirm: "Are you sure you want to clear all statistics? This cannot be undone."
22
27
  patient_http_http_status_codes: "HTTPステータスコード"