pgbus 0.17.1 → 0.17.3
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/CHANGELOG.md +42 -0
- data/README.md +83 -13
- data/Rakefile +26 -0
- data/app/assets/javascripts/pgbus/stream_source_element.js +34 -2
- data/app/assets/javascripts/pgbus/stream_source_element.min.js +6 -0
- data/app/assets/javascripts/pgbus/stream_source_element.min.js.map +1 -0
- data/app/controllers/concerns/pgbus/job_listing.rb +37 -0
- data/app/controllers/concerns/pgbus/process_listing.rb +17 -0
- data/app/controllers/pgbus/application_controller.rb +5 -2
- data/app/controllers/pgbus/batches_controller.rb +4 -1
- data/app/controllers/pgbus/dashboard_controller.rb +20 -6
- data/app/controllers/pgbus/dead_letter_controller.rb +27 -3
- data/app/controllers/pgbus/events_controller.rb +52 -3
- data/app/controllers/pgbus/frontends_controller.rb +25 -11
- data/app/controllers/pgbus/insights_controller.rb +19 -1
- data/app/controllers/pgbus/jobs_controller.rb +45 -26
- data/app/controllers/pgbus/locks_controller.rb +7 -2
- data/app/controllers/pgbus/outbox_controller.rb +4 -1
- data/app/controllers/pgbus/processes_controller.rb +3 -1
- data/app/controllers/pgbus/queues_controller.rb +16 -4
- data/app/controllers/pgbus/recurring_tasks_controller.rb +5 -7
- data/app/frontend/pgbus/application.min.js +2 -0
- data/app/frontend/pgbus/application.min.js.map +1 -0
- data/app/frontend/pgbus/modules/charts.js +137 -77
- data/app/frontend/pgbus/modules/charts.min.js +2 -0
- data/app/frontend/pgbus/modules/charts.min.js.map +1 -0
- data/app/frontend/pgbus/style.css +1 -1
- data/app/frontend/pgbus/tailwind.css +18 -0
- data/app/frontend/pgbus/vendor/turbo.min.js +54 -0
- data/app/frontend/pgbus/vendor/turbo.min.js.map +1 -0
- data/app/helpers/pgbus/application_helper.rb +155 -113
- data/app/helpers/pgbus/button_helper.rb +88 -0
- data/app/helpers/pgbus/dashboard_helper.rb +157 -0
- data/app/helpers/pgbus/events_helper.rb +40 -0
- data/app/helpers/pgbus/insights_helper.rb +39 -0
- data/app/helpers/pgbus/processes_helper.rb +79 -0
- data/app/views/layouts/pgbus/application.html.erb +0 -1
- data/app/views/pgbus/batches/_batches_table.html.erb +16 -13
- data/app/views/pgbus/batches/show.html.erb +3 -4
- data/app/views/pgbus/dashboard/_processes_table.html.erb +11 -11
- data/app/views/pgbus/dashboard/_queue_health.html.erb +42 -51
- data/app/views/pgbus/dashboard/_queues_table.html.erb +18 -16
- data/app/views/pgbus/dashboard/_recent_failures.html.erb +16 -12
- data/app/views/pgbus/dashboard/_stats_cards.html.erb +70 -36
- data/app/views/pgbus/dashboard/show.html.erb +1 -1
- data/app/views/pgbus/dead_letter/_error.html.erb +13 -0
- data/app/views/pgbus/dead_letter/_messages_table.html.erb +37 -96
- data/app/views/pgbus/dead_letter/_row.html.erb +75 -0
- data/app/views/pgbus/dead_letter/index.html.erb +6 -9
- data/app/views/pgbus/dead_letter/show.html.erb +37 -21
- data/app/views/pgbus/events/_list.html.erb +55 -0
- data/app/views/pgbus/events/_processed_table.html.erb +45 -0
- data/app/views/pgbus/events/_replay.html.erb +10 -0
- data/app/views/pgbus/events/_row.html.erb +162 -0
- data/app/views/pgbus/events/_tabs.html.erb +13 -0
- data/app/views/pgbus/events/index.html.erb +27 -48
- data/app/views/pgbus/events/show.html.erb +25 -7
- data/app/views/pgbus/insights/_chart_card.html.erb +21 -0
- data/app/views/pgbus/insights/_latency_table.html.erb +20 -0
- data/app/views/pgbus/insights/_status_table.html.erb +19 -0
- data/app/views/pgbus/insights/_throughput_table.html.erb +18 -0
- data/app/views/pgbus/insights/show.html.erb +83 -100
- data/app/views/pgbus/jobs/_list.html.erb +64 -0
- data/app/views/pgbus/jobs/_row.html.erb +107 -0
- data/app/views/pgbus/jobs/_tabs.html.erb +14 -0
- data/app/views/pgbus/jobs/index.html.erb +10 -10
- data/app/views/pgbus/jobs/show.html.erb +18 -20
- data/app/views/pgbus/locks/_concurrency.html.erb +25 -23
- data/app/views/pgbus/locks/_uniqueness.html.erb +20 -22
- data/app/views/pgbus/outbox/index.html.erb +30 -27
- data/app/views/pgbus/processes/_processes_table.html.erb +6 -25
- data/app/views/pgbus/processes/_row.html.erb +48 -0
- data/app/views/pgbus/processes/_status.html.erb +4 -0
- data/app/views/pgbus/queues/_queues_list.html.erb +28 -32
- data/app/views/pgbus/queues/show.html.erb +69 -118
- data/app/views/pgbus/recurring_tasks/_tasks_table.html.erb +75 -76
- data/app/views/pgbus/recurring_tasks/index.html.erb +1 -1
- data/app/views/pgbus/recurring_tasks/show.html.erb +45 -51
- data/app/views/pgbus/shared/_empty_row.html.erb +2 -0
- data/app/views/pgbus/shared/_pager.html.erb +34 -0
- data/config/i18n-tasks.yml +11 -2
- data/config/locales/da.yml +405 -113
- data/config/locales/de.yml +405 -113
- data/config/locales/en.yml +405 -113
- data/config/locales/es.yml +404 -112
- data/config/locales/fi.yml +404 -112
- data/config/locales/fr.yml +406 -114
- data/config/locales/it.yml +405 -113
- data/config/locales/ja.yml +405 -113
- data/config/locales/nb.yml +405 -113
- data/config/locales/nl.yml +405 -113
- data/config/locales/pt.yml +406 -114
- data/config/locales/sv.yml +404 -112
- data/config/routes.rb +1 -1
- data/lib/generators/pgbus/add_presence_generator.rb +2 -1
- data/lib/generators/pgbus/add_presence_seats_generator.rb +45 -0
- data/lib/generators/pgbus/templates/add_presence.rb.erb +32 -7
- data/lib/generators/pgbus/templates/add_presence_seats.rb.erb +38 -0
- data/lib/generators/pgbus/templates/initializer.rb.erb +4 -0
- data/lib/pgbus/active_job/executor.rb +16 -6
- data/lib/pgbus/cli/dlq.rb +32 -5
- data/lib/pgbus/client.rb +4 -2
- data/lib/pgbus/configuration/presence_settings.rb +103 -0
- data/lib/pgbus/configuration.rb +51 -2
- data/lib/pgbus/dead_letter_header.rb +129 -0
- data/lib/pgbus/doctor.rb +8 -4
- data/lib/pgbus/engine.rb +13 -7
- data/lib/pgbus/event_bus/handler.rb +18 -11
- data/lib/pgbus/event_bus/registry.rb +6 -0
- data/lib/pgbus/failed_event_recorder.rb +34 -0
- data/lib/pgbus/generators/migration_detector.rb +9 -1
- data/lib/pgbus/instrumentation.rb +2 -1
- data/lib/pgbus/mcp/base_tool.rb +25 -0
- data/lib/pgbus/mcp/tools/concurrency_tool.rb +23 -4
- data/lib/pgbus/mcp/tools/dlq_detail_tool.rb +4 -2
- data/lib/pgbus/mcp/tools/dlq_tool.rb +10 -4
- data/lib/pgbus/mcp/tools/locks_tool.rb +23 -5
- data/lib/pgbus/mcp/tools/recurring_tool.rb +33 -4
- data/lib/pgbus/outbox/poller.rb +1 -1
- data/lib/pgbus/process/consumer.rb +53 -3
- data/lib/pgbus/process/dispatcher.rb +1 -1
- data/lib/pgbus/process/supervisor.rb +32 -11
- data/lib/pgbus/process/worker.rb +45 -8
- data/lib/pgbus/recurring/scheduler.rb +2 -1
- data/lib/pgbus/streams/presence.rb +317 -81
- data/lib/pgbus/version.rb +1 -1
- data/lib/pgbus/web/data_source/dashboard_signals.rb +170 -0
- data/lib/pgbus/web/data_source/dead_letter.rb +142 -0
- data/lib/pgbus/web/data_source/event_list.rb +161 -0
- data/lib/pgbus/web/data_source/job_list.rb +323 -0
- data/lib/pgbus/web/data_source/list_counts.rb +80 -0
- data/lib/pgbus/web/data_source/process_list.rb +69 -0
- data/lib/pgbus/web/data_source/queue_summary.rb +122 -0
- data/lib/pgbus/web/data_source.rb +132 -254
- data/lib/pgbus/web/dead_letter_reason.rb +81 -0
- data/lib/pgbus/web/event_state.rb +71 -0
- data/lib/pgbus/web/health_app.rb +7 -3
- data/lib/pgbus/web/health_verdict.rb +78 -0
- data/lib/pgbus/web/insights_charts.rb +84 -0
- data/lib/pgbus/web/job_state.rb +111 -0
- data/lib/pgbus/web/process_activity.rb +97 -0
- data/lib/pgbus/web/process_state.rb +187 -0
- data/lib/pgbus/web/queue_summary.rb +104 -0
- data/lib/pgbus/web/stream_app.rb +18 -6
- data/lib/pgbus/web/streamer/connection.rb +7 -1
- data/lib/pgbus/web/streamer/falcon_connection.rb +7 -1
- data/lib/pgbus/web/streamer/heartbeat.rb +9 -3
- data/lib/pgbus/web/streamer/instance.rb +2 -1
- data/lib/pgbus/web/streamer/presence_tracker.rb +155 -0
- data/lib/pgbus/web/streamer/stream_event_dispatcher.rb +8 -37
- data/lib/pgbus/web/time_format.rb +128 -0
- metadata +55 -4
- data/app/views/pgbus/events/_pending_table.html.erb +0 -169
- data/app/views/pgbus/jobs/_enqueued_table.html.erb +0 -118
- data/app/views/pgbus/jobs/_failed_table.html.erb +0 -76
data/config/locales/pt.yml
CHANGED
|
@@ -41,6 +41,7 @@ pt:
|
|
|
41
41
|
title: Processos Ativos
|
|
42
42
|
queue_health:
|
|
43
43
|
dead_tuples: Tuplas mortas
|
|
44
|
+
empty: Ainda não há tabelas de fila para medir
|
|
44
45
|
headers:
|
|
45
46
|
bloat: Bloat
|
|
46
47
|
dead: Mortas
|
|
@@ -60,14 +61,34 @@ pt:
|
|
|
60
61
|
one: "%{count} tabela precisa de vacuum"
|
|
61
62
|
other: "%{count} tabelas precisam de vacuum"
|
|
62
63
|
title: Saúde das Filas
|
|
64
|
+
words:
|
|
65
|
+
bloat:
|
|
66
|
+
critical: "%{ratio} em %{table} — as leituras estão a abrandar; execute o vacuum agora (crítico acima de %{critical}, avisa acima de %{warn})"
|
|
67
|
+
none: Ainda nada para medir
|
|
68
|
+
ok: "%{ratio} em %{table} — normal (avisa acima de %{warn}, crítico acima de %{critical})"
|
|
69
|
+
warn: "%{ratio} em %{table} — vacuum necessário (avisa acima de %{warn}, crítico acima de %{critical})"
|
|
70
|
+
dead_tuples:
|
|
71
|
+
ok: Normal — avisa acima de %{limit} linhas mortas
|
|
72
|
+
warn: Acima de %{limit} — o autovacuum está atrasado; a tabela abaixo mostra onde
|
|
73
|
+
transaction:
|
|
74
|
+
critical: Mais de %{critical} — o vacuum não consegue recuperar linhas até ela terminar; encontre-a em pg_stat_activity (avisa em %{warn}; o veredito de saúde passa a degraded após %{verdict})
|
|
75
|
+
none: Nenhuma transação aberta — o vacuum pode recuperar todas as linhas mortas (avisa em %{warn}, alerta em %{critical}; o veredito de saúde passa a degraded após %{verdict})
|
|
76
|
+
ok: Normal — avisa em %{warn}, alerta em %{critical}; o veredito de saúde passa a degraded após %{verdict}
|
|
77
|
+
warn: Mais de %{warn} — uma transação longa impede o vacuum de recuperar linhas (alerta em %{critical}; o veredito de saúde passa a degraded após %{verdict})
|
|
78
|
+
vacuum:
|
|
79
|
+
critical: Mais de %{critical} — o autovacuum não está a chegar a estas tabelas; verifique as suas configurações (avisa após %{warn})
|
|
80
|
+
ok: Normal — avisa após %{warn}, crítico após %{critical}
|
|
81
|
+
unknown: Nunca foi feito vacuum, ou as estatísticas não estão disponíveis
|
|
82
|
+
warn: Mais de %{warn} — o autovacuum pode estar atrasado (crítico após %{critical})
|
|
63
83
|
worst_bloat: Pior Bloat
|
|
64
84
|
queues_table:
|
|
65
85
|
empty: Nenhuma fila encontrada
|
|
66
86
|
headers:
|
|
67
87
|
depth: Profundidade
|
|
68
|
-
oldest_claimable: Mais antigo disponível
|
|
88
|
+
oldest_claimable: Mais antigo disponível
|
|
69
89
|
parked: Adiados
|
|
70
90
|
queue: Fila
|
|
91
|
+
status: Status
|
|
71
92
|
total: Total
|
|
72
93
|
visible: Visível
|
|
73
94
|
title: Filas
|
|
@@ -75,7 +96,9 @@ pt:
|
|
|
75
96
|
recent_failures:
|
|
76
97
|
empty: Nenhuma falha
|
|
77
98
|
headers:
|
|
99
|
+
attempt: Tentativa
|
|
78
100
|
error: Erro
|
|
101
|
+
job: Job
|
|
79
102
|
queue: Fila
|
|
80
103
|
when: Quando
|
|
81
104
|
title: Falhas Recentes
|
|
@@ -83,19 +106,72 @@ pt:
|
|
|
83
106
|
show:
|
|
84
107
|
title: Painel
|
|
85
108
|
stats_cards:
|
|
109
|
+
dead_lettered: Mensagens mortas
|
|
110
|
+
dlq_newest_html: 'mais recente: %{error_class} em %{job} %{ago}'
|
|
111
|
+
dlq_newest_legacy_html: 'mais recente: %{job} %{ago} — nenhum motivo registrado'
|
|
112
|
+
dlq_newest_no_error_html: 'mais recente: %{job} %{ago} — nenhum erro registrado'
|
|
113
|
+
dlq_none: Nenhuma mensagem morta
|
|
114
|
+
dlq_see_why: abra a página de mensagens mortas para ver por que cada uma morreu
|
|
86
115
|
enqueued: Enfileirado
|
|
87
|
-
|
|
88
|
-
|
|
116
|
+
enqueued_detail: "%{claimable} disponíveis agora · %{waiting} agendados, em execução ou em nova tentativa"
|
|
117
|
+
enqueued_paused:
|
|
118
|
+
one: "%{count} em filas pausadas"
|
|
119
|
+
other: "%{count} em filas pausadas"
|
|
89
120
|
parked_jobs: Trabalhos estacionados
|
|
90
121
|
parked_jobs_oldest: mais antigo %{age}
|
|
91
122
|
processes: Processos
|
|
123
|
+
processes_detail: "%{healthy} saudáveis · %{stalled} parados · %{stale} obsoletos"
|
|
124
|
+
processes_none: Nada está em execução — nenhum job está a ser reivindicado
|
|
125
|
+
processes_stale: os processos obsoletos pararam de enviar batimentos; os seus jobs em curso voltam a executar quando o visibility timeout expirar
|
|
92
126
|
queues: Filas
|
|
127
|
+
queues_detail: "%{paused} pausadas · %{dlq} de mensagens mortas"
|
|
128
|
+
queues_undrained:
|
|
129
|
+
one: "%{count} contém jobs que nada esvazia"
|
|
130
|
+
other: "%{count} contêm jobs que nada esvazia"
|
|
93
131
|
recurring: Recorrente
|
|
132
|
+
recurring_detail: Tarefas que o agendador enfileira conforme o seu horário
|
|
133
|
+
retrying: Em nova tentativa
|
|
134
|
+
retrying_due:
|
|
135
|
+
one: "%{count} a vencer agora"
|
|
136
|
+
other: "%{count} a vencer agora"
|
|
137
|
+
retrying_newest: erro mais recente %{error_class}
|
|
138
|
+
retrying_next_html: próxima tentativa %{time}
|
|
139
|
+
retrying_none: Nada em nova tentativa
|
|
94
140
|
throughput: Taxa de transferência
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
141
|
+
throughput_detail: jobs/min nos últimos %{minutes} min
|
|
142
|
+
throughput_unavailable: requer estatísticas de jobs (rails g pgbus:add_job_stats)
|
|
143
|
+
verdict:
|
|
144
|
+
links:
|
|
145
|
+
dlq: Mensagens mortas
|
|
146
|
+
processes: Processos
|
|
147
|
+
look_at: 'Veja:'
|
|
148
|
+
meaning:
|
|
149
|
+
degraded: Algo precisa de atenção, mas os jobs continuam a fluir. /readyz continua a responder ready.
|
|
150
|
+
ok: Todas as filas com trabalho estão a ser esvaziadas e todos os processos enviam batimentos. /readyz responde ready.
|
|
151
|
+
stalled: Há jobs à espera e nada os está a pegar. /readyz responde not ready (503).
|
|
152
|
+
statuses:
|
|
153
|
+
degraded: DEGRADED
|
|
154
|
+
ok: OK
|
|
155
|
+
stalled: STALLED
|
|
156
|
+
title: 'Saúde: %{status}'
|
|
157
|
+
unavailable: Veredito de saúde indisponível — não foi possível ler as verificações em que se baseia; consulte o log
|
|
98
158
|
dead_letter:
|
|
159
|
+
detail:
|
|
160
|
+
backtrace: Backtrace (primeiras linhas)
|
|
161
|
+
died: 'Morreu:'
|
|
162
|
+
dlq: 'Fila de mensagens mortas:'
|
|
163
|
+
error_from_attempt: Erro da tentativa %{attempt}; as tentativas %{from}–%{to} não registraram erro.
|
|
164
|
+
source: 'Movido por:'
|
|
165
|
+
sources:
|
|
166
|
+
consumer: consumidor de eventos
|
|
167
|
+
worker: worker de jobs
|
|
168
|
+
why: Por que morreu
|
|
169
|
+
filters:
|
|
170
|
+
all: Todas
|
|
171
|
+
clear_error_class: Limpar filtro
|
|
172
|
+
error_class: 'Erro: %{error_class}'
|
|
173
|
+
filter_error_class: Mostrar apenas %{error_class}
|
|
174
|
+
label: Filtrar mensagens mortas
|
|
99
175
|
index:
|
|
100
176
|
discard_all: Descartar Tudo
|
|
101
177
|
discard_all_confirm: Descartar permanentemente todas as mensagens DLQ?
|
|
@@ -115,11 +191,13 @@ pt:
|
|
|
115
191
|
empty: A fila de mensagens mortas está vazia
|
|
116
192
|
full_json_payload: Carga JSON completa
|
|
117
193
|
headers:
|
|
118
|
-
|
|
194
|
+
actions: Ações
|
|
195
|
+
attempts: Tentativas
|
|
196
|
+
died: Morreu
|
|
119
197
|
id: ID
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
source_queue: Fila de
|
|
198
|
+
job: Job
|
|
199
|
+
reason: Motivo
|
|
200
|
+
source_queue: Fila de origem
|
|
123
201
|
headers_section: Cabeçalhos
|
|
124
202
|
job_id: 'ID do Trabalho:'
|
|
125
203
|
metadata: Metadados
|
|
@@ -131,6 +209,16 @@ pt:
|
|
|
131
209
|
visible_at: 'Visível em:'
|
|
132
210
|
retry: Tentar novamente
|
|
133
211
|
total_label: mensagens na fila de mensagens mortas
|
|
212
|
+
view: Ver
|
|
213
|
+
reasons:
|
|
214
|
+
error_earlier_attempt_html: 'Tentativas esgotadas. Último erro registrado, da tentativa %{error_attempt}: %{error_class}: %{error_message}'
|
|
215
|
+
error_html: 'Tentativas esgotadas. Último erro: %{error_class}: %{error_message}'
|
|
216
|
+
event_no_error_html: O handler falhou em %{attempts} entregas (máx. %{max}) — nenhum erro do handler foi registrado
|
|
217
|
+
no_error_recorded_html: Excedeu %{max} tentativas após %{attempts} leituras — nenhum erro foi registrado; cada tentativa com falha travou antes de poder reportar
|
|
218
|
+
not_recorded_html: Motivo não registrado (movido para a DLQ antes do pgbus %{version})
|
|
219
|
+
retried_before:
|
|
220
|
+
one: Já reenviado da DLQ uma vez.
|
|
221
|
+
other: Já reenviado da DLQ %{count} vezes.
|
|
134
222
|
show:
|
|
135
223
|
back: Voltar para DLQ
|
|
136
224
|
context: Contexto
|
|
@@ -138,8 +226,10 @@ pt:
|
|
|
138
226
|
discard_confirm: Descartar permanentemente?
|
|
139
227
|
headers: Cabeçalhos
|
|
140
228
|
labels:
|
|
229
|
+
attempts: Tentativas
|
|
230
|
+
died: Morreu
|
|
231
|
+
dlq: Fila de mensagens mortas
|
|
141
232
|
enqueued_at: Enfileirado em
|
|
142
|
-
read_count: Contagem de leituras
|
|
143
233
|
source_queue: Fila de origem
|
|
144
234
|
visibility_timeout: Tempo limite de visibilidade
|
|
145
235
|
not_found: Mensagem não encontrada
|
|
@@ -163,6 +253,7 @@ pt:
|
|
|
163
253
|
mark_handled_failed: Não foi possível marcar o evento como tratado.
|
|
164
254
|
marked_handled: Evento marcado como tratado.
|
|
165
255
|
none_selected: Nenhum evento selecionado.
|
|
256
|
+
payload_redacted: 'Não guardado: o payload ainda contém valores ocultados ([FILTERED]) que substituiriam os reais.'
|
|
166
257
|
payload_update_failed: Não foi possível atualizar o payload. Verifique se o JSON é válido.
|
|
167
258
|
payload_updated: Payload atualizado e evento reenfileirado.
|
|
168
259
|
replay_failed: Evento não encontrado ou não pôde ser reproduzido.
|
|
@@ -170,56 +261,118 @@ pt:
|
|
|
170
261
|
reroute_failed: Não foi possível redirecionar o evento.
|
|
171
262
|
rerouted: Evento redirecionado para o manipulador alvo.
|
|
172
263
|
index:
|
|
173
|
-
discard_selected: Descartar Selecionados
|
|
174
|
-
discard_selected_confirm: Descartar eventos selecionados?
|
|
175
|
-
pending_empty: Nenhum evento pendente
|
|
176
|
-
pending_headers:
|
|
177
|
-
enqueued: Enfileirado
|
|
178
|
-
handler_queue: Fila do Manipulador
|
|
179
|
-
id: ID
|
|
180
|
-
reads: Leituras
|
|
181
|
-
routing_key: Chave de Roteamento
|
|
182
264
|
pending_title: Eventos Pendentes
|
|
183
|
-
processed_empty: Nenhum evento processado ainda
|
|
184
|
-
processed_headers:
|
|
185
|
-
event_id: ID do evento
|
|
186
|
-
handler: Manipulador
|
|
187
|
-
processed_at: Processado em
|
|
188
265
|
processed_title: Eventos processados
|
|
266
|
+
subscribers:
|
|
267
|
+
covered: Processado por um consumer em execução
|
|
268
|
+
uncovered: Nenhum consumer em execução cobre este padrão
|
|
269
|
+
unknown: Cobertura de consumers desconhecida
|
|
270
|
+
view_pending: Ver pendentes
|
|
189
271
|
subscribers_empty: Nenhum assinante registrado
|
|
190
272
|
subscribers_headers:
|
|
273
|
+
consumer: Consumer
|
|
191
274
|
handler: Manipulador
|
|
192
275
|
pattern: Padrão
|
|
276
|
+
pending: Pendentes
|
|
193
277
|
queue: Fila
|
|
194
278
|
subscribers_title: Assinantes registrados
|
|
195
279
|
title: Eventos
|
|
196
|
-
|
|
197
|
-
arguments: Payload
|
|
280
|
+
list:
|
|
198
281
|
context: Contexto
|
|
199
282
|
discard: Descartar
|
|
200
283
|
discard_confirm: Descartar este evento? Ele será arquivado.
|
|
284
|
+
discard_failure_confirm: Descartar este evento com falha? A mensagem já não está na fila.
|
|
285
|
+
discard_selected: Descartar Selecionados
|
|
286
|
+
discard_selected_confirm: Descartar eventos selecionados?
|
|
201
287
|
edit_payload: Editar e Tentar Novamente
|
|
202
288
|
edit_payload_confirm: Atualizar payload e reenfileirar este evento?
|
|
203
289
|
edit_payload_label: 'Payload JSON:'
|
|
290
|
+
empty:
|
|
291
|
+
all: Nenhum evento pendente
|
|
292
|
+
ready: Nenhum evento aguardando processamento
|
|
293
|
+
retrying: Nenhum evento aguardando nova tentativa
|
|
294
|
+
running: Nenhum evento em processamento
|
|
295
|
+
scheduled: Nenhum evento agendado
|
|
204
296
|
event_id: 'ID do Evento:'
|
|
205
297
|
full_json_payload: Payload JSON Completo
|
|
298
|
+
headers:
|
|
299
|
+
actions: Ações
|
|
300
|
+
attempts: Tentativas
|
|
301
|
+
event: Evento
|
|
302
|
+
handler: Manipulador
|
|
303
|
+
id: ID
|
|
304
|
+
reason: Próxima execução / Motivo
|
|
305
|
+
state: Estado
|
|
206
306
|
headers_section: Cabeçalhos
|
|
207
307
|
mark_handled: Marcar como Tratado
|
|
208
|
-
mark_handled_confirm: Marcar este evento como
|
|
308
|
+
mark_handled_confirm: Marcar este evento como processado? A mensagem é arquivada e o handler não o executa.
|
|
209
309
|
metadata: Metadados
|
|
210
310
|
metadata_labels:
|
|
311
|
+
enqueued: 'Enfileirado:'
|
|
211
312
|
last_read: 'Última leitura:'
|
|
313
|
+
published: 'Publicado:'
|
|
212
314
|
read_count: 'Contagem de leituras:'
|
|
213
315
|
visible_at: 'Visível em:'
|
|
316
|
+
payload: Payload
|
|
317
|
+
reasons:
|
|
318
|
+
handling_html: Em processamento por %{handler} — obtido %{ago} · o lease expira %{time}
|
|
319
|
+
lease_expired_html: Lease expirado (o consumer provavelmente morreu) — reentregando a %{handler}, tentativa %{attempt}
|
|
320
|
+
no_consumer_for_queue_html: Nenhum consumer em execução assina %{pattern} (%{handler})
|
|
321
|
+
no_consumers_html: Nenhum consumer saudável em execução
|
|
322
|
+
orphaned_html: Falhou com %{error} em %{handler} — a mensagem já não está na fila
|
|
323
|
+
paused_html: Fila pausada
|
|
324
|
+
retrying_dlq_html: "%{handler} tentativa %{attempt}/%{max} falhou: %{error} — a próxima leitura move-o para a DLQ"
|
|
325
|
+
retrying_due_html: "%{handler} tentativa %{attempt}/%{max} falhou: %{error} — próxima tentativa agora"
|
|
326
|
+
retrying_html: "%{handler} tentativa %{attempt}/%{max} falhou: %{error} — próxima tentativa %{time}"
|
|
327
|
+
scheduled_html: Agendado — processado por %{handler} %{time}
|
|
328
|
+
waiting_html: 'Aguardando — %{count} à frente · próximo: %{handler}'
|
|
329
|
+
waiting_unknown_html: Aguardando %{handler}
|
|
214
330
|
reroute: Redirecionar
|
|
215
331
|
reroute_confirm: Redirecionar este evento para um manipulador diferente?
|
|
216
332
|
reroute_label: 'Manipulador alvo:'
|
|
333
|
+
states:
|
|
334
|
+
ready: Pronto
|
|
335
|
+
retrying: Repetindo
|
|
336
|
+
running: Em processamento
|
|
337
|
+
scheduled: Agendado
|
|
338
|
+
tabs:
|
|
339
|
+
all: Todos
|
|
340
|
+
ready: Prontos
|
|
341
|
+
retrying: Repetindo
|
|
342
|
+
running: Em processamento
|
|
343
|
+
scheduled: Agendados
|
|
344
|
+
tabs_label: Estados dos eventos
|
|
345
|
+
view_failure: Ver falha
|
|
346
|
+
processed:
|
|
347
|
+
empty: Nenhum evento processado ainda
|
|
348
|
+
headers:
|
|
349
|
+
actions: Ações
|
|
350
|
+
event_id: ID do evento
|
|
351
|
+
handler: Manipulador
|
|
352
|
+
reason: Motivo
|
|
353
|
+
state: Estado
|
|
354
|
+
reasons:
|
|
355
|
+
abandoned_html: O claim ficou em silêncio %{ago} — a próxima entrega executa o handler de novo
|
|
356
|
+
completed_html: Concluído %{ago}
|
|
357
|
+
completed_legacy_html: Registado %{ago} (claim de fase única; atualize com pgbus:add_processed_event_completion)
|
|
358
|
+
handling_html: Em processamento — claim renovado %{ago}
|
|
359
|
+
replay: Reproduzir
|
|
360
|
+
replay_confirm: Reentregar este evento ao seu handler com um novo ID de evento? O handler é executado de novo.
|
|
361
|
+
replay_unavailable:
|
|
362
|
+
no_handler: O handler já não está registado
|
|
363
|
+
not_archived: Já não está no arquivo
|
|
364
|
+
states:
|
|
365
|
+
abandoned: Em silêncio
|
|
366
|
+
completed: Concluído
|
|
367
|
+
handling: Em processamento
|
|
217
368
|
show:
|
|
218
369
|
back: Voltar para eventos
|
|
219
370
|
labels:
|
|
371
|
+
completed_at: Concluído em
|
|
220
372
|
event_id: ID do evento
|
|
221
373
|
handler: Manipulador
|
|
222
374
|
processed_at: Processado em
|
|
375
|
+
state: Estado
|
|
223
376
|
not_found: Evento não encontrado
|
|
224
377
|
title: Evento %{event_id}
|
|
225
378
|
helpers:
|
|
@@ -231,6 +384,7 @@ pt:
|
|
|
231
384
|
bulk_select_row: Selecionar %{id}
|
|
232
385
|
bulk_selected: selecionado
|
|
233
386
|
pagination:
|
|
387
|
+
label: Paginação
|
|
234
388
|
next: Próximo
|
|
235
389
|
previous: Anterior
|
|
236
390
|
showing: Mostrando %{from}–%{to} de %{total}
|
|
@@ -245,24 +399,50 @@ pt:
|
|
|
245
399
|
healthy: Saudável
|
|
246
400
|
stale: Obsoleto
|
|
247
401
|
stalled: Bloqueado
|
|
402
|
+
time:
|
|
403
|
+
absolute_format: "%Y-%m-%d %H:%M:%S %Z"
|
|
404
|
+
clock_format: "%H:%M"
|
|
405
|
+
future: em %{distance}
|
|
406
|
+
now: agora
|
|
407
|
+
past: há %{distance}
|
|
408
|
+
range:
|
|
409
|
+
days:
|
|
410
|
+
one: "%{count} dia"
|
|
411
|
+
other: "%{count} dias"
|
|
412
|
+
hours:
|
|
413
|
+
one: "%{count} hora"
|
|
414
|
+
other: "%{count} horas"
|
|
415
|
+
minutes:
|
|
416
|
+
one: "%{count} minuto"
|
|
417
|
+
other: "%{count} minutos"
|
|
418
|
+
units:
|
|
419
|
+
days: "%{count}d"
|
|
420
|
+
hours: "%{count}h"
|
|
421
|
+
milliseconds: "%{count}ms"
|
|
422
|
+
minutes: "%{count}min"
|
|
423
|
+
seconds: "%{count}s"
|
|
248
424
|
insights:
|
|
249
425
|
show:
|
|
250
426
|
charts:
|
|
251
|
-
|
|
252
|
-
|
|
427
|
+
captions:
|
|
428
|
+
latency: Os jobs esperaram em média %{avg} até um worker os pegar, p95 %{p95}
|
|
429
|
+
status: "%{success} concluídos, %{failed} falharam, %{dead_lettered} mortos"
|
|
430
|
+
throughput_html: "%{total} jobs nos últimos %{range}, pico de %{peak} jobs/min %{at}"
|
|
431
|
+
data_table: Tabela de dados
|
|
432
|
+
latency: Latência da Fila
|
|
253
433
|
latency_avg: Média
|
|
254
434
|
latency_p95: P95
|
|
255
435
|
no_data: Sem dados ainda
|
|
256
436
|
series_name: Tarefas/min
|
|
257
437
|
status_distribution: Distribuição de status
|
|
258
|
-
throughput: Taxa de transferência
|
|
438
|
+
throughput: Taxa de transferência
|
|
259
439
|
description_html: Métricas de desempenho de trabalho para os últimos %{range}
|
|
260
440
|
latency_by_queue:
|
|
261
441
|
empty: Ainda não há dados de latência
|
|
262
442
|
headers:
|
|
263
|
-
avg: Média
|
|
443
|
+
avg: Média
|
|
264
444
|
count: Contagem
|
|
265
|
-
p95: P95
|
|
445
|
+
p95: P95
|
|
266
446
|
queue: Fila
|
|
267
447
|
title: Latência por Fila
|
|
268
448
|
live_streams:
|
|
@@ -282,6 +462,10 @@ pt:
|
|
|
282
462
|
job_class: Classe da tarefa
|
|
283
463
|
max: Máximo
|
|
284
464
|
title: Classes de Trabalho Mais Lentas (duração média)
|
|
465
|
+
statuses:
|
|
466
|
+
dead_lettered: Morto
|
|
467
|
+
failed: Falhou
|
|
468
|
+
success: Concluído
|
|
285
469
|
streams:
|
|
286
470
|
summary:
|
|
287
471
|
active: Ativo
|
|
@@ -310,6 +494,20 @@ pt:
|
|
|
310
494
|
p99_latency: Latência P99
|
|
311
495
|
succeeded: Bem-sucedido
|
|
312
496
|
total_jobs: Total de Trabalhos
|
|
497
|
+
tables:
|
|
498
|
+
captions:
|
|
499
|
+
latency_minute: Latência da fila por minuto
|
|
500
|
+
latency_step: Latência da fila por %{step}
|
|
501
|
+
status: Jobs por status final
|
|
502
|
+
throughput_minute: Jobs por minuto
|
|
503
|
+
throughput_step: Jobs por %{step}
|
|
504
|
+
headers:
|
|
505
|
+
avg: Média
|
|
506
|
+
from: De
|
|
507
|
+
highest_p95: Maior p95
|
|
508
|
+
jobs: Jobs
|
|
509
|
+
share: Parcela
|
|
510
|
+
status: Status
|
|
313
511
|
time_ranges:
|
|
314
512
|
1h: 1h
|
|
315
513
|
24h: 24h
|
|
@@ -317,60 +515,87 @@ pt:
|
|
|
317
515
|
7d: 7d
|
|
318
516
|
title: Insights
|
|
319
517
|
jobs:
|
|
320
|
-
|
|
518
|
+
index:
|
|
519
|
+
discard_all: Descartar Todos
|
|
520
|
+
discard_all_confirm: Descartar todos os trabalhos falhados?
|
|
521
|
+
discard_all_enqueued_notice: Descartados %{count} trabalhos na fila e bloqueios liberados.
|
|
522
|
+
discard_selected: Descartar Selecionados
|
|
523
|
+
discard_selected_confirm: Descartar itens selecionados?
|
|
524
|
+
discarded_selected:
|
|
525
|
+
one: 1 item selecionado descartado.
|
|
526
|
+
other: "%{count} itens selecionados descartados."
|
|
527
|
+
none_selected: Nenhum item selecionado.
|
|
528
|
+
retry_all: Tentar Novamente Todos
|
|
529
|
+
retry_all_confirm: Tentar novamente todos os trabalhos falhados?
|
|
530
|
+
title: Trabalhos
|
|
531
|
+
list:
|
|
321
532
|
arguments: Argumentos
|
|
322
533
|
discard: Descartar
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
discard_confirm: Descartar
|
|
326
|
-
empty:
|
|
534
|
+
discard_all_enqueued: Descartar todos os enfileirados
|
|
535
|
+
discard_all_enqueued_confirm: Descartar todos os trabalhos na fila e liberar seus bloqueios? Esta ação não pode ser desfeita.
|
|
536
|
+
discard_confirm: Descartar este trabalho?
|
|
537
|
+
empty:
|
|
538
|
+
all: Nenhum job
|
|
539
|
+
blocked: Nenhum job bloqueado por um limite de concorrência
|
|
540
|
+
ready: Nenhum job aguardando execução
|
|
541
|
+
retrying: Nenhum job aguardando nova tentativa
|
|
542
|
+
running: Nenhum job em execução
|
|
543
|
+
scheduled: Nenhum job agendado
|
|
327
544
|
full_json_payload: Carga JSON completa
|
|
328
545
|
headers:
|
|
329
|
-
|
|
546
|
+
actions: Ações
|
|
547
|
+
attempts: Tentativas
|
|
330
548
|
id: ID
|
|
331
|
-
|
|
549
|
+
job: Job
|
|
332
550
|
queue: Fila
|
|
333
|
-
|
|
551
|
+
reason: Próxima execução / Motivo
|
|
552
|
+
state: Estado
|
|
334
553
|
headers_section: Cabeçalhos
|
|
335
554
|
job_id: 'ID do Trabalho:'
|
|
336
555
|
metadata: Metadados
|
|
337
556
|
metadata_labels:
|
|
557
|
+
concurrency_key: 'Chave de concorrência:'
|
|
558
|
+
enqueued: 'Enfileirado:'
|
|
338
559
|
last_read: 'Última leitura:'
|
|
339
560
|
locale: 'Localidade:'
|
|
340
561
|
priority: 'Prioridade:'
|
|
341
|
-
queue: 'Fila:'
|
|
342
562
|
scheduled: 'Agendado:'
|
|
343
563
|
timezone: 'Fuso horário:'
|
|
344
564
|
visible_at: 'Visível em:'
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
565
|
+
reasons:
|
|
566
|
+
blocked_html: Aguardando um slot de concorrência em %{key} (ocupados %{held}/%{limit}) · estacionado %{ago}
|
|
567
|
+
blocked_no_slots_html: Aguardando um slot de concorrência em %{key} · estacionado %{ago}
|
|
568
|
+
lease_expired_html: Concessão expirada (o worker provavelmente morreu) — reentregando, tentativa %{attempt}
|
|
569
|
+
no_workers_html: Nenhum worker saudável em execução
|
|
570
|
+
not_drained_html: Nenhum worker processa esta fila
|
|
571
|
+
orphaned_html: Falhou com %{error} — a mensagem não está mais na fila
|
|
572
|
+
paused_html: Fila pausada
|
|
573
|
+
retrying_dlq_html: 'A tentativa %{attempt}/%{max} falhou: %{error} — a próxima leitura o move para a DLQ'
|
|
574
|
+
retrying_due_html: 'A tentativa %{attempt}/%{max} falhou: %{error} — próxima tentativa agora'
|
|
575
|
+
retrying_html: 'A tentativa %{attempt}/%{max} falhou: %{error} — próxima tentativa %{time}'
|
|
576
|
+
running_html: Coletado %{ago} · a concessão expira %{time}
|
|
577
|
+
scheduled_html: Agendado — executa %{time}
|
|
578
|
+
waiting_html: Aguardando — %{count} à frente
|
|
579
|
+
waiting_priority_html: Aguardando — %{count} à frente nesta prioridade
|
|
580
|
+
waiting_unknown_html: Aguardando ser coletado
|
|
359
581
|
retry: Tentar Novamente
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
582
|
+
retry_confirm: Redefinir tempo de visibilidade e tentar novamente?
|
|
583
|
+
states:
|
|
584
|
+
blocked: Bloqueado
|
|
585
|
+
ready: Pronto
|
|
586
|
+
retrying: Repetindo
|
|
587
|
+
running: Em execução
|
|
588
|
+
scheduled: Agendado
|
|
589
|
+
tabs:
|
|
590
|
+
all: Todos
|
|
591
|
+
blocked: Bloqueados
|
|
592
|
+
ready: Prontos
|
|
593
|
+
retrying: Repetindo
|
|
594
|
+
running: Em execução
|
|
595
|
+
scheduled: Agendados
|
|
596
|
+
tabs_label: Estados dos jobs
|
|
597
|
+
view_failure: Ver falha
|
|
598
|
+
view_locks: Ver bloqueios
|
|
374
599
|
show:
|
|
375
600
|
back: Voltar para Trabalhos
|
|
376
601
|
backtrace: Rastreamento de Pilha
|
|
@@ -423,6 +648,7 @@ pt:
|
|
|
423
648
|
other: Descartar os %{count} trabalhos estacionados atrás desta chave? Nunca serão executados.
|
|
424
649
|
empty: Nenhuma chave de concorrência em uso
|
|
425
650
|
headers:
|
|
651
|
+
actions: Ações
|
|
426
652
|
in_use: Em uso
|
|
427
653
|
key: Chave
|
|
428
654
|
lease: Concessão
|
|
@@ -456,6 +682,7 @@ pt:
|
|
|
456
682
|
discard_selected_confirm: Descartar bloqueios selecionados?
|
|
457
683
|
empty: Nenhum bloqueio ativo
|
|
458
684
|
headers:
|
|
685
|
+
actions: Ações
|
|
459
686
|
age: Idade
|
|
460
687
|
lock_key: Chave de Bloqueio
|
|
461
688
|
msg_id: ID da mensagem
|
|
@@ -483,8 +710,6 @@ pt:
|
|
|
483
710
|
pending: Pendente
|
|
484
711
|
published: Publicado
|
|
485
712
|
stats:
|
|
486
|
-
no_age: "—"
|
|
487
|
-
oldest_age: "%{seconds}s"
|
|
488
713
|
oldest_unpublished: Mais antigo não publicado
|
|
489
714
|
total: Total
|
|
490
715
|
unpublished: Não publicado
|
|
@@ -493,18 +718,76 @@ pt:
|
|
|
493
718
|
index:
|
|
494
719
|
title: Processos
|
|
495
720
|
processes_table:
|
|
721
|
+
capsule: cápsula %{capsule} · processo %{process}
|
|
496
722
|
empty: Nenhum processo em execução
|
|
497
723
|
headers:
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
pid: PID
|
|
724
|
+
activity: Atividade
|
|
725
|
+
heartbeat: Batimento
|
|
726
|
+
process: Processo
|
|
727
|
+
recycle: Reciclagem
|
|
503
728
|
status: Status
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
729
|
+
no_raw_metadata: Nenhum outro metadado
|
|
730
|
+
raw_metadata: Outros metadados
|
|
731
|
+
started: Iniciado
|
|
732
|
+
under_supervisor: sob o supervisor %{pid}
|
|
733
|
+
uptime: ativo há %{duration}
|
|
734
|
+
state:
|
|
735
|
+
activity:
|
|
736
|
+
buffered: "%{number} em buffer"
|
|
737
|
+
busy_slots: "%{busy}/%{capacity} slots ocupados"
|
|
738
|
+
busy_threads: "%{busy}/%{capacity} threads ocupadas"
|
|
739
|
+
consumes: Consome %{topics}
|
|
740
|
+
drains: Esvazia %{queues}
|
|
741
|
+
drains_all: Esvazia todas as filas
|
|
742
|
+
failed_rate: "%{rate} falhas/s"
|
|
743
|
+
handled: "%{number} tratados"
|
|
744
|
+
maintenance: Executa manutenção a cada %{interval} (jobs agendados, processos mortos, arquivos)
|
|
745
|
+
outbox: Publica entradas do outbox
|
|
746
|
+
rate: "%{rate} jobs/s"
|
|
747
|
+
schedule:
|
|
748
|
+
one: Executa %{count} tarefa recorrente, verifica a cada %{interval}
|
|
749
|
+
other: Executa %{count} tarefas recorrentes, verifica a cada %{interval}
|
|
750
|
+
slots:
|
|
751
|
+
one: "%{count} slot"
|
|
752
|
+
other: "%{count} slots"
|
|
753
|
+
supervises: Supervisiona %{children}
|
|
754
|
+
supervises_none: Não supervisiona processos neste host
|
|
755
|
+
threads:
|
|
756
|
+
one: "%{count} thread"
|
|
757
|
+
other: "%{count} threads"
|
|
758
|
+
kinds:
|
|
759
|
+
consumer:
|
|
760
|
+
one: "%{count} consumidor"
|
|
761
|
+
other: "%{count} consumidores"
|
|
762
|
+
dispatcher:
|
|
763
|
+
one: dispatcher
|
|
764
|
+
other: "%{count} dispatchers"
|
|
765
|
+
outbox_poller:
|
|
766
|
+
one: poller do outbox
|
|
767
|
+
other: "%{count} pollers do outbox"
|
|
768
|
+
scheduler:
|
|
769
|
+
one: agendador
|
|
770
|
+
other: "%{count} agendadores"
|
|
771
|
+
worker:
|
|
772
|
+
one: "%{count} worker"
|
|
773
|
+
other: "%{count} workers"
|
|
774
|
+
next:
|
|
775
|
+
stale_reaped: provavelmente morto; removido na próxima varredura do dispatcher (em até %{within})
|
|
776
|
+
stale_unreaped: provavelmente morto; nenhum dispatcher vivo para removê-lo
|
|
777
|
+
stalled_maintenance: jobs agendados, limpeza de processos mortos e compactação de arquivos não avançam
|
|
778
|
+
stalled_schedule: tarefas recorrentes não estão sendo enfileiradas
|
|
779
|
+
stalled_standalone: nenhum supervisor para reiniciá-lo
|
|
780
|
+
stalled_supervised: o watchdog do supervisor o reinicia
|
|
781
|
+
reasons:
|
|
782
|
+
healthy_detection_off_html: Batimento %{ago} (limite %{limit}) · detecção de travamento desligada
|
|
783
|
+
healthy_heartbeat_html: Batimento %{ago} (limite %{limit})
|
|
784
|
+
healthy_loop_html: Laço avançou %{ago} (limite %{limit})
|
|
785
|
+
stale_html: Sem batimento há %{age} (limite %{limit})
|
|
786
|
+
stalled_html: Laço avançou pela última vez %{ago} (limite %{limit})
|
|
787
|
+
recycle:
|
|
788
|
+
jobs: "%{done} / %{limit} jobs"
|
|
789
|
+
lifetime: ativo há %{uptime} / %{limit}
|
|
790
|
+
memory: "%{used} / %{limit} MB"
|
|
508
791
|
queues:
|
|
509
792
|
destroy:
|
|
510
793
|
success: Fila %{name} excluída.
|
|
@@ -517,59 +800,70 @@ pt:
|
|
|
517
800
|
headers:
|
|
518
801
|
actions: Ações
|
|
519
802
|
depth: Profundidade
|
|
520
|
-
newest: Mais novo
|
|
521
|
-
oldest_claimable: Mais antigo disponível
|
|
803
|
+
newest: Mais novo
|
|
804
|
+
oldest_claimable: Mais antigo disponível
|
|
522
805
|
parked: Adiados
|
|
523
806
|
queue: Fila
|
|
524
807
|
total_ever: Total de todos os tempos
|
|
525
808
|
visible: Visível
|
|
526
809
|
pause: Pausar
|
|
527
810
|
pause_confirm: Pausar processamento por %{name}?
|
|
528
|
-
paused: Pausado
|
|
529
811
|
purge: Limpar
|
|
530
812
|
purge_confirm: Limpar todas as mensagens de %{name}?
|
|
531
813
|
resume: Retomar
|
|
532
814
|
show:
|
|
533
|
-
arguments: Argumentos
|
|
534
815
|
back: Voltar às filas
|
|
535
816
|
delete_confirm: Excluir permanentemente esta fila? Esta ação não pode ser desfeita.
|
|
536
817
|
delete_queue: Excluir fila
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
full_json_payload: Carga JSON completa
|
|
542
|
-
headers:
|
|
543
|
-
enqueued: Enfileirado
|
|
544
|
-
id: ID
|
|
545
|
-
job_class: Classe do Trabalho
|
|
546
|
-
reads: Leituras
|
|
547
|
-
vt: VT
|
|
548
|
-
headers_section: Cabeçalhos
|
|
549
|
-
job_id: 'ID do Trabalho:'
|
|
818
|
+
dlq_link: Tente novamente ou descarte-as na página Dead Letter
|
|
819
|
+
dlq_pointer:
|
|
820
|
+
one: Fila de mensagens mortas de %{logical} — %{count} mensagem.
|
|
821
|
+
other: Fila de mensagens mortas de %{logical} — %{count} mensagens.
|
|
550
822
|
message_discard_failed: Não foi possível descartar a mensagem.
|
|
551
823
|
message_discarded: Mensagem descartada.
|
|
552
824
|
message_retried: Visibilidade da mensagem redefinida.
|
|
553
825
|
message_retry_failed: Não foi possível tentar novamente a mensagem.
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
visible_at: 'Visível em:'
|
|
563
|
-
oldest: 'Mais antigo:'
|
|
564
|
-
oldest_claimable: 'Mais antigo disponível:'
|
|
565
|
-
parked: 'Adiados:'
|
|
826
|
+
metrics:
|
|
827
|
+
claimable: Disponíveis agora
|
|
828
|
+
depth: Profundidade
|
|
829
|
+
oldest: Mais antigo
|
|
830
|
+
oldest_claimable: Mais antigo disponível
|
|
831
|
+
parked: Estacionados
|
|
832
|
+
total: Total histórico
|
|
833
|
+
other_levels: 'Outros níveis de prioridade:'
|
|
566
834
|
pause: Pausar
|
|
567
835
|
pause_confirm: Pausar processamento?
|
|
568
836
|
purge_confirm: Limpar todas as mensagens?
|
|
569
837
|
purge_queue: Limpar fila
|
|
570
838
|
resume: Retomar
|
|
571
|
-
|
|
572
|
-
|
|
839
|
+
summary:
|
|
840
|
+
backlog_html: "%{visible} disponíveis agora, o mais antigo espera há %{age} · %{parked} estacionados (agendados ou em nova tentativa)"
|
|
841
|
+
backlog_parked_only_html: Nada disponível agora · %{parked} estacionados (agendados ou em nova tentativa)
|
|
842
|
+
dlq_html: 'Fila de mensagens mortas de %{logical}: os jobs chegam aqui após %{max} tentativas falhadas'
|
|
843
|
+
drained_by_html:
|
|
844
|
+
one: Esvaziada por %{capsules} (%{count} worker saudável)
|
|
845
|
+
other: Esvaziada por %{capsules} (%{count} workers saudáveis)
|
|
846
|
+
drained_live_html:
|
|
847
|
+
one: Esvaziada por %{count} worker saudável que escuta esta fila
|
|
848
|
+
other: Esvaziada por %{count} workers saudáveis que escutam esta fila
|
|
849
|
+
drained_wildcard_html:
|
|
850
|
+
one: Esvaziada por uma cápsula de workers curinga (%{count} worker saudável)
|
|
851
|
+
other: Esvaziada por uma cápsula de workers curinga (%{count} workers saudáveis)
|
|
852
|
+
empty_html: Nada à espera
|
|
853
|
+
handler_html: Fila de handler de eventos — esvaziada pelos consumidores (%{count} saudáveis)
|
|
854
|
+
no_consumers_html:
|
|
855
|
+
one: Fila de handler de eventos sem consumidor saudável — %{count} evento espera
|
|
856
|
+
other: Fila de handler de eventos sem consumidor saudável — %{count} eventos esperam
|
|
857
|
+
no_workers_html:
|
|
858
|
+
one: Nenhum worker saudável em execução — %{count} job está disponível mas ninguém o pega
|
|
859
|
+
other: Nenhum worker saudável em execução — %{count} jobs estão disponíveis mas ninguém os pega
|
|
860
|
+
not_drained_html: Nenhuma cápsula de workers esvazia esta fila — os jobs esperam até que uma seja configurada
|
|
861
|
+
paused_circuit_breaker_html: 'Pausada automaticamente %{ago} após %{failures} falhas consecutivas — retoma %{time} (disparo #%{trip})'
|
|
862
|
+
paused_operator_html: Pausada %{ago} — %{reason}
|
|
863
|
+
paused_operator_no_reason_html: Pausada %{ago} por um operador
|
|
864
|
+
priority_level_html: Nível de prioridade %{level} de %{logical}
|
|
865
|
+
stream_html: Fila de stream — entregue por peek, não esvaziada pelos workers
|
|
866
|
+
summary_label: Resumo da fila
|
|
573
867
|
table_health:
|
|
574
868
|
headers:
|
|
575
869
|
bloat: Bloat
|
|
@@ -579,8 +873,6 @@ pt:
|
|
|
579
873
|
table: Tabela
|
|
580
874
|
oldest_txn: 'Transação aberta mais antiga:'
|
|
581
875
|
title: Saúde das Tabelas
|
|
582
|
-
total: 'Total:'
|
|
583
|
-
visible: 'Visível:'
|
|
584
876
|
recurring_tasks:
|
|
585
877
|
index:
|
|
586
878
|
task_count:
|