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.
- checksums.yaml +4 -4
- data/ARCHITECTURE.md +31 -10
- data/CHANGELOG.md +32 -0
- data/README.md +126 -2
- data/VERSION +1 -1
- data/lib/patient_http/sidekiq/configuration.rb +258 -1
- data/lib/patient_http/sidekiq/direct_task_handler.rb +46 -0
- data/lib/patient_http/sidekiq/processor_observer.rb +162 -21
- data/lib/patient_http/sidekiq/redis_pool.rb +88 -0
- data/lib/patient_http/sidekiq/request_executor.rb +40 -10
- data/lib/patient_http/sidekiq/request_worker.rb +5 -2
- data/lib/patient_http/sidekiq/stats.rb +230 -33
- data/lib/patient_http/sidekiq/task_handler.rb +9 -3
- data/lib/patient_http/sidekiq/task_monitor.rb +410 -121
- data/lib/patient_http/sidekiq/task_monitor_thread.rb +41 -7
- data/lib/patient_http/sidekiq/web_ui/assets/patient-http/css/patient_http.css +29 -71
- data/lib/patient_http/sidekiq/web_ui/locales/ar.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/cs.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/da.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/de.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/el.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/en.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/es.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/fa.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/fr.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/gd.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/he.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/hi.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/it.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/ja.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/ko.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/lt.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/nb.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/nl.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/pl.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/pt-BR.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/pt.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/ru.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/sv.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/ta.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/tr.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/uk.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/ur.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/vi.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/zh-CN.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/locales/zh-TW.yml +10 -5
- data/lib/patient_http/sidekiq/web_ui/views/patient_http.html.erb +99 -44
- data/lib/patient_http/sidekiq/web_ui.rb +53 -1
- data/lib/patient_http/sidekiq.rb +303 -31
- data/patient_http-sidekiq.gemspec +1 -1
- 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
|
|
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,
|
|
27
|
+
def initialize(config, task_monitor, tracked_ids_callback, stats: nil)
|
|
26
28
|
@config = config
|
|
27
29
|
@task_monitor = task_monitor
|
|
28
|
-
@
|
|
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
|
-
#
|
|
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 = @
|
|
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}
|
|
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:
|
|
76
|
-
|
|
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
|
-
.
|
|
217
|
-
|
|
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
|
-
.
|
|
239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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ステータスコード"
|