pghero 2.3.0 → 2.5.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pghero might be problematic. Click here for more details.

Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +85 -54
  3. data/README.md +20 -8
  4. data/app/assets/javascripts/pghero/Chart.bundle.js +16260 -15580
  5. data/app/assets/javascripts/pghero/application.js +8 -7
  6. data/app/assets/javascripts/pghero/chartkick.js +1973 -1325
  7. data/app/assets/javascripts/pghero/highlight.pack.js +2 -2
  8. data/app/assets/javascripts/pghero/jquery.js +3605 -4015
  9. data/app/assets/javascripts/pghero/nouislider.js +2479 -0
  10. data/app/assets/stylesheets/pghero/application.css +1 -1
  11. data/app/assets/stylesheets/pghero/nouislider.css +299 -0
  12. data/app/controllers/pg_hero/home_controller.rb +94 -35
  13. data/app/helpers/pg_hero/home_helper.rb +11 -0
  14. data/app/views/pg_hero/home/_live_queries_table.html.erb +14 -2
  15. data/app/views/pg_hero/home/connections.html.erb +9 -0
  16. data/app/views/pg_hero/home/index.html.erb +49 -10
  17. data/app/views/pg_hero/home/live_queries.html.erb +1 -1
  18. data/app/views/pg_hero/home/maintenance.html.erb +16 -2
  19. data/app/views/pg_hero/home/relation_space.html.erb +2 -2
  20. data/app/views/pg_hero/home/show_query.html.erb +3 -3
  21. data/app/views/pg_hero/home/space.html.erb +3 -3
  22. data/app/views/pg_hero/home/system.html.erb +4 -4
  23. data/app/views/pg_hero/home/tune.html.erb +2 -1
  24. data/lib/generators/pghero/templates/config.yml.tt +21 -1
  25. data/lib/pghero.rb +63 -15
  26. data/lib/pghero/database.rb +101 -17
  27. data/lib/pghero/methods/basic.rb +28 -7
  28. data/lib/pghero/methods/connections.rb +35 -0
  29. data/lib/pghero/methods/constraints.rb +30 -0
  30. data/lib/pghero/methods/indexes.rb +1 -1
  31. data/lib/pghero/methods/maintenance.rb +3 -1
  32. data/lib/pghero/methods/queries.rb +6 -2
  33. data/lib/pghero/methods/query_stats.rb +12 -3
  34. data/lib/pghero/methods/suggested_indexes.rb +1 -1
  35. data/lib/pghero/methods/system.rb +219 -23
  36. data/lib/pghero/stats.rb +1 -1
  37. data/lib/pghero/version.rb +1 -1
  38. metadata +6 -5
  39. data/app/assets/javascripts/pghero/jquery.nouislider.min.js +0 -31
  40. data/app/assets/stylesheets/pghero/jquery.nouislider.css +0 -165
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4874b649139843b2369ad67f3b6620b764fd83ffc61c06dfdc1a79955ebed872
4
- data.tar.gz: 60e7beb266ac32ca3d2dc9de5c1a57b3641c6eed6a754a1dc4c71e5cab4876c2
3
+ metadata.gz: 8e147c844a9c109baa794e9a3950e747539e2b15f19b781e9822edaed5f216ff
4
+ data.tar.gz: e18d81b6876148607514621d96b7b84f9436081f7eb4660008cbf3148578bbe5
5
5
  SHA512:
6
- metadata.gz: ee85c07246b1941f9cb1086f684ab79c43847f2435b8ed588bb188821c67e735e2362a048fe522ce732dd9f921d282c794b629f94ba8611820322b1a1b14312c
7
- data.tar.gz: a4de31e8bb1762fe2a7a0ed5f1aea4caca2e9f016f7d9c6c8c7515a1d6067e933d6bdf8d8f8a85615e9718d6aadef23d4b7db3ee00590372d340d0f256256ce8
6
+ metadata.gz: 1eea90a86822be5ee51a1b0b34e5e86297909a6bb41d4cf6589162285b8d2414b63c119cfba7d4df5b6f78d0b755ff517b47420c1ddd27a0cadcc51f0305f465
7
+ data.tar.gz: afc7bb09d979dada5636a8056ae1d692b88d8fc0cfda0af8d81f02a4a413499027953c4506c7a627da27c5c9b9f87aca1c030d76a0caa758773c6483c4ac171a
@@ -1,16 +1,47 @@
1
- ## 2.3.0
1
+ ## 2.5.1 (2020-06-23)
2
+
3
+ - Added support for `google-cloud-monitoring` >= 1
4
+ - Added support for `google-cloud-monitoring-v3`
5
+ - Fixed system stats not showing up in Rails 6 with environment variables
6
+
7
+ ## 2.5.0 (2020-05-24)
8
+
9
+ - Added system stats for Google Cloud SQL and Azure Database
10
+ - Added experimental `filter_data` option
11
+ - Localized times on maintenance page
12
+ - Improved connection pooling
13
+ - Improved error message for non-Postgres connections
14
+ - Fixed more deprecation warnings in Ruby 2.7
15
+
16
+ ## 2.4.2 (2020-04-16)
17
+
18
+ - Added `connections` method
19
+ - Fixed deprecation warnings in Ruby 2.7
20
+
21
+ ## 2.4.1 (2019-11-21)
22
+
23
+ - Fixed file permissions on `highlight.pack.js`
24
+
25
+ ## 2.4.0 (2019-11-11)
26
+
27
+ - Added `invalid_constraints` method
28
+ - Added `spec` option
29
+ - Added `override_csp` option
30
+ - Show all databases in Rails 6 when no config
31
+
32
+ ## 2.3.0 (2019-08-18)
2
33
 
3
34
  - Added support for Postgres 12 beta 1
4
35
  - Added methods and tasks for cleaning up stats
5
36
  - Dropped support for Rails < 5
6
37
 
7
- ## 2.2.1
38
+ ## 2.2.1 (2019-06-04)
8
39
 
9
40
  - Added `config_path` option
10
41
  - Fixed error with sequences when temporary tables
11
42
  - Fixed error when `config.action_controller.include_all_helpers = false`
12
43
 
13
- ## 2.2.0
44
+ ## 2.2.0 (2018-09-03)
14
45
 
15
46
  - Added check for connections idle in transaction
16
47
  - Improved duplicate index logic to detect more duplicates
@@ -18,64 +49,64 @@
18
49
  - Fixed error with large number of sequences
19
50
  - Bumped `total_connections_threshold` to 500 by default
20
51
 
21
- ## 2.1.1
52
+ ## 2.1.1 (2018-04-24)
22
53
 
23
54
  - Added `explain_timeout_sec` option
24
55
  - Fixed error with unparsable sequences
25
56
  - Stopped throwing `Same sequence name in multiple schemas` error
26
57
 
27
- ## 2.1.0
58
+ ## 2.1.0 (2017-11-30)
28
59
 
29
60
  - Fixed issue with sequences in different schema than table
30
61
  - No longer throw errors for unreadable sequences
31
62
  - Fixed replication lag for Amazon Aurora
32
63
  - Added `vacuum_progress` method
33
64
 
34
- ## 2.0.8
65
+ ## 2.0.8 (2017-11-12)
35
66
 
36
67
  - Added support for Postgres 10 replicas
37
68
  - Added support for pg_query 1.0.0
38
69
  - Show queries with insufficient privilege on live queries page
39
70
  - Default to table schema for sequences
40
71
 
41
- ## 2.0.7
72
+ ## 2.0.7 (2017-10-28)
42
73
 
43
74
  - Fixed issue with sequences in different schema than table
44
75
  - Fixed query details when multiple users have same query hash
45
76
  - Fixed error with invalid indexes in non-public schema
46
77
  - Raise error when capture query stats fails
47
78
 
48
- ## 2.0.6
79
+ ## 2.0.6 (2017-09-24)
49
80
 
50
81
  - More robust methods for multiple databases
51
82
  - Added support for `RAILS_RELATIVE_URL_ROOT` for Linux and Docker
52
83
 
53
- ## 2.0.5
84
+ ## 2.0.5 (2017-09-14)
54
85
 
55
86
  - Fixed error with sequences in different schemas
56
87
  - Better advice
57
88
 
58
- ## 2.0.4
89
+ ## 2.0.4 (2017-08-28)
59
90
 
60
91
  - Fixed `AssetNotPrecompiled` error
61
92
  - Do not silently ignore sequence danger when user does not have permissions
62
93
 
63
- ## 2.0.3
94
+ ## 2.0.3 (2017-08-22)
64
95
 
65
96
  - Added SQL to recreate invalid indexes
66
97
  - Added unused index marker to Space page
67
98
  - Fixed `capture_query_stats` on Postgres < 9.4
68
99
 
69
- ## 2.0.2
100
+ ## 2.0.2 (2017-08-09)
70
101
 
71
102
  - Fixed error with suggested indexes
72
103
  - Fixed error with `pg_replication_slots`
73
104
 
74
- ## 2.0.1
105
+ ## 2.0.1 (2017-08-08)
75
106
 
76
107
  - Fixed capture space stats
77
108
 
78
- ## 2.0.0
109
+ ## 2.0.0 (2017-08-08)
79
110
 
80
111
  New features
81
112
 
@@ -106,27 +137,27 @@ PgHero.with(:database2) { PgHero.running_queries }
106
137
  - Removed options from `connection_sources` method
107
138
  - Removed `locks` method
108
139
 
109
- ## 1.7.0
140
+ ## 1.7.0 (2017-05-01)
110
141
 
111
142
  - Fixed migrations for Rails 5.1+
112
143
  - Added `analyze`, `analyze_tables`, and `analyze_all` methods
113
144
  - Added `pghero:analyze` rake task
114
145
  - Fixed system stats display issue
115
146
 
116
- ## 1.6.5
147
+ ## 1.6.5 (2017-04-19)
117
148
 
118
149
  - Added support for Rails API
119
150
  - Added support for Amazon STS
120
151
  - Fixed replica check when `hot_standby = on` for primary
121
152
 
122
- ## 1.6.4
153
+ ## 1.6.4 (2017-03-12)
123
154
 
124
155
  - Only show connection charts if there are connections
125
156
  - Fixed duplicate indexes for multiple schemas
126
157
  - Fixed display issue for queries without word break
127
158
  - Removed maintenance tab for replicas
128
159
 
129
- ## 1.6.3
160
+ ## 1.6.3 (2017-02-09)
130
161
 
131
162
  - Added 10 second timeout for explain
132
163
  - No longer show autovacuum in long running queries
@@ -135,36 +166,36 @@ PgHero.with(:database2) { PgHero.running_queries }
135
166
  - Removed Chartkick gem dependency for charts
136
167
  - Fixed error when primary database is not PostgreSQL
137
168
 
138
- ## 1.6.2
169
+ ## 1.6.2 (2016-10-26)
139
170
 
140
171
  - Suggest GiST over GIN for `LIKE` queries again (seeing better performance)
141
172
 
142
- ## 1.6.1
173
+ ## 1.6.1 (2016-10-24)
143
174
 
144
175
  - Suggest GIN over GiST for `LIKE` queries
145
176
 
146
- ## 1.6.0
177
+ ## 1.6.0 (2016-10-20)
147
178
 
148
179
  - Removed mostly inactionable items (cache hit rate and index usage)
149
180
  - Restored duplicate indexes to homepage
150
181
  - Fixed issue with exact duplicate indexes
151
182
  - Way better `blocked_queries` method
152
183
 
153
- ## 1.5.3
184
+ ## 1.5.3 (2016-10-06)
154
185
 
155
186
  - Fixed Rails 5 error with multiple databases
156
187
  - Fixed duplicate index detection with expressions
157
188
 
158
- ## 1.5.2
189
+ ## 1.5.2 (2016-10-01)
159
190
 
160
191
  - Added support for PostgreSQL 9.6
161
192
  - Fixed incorrect query start for live queries in transactions
162
193
 
163
- ## 1.5.1
194
+ ## 1.5.1 (2016-09-27)
164
195
 
165
196
  - Better tune page for PostgreSQL 9.5
166
197
 
167
- ## 1.5.0
198
+ ## 1.5.0 (2016-09-21)
168
199
 
169
200
  - Added user to query stats (opt-in)
170
201
  - Added user to connection sources
@@ -172,52 +203,52 @@ PgHero.with(:database2) { PgHero.running_queries }
172
203
  - Added visualize button to explain page
173
204
  - Better charts for system stats
174
205
 
175
- ## 1.4.2
206
+ ## 1.4.2 (2016-09-06)
176
207
 
177
208
  - Fixed `wrong constant name` error in development
178
209
  - Added different periods for system stats
179
210
 
180
- ## 1.4.1
211
+ ## 1.4.1 (2016-08-25)
181
212
 
182
213
  - Removed external assets
183
214
 
184
- ## 1.4.0
215
+ ## 1.4.0 (2016-08-24)
185
216
 
186
217
  - Updated for Rails 5
187
218
  - Fixed error when `pg_stat_statements` not enabled in `shared_libaries`
188
219
 
189
- ## 1.3.2
220
+ ## 1.3.2 (2016-08-03)
190
221
 
191
222
  - Improved performance of query stats
192
223
 
193
- ## 1.3.1
224
+ ## 1.3.1 (2016-07-10)
194
225
 
195
226
  - Improved grouping of query stats
196
227
  - Added `blocked_queries` method
197
228
 
198
- ## 1.3.0
229
+ ## 1.3.0 (2016-06-27)
199
230
 
200
231
  - Added query hash for better query stats grouping
201
232
  - Added sequence danger check
202
233
  - Added `capture_query_stats` option to config
203
234
 
204
- ## 1.2.4
235
+ ## 1.2.4 (2016-05-06)
205
236
 
206
237
  - Fixed user methods
207
238
 
208
- ## 1.2.3
239
+ ## 1.2.3 (2016-04-20)
209
240
 
210
241
  - Added schema to queries
211
242
  - Fixed deprecation warning on Rails 5
212
243
  - Fix for pg_query >= 0.9.0
213
244
 
214
- ## 1.2.2
245
+ ## 1.2.2 (2016-01-20)
215
246
 
216
247
  - Better suggested indexes
217
248
  - Removed duplicate indexes noise
218
249
  - Fixed partial and expression indexes
219
250
 
220
- ## 1.2.1
251
+ ## 1.2.1 (2016-01-07)
221
252
 
222
253
  - Better suggested indexes
223
254
  - Removed unused indexes noise
@@ -226,7 +257,7 @@ PgHero.with(:database2) { PgHero.running_queries }
226
257
  - Fixed suggested indexes for replicas
227
258
  - Fixed issue w/ suggested indexes where same table name exists in multiple schemas
228
259
 
229
- ## 1.2.0
260
+ ## 1.2.0 (2015-12-31)
230
261
 
231
262
  - Added suggested indexes
232
263
  - Added duplicate indexes
@@ -236,38 +267,38 @@ PgHero.with(:database2) { PgHero.running_queries }
236
267
  - Added configurable cache hit rate threshold
237
268
  - Show all connections in connections tab
238
269
 
239
- ## 1.1.4
270
+ ## 1.1.4 (2015-12-08)
240
271
 
241
272
  - Added check for transaction ID wraparound failure
242
273
  - Added check for autovacuum danger
243
274
 
244
- ## 1.1.3
275
+ ## 1.1.3 (2015-10-21)
245
276
 
246
277
  - Fixed system stats
247
278
 
248
- ## 1.1.2
279
+ ## 1.1.2 (2015-10-18)
249
280
 
250
281
  - Added invalid indexes
251
282
  - Fixed RDS stats for aws-sdk 2
252
283
 
253
- ## 1.1.1
284
+ ## 1.1.1 (2015-07-23)
254
285
 
255
286
  - Added `tables` option to `create_user` method
256
287
  - Added ability to sort query stats by average_time and calls
257
288
  - Only show unused indexes with no index scans in UI
258
289
 
259
- ## 1.1.0
290
+ ## 1.1.0 (2015-06-26)
260
291
 
261
292
  - Added historical query stats
262
293
 
263
- ## 1.0.1
294
+ ## 1.0.1 (2015-04-17)
264
295
 
265
296
  - Fixed connection bad errors
266
297
  - Restore previous connection properly for nested with blocks
267
298
  - Added analyze button to explain page
268
299
  - Added explain button to live queries page
269
300
 
270
- ## 1.0.0
301
+ ## 1.0.0 (2015-04-11)
271
302
 
272
303
  - More platforms!
273
304
  - Support for multiple databases!
@@ -277,61 +308,61 @@ PgHero.with(:database2) { PgHero.running_queries }
277
308
  - Added `kill_long_running_queries` method
278
309
  - Added env vars for settings
279
310
 
280
- ## 0.1.10
311
+ ## 0.1.10 (2015-03-20)
281
312
 
282
313
  - Added connections page
283
314
  - Added message for insufficient privilege
284
315
  - Added `ip` to `connection_sources`
285
316
 
286
- ## 0.1.9
317
+ ## 0.1.9 (2015-01-25)
287
318
 
288
319
  - Added tune page
289
320
  - Removed minimum size for unused indexes
290
321
 
291
- ## 0.1.8
322
+ ## 0.1.8 (2015-01-19)
292
323
 
293
324
  - Added `total_percent` to `query_stats`
294
325
  - Added `total_connections`
295
326
  - Added `connection_stats` for Amazon RDS
296
327
 
297
- ## 0.1.7
328
+ ## 0.1.7 (2014-11-12)
298
329
 
299
330
  - Added support for pg_stat_statments on Amazon RDS
300
331
  - Added `long_running_query_sec`, `slow_query_ms` and `slow_query_calls` options
301
332
 
302
- ## 0.1.6
333
+ ## 0.1.6 (2014-10-09)
303
334
 
304
335
  - Added methods to create and drop users
305
336
  - Added locks
306
337
 
307
- ## 0.1.5
338
+ ## 0.1.5 (2014-09-03)
308
339
 
309
340
  - Added system stats for Amazon RDS
310
341
  - Added code to remove unused indexes
311
342
  - Require unused indexes to be at least 1 MB
312
343
  - Use `pg_terminate_backend` to ensure queries are killed
313
344
 
314
- ## 0.1.4
345
+ ## 0.1.4 (2014-08-31)
315
346
 
316
347
  - Reduced long running queries threshold to 1 minute
317
348
  - Fixed duration
318
349
  - Fixed wrapping
319
350
  - Friendlier dependencies for JRuby
320
351
 
321
- ## 0.1.3
352
+ ## 0.1.3 (2014-08-04)
322
353
 
323
354
  - Reverted `query_stats_available?` fix
324
355
 
325
- ## 0.1.2
356
+ ## 0.1.2 (2014-08-03)
326
357
 
327
358
  - Fixed `query_stats_available?` method
328
359
 
329
- ## 0.1.1
360
+ ## 0.1.1 (2014-08-03)
330
361
 
331
362
  - Added explain
332
363
  - Added query stats
333
364
  - Fixed CSS issues
334
365
 
335
- ## 0.1.0
366
+ ## 0.1.0 (2014-07-23)
336
367
 
337
368
  - First major release
data/README.md CHANGED
@@ -10,30 +10,42 @@ A performance dashboard for Postgres
10
10
 
11
11
  ---
12
12
 
13
- [![Screenshot](https://pghero.dokkuapp.com/assets/screenshot-5a368624ada55b32e7668c96926840f9.png)](https://pghero.dokkuapp.com/)
13
+ [![Screenshot](https://pghero.dokkuapp.com/assets/pghero-f8abe426e6bf54bb7dba87b425bb809740ebd386208bcd280a7e802b053a1023.png)](https://pghero.dokkuapp.com/)
14
+
15
+ :tangerine: Battle-tested at [Instacart](https://www.instacart.com/opensource)
16
+
17
+ [![Build Status](https://travis-ci.org/ankane/pghero.svg?branch=master)](https://travis-ci.org/ankane/pghero) [![Docker Pulls](https://img.shields.io/docker/pulls/ankane/pghero)](https://hub.docker.com/repository/docker/ankane/pghero)
14
18
 
15
19
  ## Installation
16
20
 
17
- PgHero is available as a Rails engine, Linux package, and Docker image.
21
+ PgHero is available as a Docker image, Linux package, and Rails engine.
18
22
 
19
23
  Select your preferred method of installation to get started.
20
24
 
21
- - [Rails](guides/Rails.md)
22
- - [Linux](guides/Linux.md)
23
25
  - [Docker](guides/Docker.md)
26
+ - [Linux](guides/Linux.md)
27
+ - [Rails](guides/Rails.md)
24
28
 
25
29
  ## Related Projects
26
30
 
31
+ - [Dexter](https://github.com/ankane/dexter) - The automatic indexer for Postgres
27
32
  - [PgBouncerHero](https://github.com/kwent/pgbouncerhero) - A dashboard for PgBouncer
28
33
  - [pgsync](https://github.com/ankane/pgsync) - Sync Postgres data between databases
29
34
  - [pgslice](https://github.com/ankane/pgslice) - Postgres partitioning as easy as pie
30
35
 
31
36
  ## Credits
32
37
 
33
- A big thanks to [Craig Kerstiens](http://www.craigkerstiens.com/2013/01/10/more-on-postgres-performance/) and [Heroku](https://blog.heroku.com/archives/2013/5/10/more_insight_into_your_database_with_pgextras) for the initial queries and [Bootswatch](https://github.com/thomaspark/bootswatch) for the theme :clap:
38
+ A big thanks to [Craig Kerstiens](http://www.craigkerstiens.com/2013/01/10/more-on-postgres-performance/) and [Heroku](https://blog.heroku.com/archives/2013/5/10/more_insight_into_your_database_with_pgextras) for the initial queries and [Bootswatch](https://github.com/thomaspark/bootswatch) for the theme.
34
39
 
35
- Know a bit about PostgreSQL? [Suggestions](https://github.com/ankane/pghero/issues) are greatly appreciated.
40
+ ## History
36
41
 
37
- :tangerine: Battle-tested at [Instacart](https://www.instacart.com/opensource)
42
+ View the [changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md)
43
+
44
+ ## Contributing
45
+
46
+ Everyone is encouraged to help improve this project. Here are a few ways you can help:
38
47
 
39
- [![Build Status](https://travis-ci.org/ankane/pghero.svg?branch=master)](https://travis-ci.org/ankane/pghero)
48
+ - [Report bugs](https://github.com/ankane/pghero/issues)
49
+ - Fix bugs and [submit pull requests](https://github.com/ankane/pghero/pulls)
50
+ - Write, clarify, or fix documentation
51
+ - Suggest or add new features