pgbus 0.2.1 → 0.2.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +88 -25
  3. data/app/controllers/pgbus/api/insights_controller.rb +5 -4
  4. data/app/controllers/pgbus/application_controller.rb +40 -0
  5. data/app/controllers/pgbus/insights_controller.rb +3 -2
  6. data/app/controllers/pgbus/locale_controller.rb +15 -0
  7. data/app/helpers/pgbus/application_helper.rb +67 -7
  8. data/app/views/layouts/pgbus/application.html.erb +51 -16
  9. data/app/views/pgbus/dashboard/_processes_table.html.erb +7 -7
  10. data/app/views/pgbus/dashboard/_queues_table.html.erb +9 -9
  11. data/app/views/pgbus/dashboard/_recent_failures.html.erb +7 -7
  12. data/app/views/pgbus/dashboard/_stats_cards.html.erb +10 -10
  13. data/app/views/pgbus/dashboard/show.html.erb +1 -1
  14. data/app/views/pgbus/dead_letter/_messages_table.html.erb +20 -20
  15. data/app/views/pgbus/dead_letter/index.html.erb +5 -5
  16. data/app/views/pgbus/dead_letter/show.html.erb +12 -12
  17. data/app/views/pgbus/events/index.html.erb +11 -11
  18. data/app/views/pgbus/events/show.html.erb +6 -6
  19. data/app/views/pgbus/insights/show.html.erb +41 -21
  20. data/app/views/pgbus/jobs/_enqueued_table.html.erb +20 -20
  21. data/app/views/pgbus/jobs/_failed_table.html.erb +12 -12
  22. data/app/views/pgbus/jobs/index.html.erb +5 -5
  23. data/app/views/pgbus/jobs/show.html.erb +13 -13
  24. data/app/views/pgbus/locks/index.html.erb +11 -11
  25. data/app/views/pgbus/outbox/index.html.erb +15 -15
  26. data/app/views/pgbus/processes/_processes_table.html.erb +8 -8
  27. data/app/views/pgbus/processes/index.html.erb +1 -1
  28. data/app/views/pgbus/queues/_queues_list.html.erb +15 -15
  29. data/app/views/pgbus/queues/index.html.erb +1 -1
  30. data/app/views/pgbus/queues/show.html.erb +11 -11
  31. data/app/views/pgbus/recurring_tasks/_tasks_table.html.erb +15 -15
  32. data/app/views/pgbus/recurring_tasks/index.html.erb +2 -2
  33. data/app/views/pgbus/recurring_tasks/show.html.erb +21 -21
  34. data/config/i18n-tasks.yml +41 -0
  35. data/config/locales/da.yml +348 -0
  36. data/config/locales/de.yml +348 -0
  37. data/config/locales/en.yml +348 -0
  38. data/config/locales/es.yml +348 -0
  39. data/config/locales/fi.yml +348 -0
  40. data/config/locales/fr.yml +348 -0
  41. data/config/locales/it.yml +348 -0
  42. data/config/locales/ja.yml +348 -0
  43. data/config/locales/nb.yml +348 -0
  44. data/config/locales/nl.yml +348 -0
  45. data/config/locales/pt.yml +348 -0
  46. data/config/locales/sv.yml +348 -0
  47. data/config/routes.rb +2 -0
  48. data/lib/pgbus/configuration.rb +8 -2
  49. data/lib/pgbus/engine.rb +4 -0
  50. data/lib/pgbus/version.rb +1 -1
  51. metadata +15 -1
@@ -0,0 +1,348 @@
1
+ ---
2
+ sv:
3
+ pgbus:
4
+ dashboard:
5
+ processes_table:
6
+ empty: Inga processer körs
7
+ headers:
8
+ host: Värd
9
+ kind: Typ
10
+ pid: PID
11
+ status: Status
12
+ title: Aktiva processer
13
+ queues_table:
14
+ empty: Inga köer hittades
15
+ headers:
16
+ depth: Djup
17
+ oldest: Äldst (s)
18
+ queue: Kö
19
+ total: Totalt
20
+ visible: Synliga
21
+ title: Köer
22
+ view_all: Visa alla
23
+ recent_failures:
24
+ empty: Inga fel
25
+ headers:
26
+ error: Fel
27
+ queue: Kö
28
+ when: När
29
+ title: Senaste fel
30
+ view_all: Visa alla
31
+ show:
32
+ title: Instrumentpanel
33
+ stats_cards:
34
+ enqueued: Inlagda
35
+ failed_dlq: Misslyckade / DLQ
36
+ processes: Processer
37
+ queues: Köer
38
+ recurring: Återkommande
39
+ throughput: Genomströmning
40
+ throughput_unit: meddelanden/s
41
+ view_tasks: Visa uppgifter
42
+ visible: synliga
43
+ dead_letter:
44
+ index:
45
+ discard_all: Kassera alla
46
+ discard_all_confirm: Kassera permanent alla DLQ-meddelanden?
47
+ retry_all: Försök igen alla
48
+ retry_all_confirm: Försök igen alla DLQ-meddelanden?
49
+ title: Dead Letter-kö
50
+ messages_table:
51
+ arguments: Argument
52
+ discard: Kassera
53
+ discard_confirm: Kassera permanent?
54
+ empty: Dead letter-kön är tom
55
+ full_json_payload: Fullständig JSON-payload
56
+ headers:
57
+ enqueued: Inlagda
58
+ id: ID
59
+ job_class: Jobbklass
60
+ reads: Läser
61
+ source_queue: Källkö
62
+ headers_section: Rubriker
63
+ job_id: 'Jobb-ID:'
64
+ metadata: Metadata
65
+ metadata_labels:
66
+ executions: 'Utföranden:'
67
+ last_read: 'Senast läst:'
68
+ priority: 'Prioritet:'
69
+ queue: 'Kö:'
70
+ visible_at: 'Synlig vid:'
71
+ retry: Försök igen
72
+ show:
73
+ back: Tillbaka till DLQ
74
+ discard: Kassera
75
+ discard_confirm: Kassera permanent?
76
+ headers: Rubriker
77
+ labels:
78
+ enqueued_at: Inlagd den
79
+ read_count: Antal läsningar
80
+ source_queue: Källkö
81
+ visibility_timeout: Synlighetstidsgräns
82
+ not_found: Meddelande hittades inte
83
+ payload: Innehåll
84
+ retry: Försök igen
85
+ title: 'DLQ-meddelande #%{id}'
86
+ events:
87
+ index:
88
+ processed_empty: Inga händelser behandlade än
89
+ processed_headers:
90
+ event_id: Händelse-ID
91
+ handler: Hanterare
92
+ processed_at: Behandlad den
93
+ processed_title: Behandlade händelser
94
+ subscribers_empty: Inga registrerade prenumeranter
95
+ subscribers_headers:
96
+ handler: Hanterare
97
+ pattern: Mönster
98
+ queue: Kö
99
+ subscribers_title: Registrerade prenumeranter
100
+ title: Händelser
101
+ show:
102
+ back: Tillbaka till händelser
103
+ labels:
104
+ event_id: Händelse-ID
105
+ handler: Hanterare
106
+ processed_at: Behandlad den
107
+ not_found: Händelse hittades inte
108
+ title: Händelse %{event_id}
109
+ helpers:
110
+ paused_badge: Pausad
111
+ queue_badge:
112
+ dlq: DLQ
113
+ queue: Kö
114
+ recurring_health:
115
+ active: Aktiv
116
+ pending: Väntande
117
+ status_badge:
118
+ healthy: Hälsosam
119
+ stale: Föråldrad
120
+ insights:
121
+ show:
122
+ charts:
123
+ failed_to_load: Misslyckades att ladda diagramdata
124
+ no_data: Inga data än
125
+ series_name: Jobb/min
126
+ status_distribution: Statusfördelning
127
+ throughput: Genomströmning (jobb/min)
128
+ description_html: Jobbprestandamått för de senaste %{range}
129
+ slowest:
130
+ empty: Inga jobbstatistik än
131
+ headers:
132
+ avg: Genomsnitt
133
+ count: Antal
134
+ job_class: Jobbklass
135
+ max: Max
136
+ title: Långsammaste jobbklasser (genomsnittlig varaktighet)
137
+ summary:
138
+ avg_duration: Genomsnittlig varaktighet
139
+ dead_lettered: Dead Lettered
140
+ failed: Misslyckades
141
+ max_duration: Maximal varaktighet
142
+ succeeded: Lyckades
143
+ total_jobs: Totalt antal jobb
144
+ time_ranges:
145
+ 1h: 1h
146
+ 24h: 24h
147
+ 30d: 30d
148
+ 7d: 7d
149
+ title: Insikter
150
+ jobs:
151
+ enqueued_table:
152
+ arguments: Argument
153
+ empty: Inga köade jobb
154
+ full_json_payload: Fullständig JSON-payload
155
+ headers:
156
+ enqueued: Köade
157
+ id: ID
158
+ job_class: Jobbklass
159
+ queue: Kö
160
+ reads: Läser
161
+ headers_section: Headers
162
+ job_id: 'Jobb-ID:'
163
+ metadata: Metadata
164
+ metadata_labels:
165
+ last_read: 'Senast läst:'
166
+ locale: 'Språk:'
167
+ priority: 'Prioritet:'
168
+ queue: 'Kö:'
169
+ scheduled: 'Schemalagt:'
170
+ timezone: 'Tidszon:'
171
+ visible_at: 'Synlig vid:'
172
+ title: Köade jobb
173
+ failed_table:
174
+ discard: Kassera
175
+ discard_confirm: Kassera detta jobb?
176
+ empty: Inga misslyckade jobb
177
+ headers:
178
+ actions: Åtgärder
179
+ error: Fel
180
+ failed: Misslyckades
181
+ id: ID
182
+ queue: Kö
183
+ retries: Försök igen
184
+ retry: Försök igen
185
+ title: Misslyckade jobb
186
+ index:
187
+ discard_all: Kassera alla
188
+ discard_all_confirm: Kassera alla misslyckade jobb?
189
+ retry_all: Försök igen alla
190
+ retry_all_confirm: Försök igen alla misslyckade jobb?
191
+ title: Jobb
192
+ show:
193
+ back: Tillbaka till jobb
194
+ backtrace: Backtrace
195
+ discard: Kassera
196
+ discard_confirm: Kassera detta jobb permanent?
197
+ error_message: Felmeddelande
198
+ labels:
199
+ error_class: Felkategori
200
+ failed_at: Misslyckades vid
201
+ queue: Kö
202
+ retry_count: Antal försök
203
+ not_found: Jobb hittades inte
204
+ payload: Data
205
+ retry: Försök igen
206
+ title: 'Misslyckat jobb #%{id}'
207
+ layout:
208
+ brand: Pgbus
209
+ nav:
210
+ dashboard: Instrumentpanel
211
+ dlq: DLQ
212
+ events: Händelser
213
+ insights: Insikter
214
+ jobs: Jobb
215
+ locks: Lås
216
+ outbox: Utbox
217
+ processes: Processer
218
+ queues: Köer
219
+ recurring: Återkommande
220
+ title: Pgbus-instrumentpanel
221
+ toggle_dark_mode: Växla mörkt läge
222
+ locks:
223
+ index:
224
+ description: Aktiva unika lås som förhindrar duplicerad jobbexekvering
225
+ empty: Inga aktiva lås
226
+ executing: Utför
227
+ headers:
228
+ age: Ålder
229
+ expires: Upphör
230
+ job_class: Jobbklass
231
+ lock_key: Låsningsnyckel
232
+ owner: Ägare
233
+ state: Status
234
+ queued: I kö
235
+ title: Jobblås
236
+ outbox:
237
+ index:
238
+ description: Transaktionella utboxposter som väntar på publicering till PGMQ
239
+ empty: Inga utboxposter
240
+ headers:
241
+ created: Skapad
242
+ id: ID
243
+ payload: Data
244
+ priority: Prioritet
245
+ queue_topic: Kö / Ämne
246
+ status: Status
247
+ pending: Väntande
248
+ published: Publicerad
249
+ stats:
250
+ no_age: "—"
251
+ oldest_age: "%{seconds}s"
252
+ oldest_unpublished: Äldsta opublicerade
253
+ total: Totalt
254
+ unpublished: Opublicerad
255
+ title: Utbox
256
+ processes:
257
+ index:
258
+ title: Processer
259
+ processes_table:
260
+ empty: Inga processer körs
261
+ headers:
262
+ hostname: Värdnamn
263
+ kind: Typ
264
+ last_heartbeat: Senaste hjärtslag
265
+ metadata: Metadata
266
+ pid: PID
267
+ status: Status
268
+ queues:
269
+ index:
270
+ title: Köer
271
+ queues_list:
272
+ empty: Inga köer hittades
273
+ headers:
274
+ actions: Åtgärder
275
+ depth: Djup
276
+ newest: Nyaste (s)
277
+ oldest: Äldsta (s)
278
+ queue: Kö
279
+ total_ever: Totalt någonsin
280
+ visible: Synliga
281
+ pause: Pausa
282
+ pause_confirm: Pausa bearbetning för %{name}?
283
+ paused: Pausad
284
+ purge: Rensa
285
+ purge_confirm: Rensa alla meddelanden från %{name}?
286
+ resume: Återuppta
287
+ show:
288
+ depth: 'Djup:'
289
+ empty: Kön är tom
290
+ headers:
291
+ enqueued: Inlagd
292
+ id: ID
293
+ payload: Innehåll
294
+ reads: Läsningar
295
+ vt: VT
296
+ purge_confirm: Rensa alla meddelanden?
297
+ purge_queue: Rensa kö
298
+ total: 'Totalt:'
299
+ visible: 'Synliga:'
300
+ recurring_tasks:
301
+ index:
302
+ task_count:
303
+ one: "%{count} uppgift konfigurerad"
304
+ other: "%{count} uppgifter konfigurerade"
305
+ title: Återkommande uppgifter
306
+ show:
307
+ back: Tillbaka
308
+ configuration: Konfiguration
309
+ default_queue: standard
310
+ disable: Inaktivera
311
+ disabled: Inaktiverad
312
+ enable: Aktivera
313
+ execution_headers:
314
+ enqueued_at: Inlagd vid
315
+ scheduled_for: Schemalagd för
316
+ labels:
317
+ arguments: Argument
318
+ command: Kommando
319
+ description: Beskrivning
320
+ job_class: Jobbklass
321
+ priority: Prioritet
322
+ queue: Kö
323
+ source: Källa
324
+ next_run: Nästa körning
325
+ no_executions: Inga körningar registrerade än
326
+ recent_executions: Senaste körningar
327
+ run_now: Kör nu
328
+ schedule: Schema
329
+ source_config: Konfigurationsfil
330
+ source_dynamic: Dynamisk
331
+ status: Status
332
+ tasks_table:
333
+ default_queue: standard
334
+ disable: Inaktivera
335
+ disabled: Inaktiverad
336
+ empty_hint: Lägg till uppgifter i config/recurring.yml
337
+ empty_title: Inga återkommande uppgifter konfigurerade
338
+ enable: Aktivera
339
+ headers:
340
+ actions: Åtgärder
341
+ last_run: Senaste körning
342
+ next_run: Nästa körning
343
+ queue: Kö
344
+ schedule: Schema
345
+ status: Status
346
+ task: Uppgift
347
+ never: Aldrig
348
+ run_now: Kör nu
data/config/routes.rb CHANGED
@@ -52,6 +52,8 @@ Pgbus::Engine.routes.draw do
52
52
  resources :locks, only: [:index]
53
53
  resource :insights, only: [:show], controller: "insights"
54
54
 
55
+ get :set_locale, to: "locale#update"
56
+
55
57
  namespace :api do
56
58
  get :stats, to: "stats#show"
57
59
  get :insights, to: "insights#show"
@@ -63,7 +63,8 @@ module Pgbus
63
63
  attr_accessor :stats_retention, :stats_enabled
64
64
 
65
65
  # Web dashboard
66
- attr_accessor :web_auth, :web_refresh_interval, :web_per_page, :web_live_updates, :web_data_source
66
+ attr_accessor :web_auth, :web_refresh_interval, :web_per_page, :web_live_updates, :web_data_source,
67
+ :insights_default_minutes
67
68
 
68
69
  def initialize
69
70
  @database_url = nil
@@ -124,7 +125,7 @@ module Pgbus
124
125
  @recurring_execution_retention = 7 * 24 * 3600 # 7 days
125
126
 
126
127
  @stats_enabled = true
127
- @stats_retention = 7 * 24 * 3600 # 7 days
128
+ @stats_retention = 30 * 24 * 3600 # 30 days
128
129
 
129
130
  @connects_to = nil
130
131
 
@@ -133,6 +134,7 @@ module Pgbus
133
134
  @web_per_page = 25
134
135
  @web_live_updates = true
135
136
  @web_data_source = nil
137
+ @insights_default_minutes = 30 * 24 * 60 # 30 days
136
138
  end
137
139
 
138
140
  def queue_name(name)
@@ -182,6 +184,10 @@ module Pgbus
182
184
  raise ArgumentError, "priority_levels must be an integer between 1 and 10"
183
185
  end
184
186
 
187
+ unless insights_default_minutes.is_a?(Integer) && insights_default_minutes.positive?
188
+ raise ArgumentError, "insights_default_minutes must be a positive integer"
189
+ end
190
+
185
191
  self
186
192
  end
187
193
 
data/lib/pgbus/engine.rb CHANGED
@@ -48,6 +48,10 @@ module Pgbus
48
48
  load File.expand_path("../tasks/pgbus_pgmq.rake", __dir__)
49
49
  end
50
50
 
51
+ initializer "pgbus.i18n" do
52
+ config.i18n.load_path += Dir[root.join("config", "locales", "**", "*.yml")]
53
+ end
54
+
51
55
  initializer "pgbus.web" do
52
56
  require "pgbus/web/authentication"
53
57
  require "pgbus/web/data_source"
data/lib/pgbus/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pgbus
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgbus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
@@ -115,6 +115,7 @@ files:
115
115
  - app/controllers/pgbus/events_controller.rb
116
116
  - app/controllers/pgbus/insights_controller.rb
117
117
  - app/controllers/pgbus/jobs_controller.rb
118
+ - app/controllers/pgbus/locale_controller.rb
118
119
  - app/controllers/pgbus/locks_controller.rb
119
120
  - app/controllers/pgbus/outbox_controller.rb
120
121
  - app/controllers/pgbus/processes_controller.rb
@@ -159,6 +160,19 @@ files:
159
160
  - app/views/pgbus/recurring_tasks/_tasks_table.html.erb
160
161
  - app/views/pgbus/recurring_tasks/index.html.erb
161
162
  - app/views/pgbus/recurring_tasks/show.html.erb
163
+ - config/i18n-tasks.yml
164
+ - config/locales/da.yml
165
+ - config/locales/de.yml
166
+ - config/locales/en.yml
167
+ - config/locales/es.yml
168
+ - config/locales/fi.yml
169
+ - config/locales/fr.yml
170
+ - config/locales/it.yml
171
+ - config/locales/ja.yml
172
+ - config/locales/nb.yml
173
+ - config/locales/nl.yml
174
+ - config/locales/pt.yml
175
+ - config/locales/sv.yml
162
176
  - config/routes.rb
163
177
  - exe/pgbus
164
178
  - lib/active_job/queue_adapters/pgbus_adapter.rb