Track historical space stats in PgHero to determine PostgreSQL growth (#8906)
This commit is contained in:
		
							parent
							
								
									d4b7d75968
								
							
						
					
					
						commit
						7f9dd92a27
					
				
					 4 changed files with 37 additions and 1 deletions
				
			
		
							
								
								
									
										11
									
								
								app/workers/scheduler/pghero_scheduler.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								app/workers/scheduler/pghero_scheduler.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| # frozen_string_literal: true | ||||
| 
 | ||||
| class Scheduler::PgheroScheduler | ||||
|   include Sidekiq::Worker | ||||
| 
 | ||||
|   sidekiq_options unique: :until_executed, retry: 0 | ||||
| 
 | ||||
|   def perform | ||||
|     PgHero.capture_space_stats | ||||
|   end | ||||
| end | ||||
|  | @ -33,3 +33,6 @@ | |||
|   backup_cleanup_scheduler: | ||||
|     cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *' | ||||
|     class: Scheduler::BackupCleanupScheduler | ||||
|   pghero_scheduler: | ||||
|     cron: '0 0 * * *' | ||||
|     class: Scheduler::PgheroScheduler | ||||
|  |  | |||
							
								
								
									
										13
									
								
								db/migrate/20181007025445_create_pghero_space_stats.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								db/migrate/20181007025445_create_pghero_space_stats.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| class CreatePgheroSpaceStats < ActiveRecord::Migration[5.2] | ||||
|   def change | ||||
|     create_table :pghero_space_stats do |t| | ||||
|       t.text :database | ||||
|       t.text :schema | ||||
|       t.text :relation | ||||
|       t.integer :size, limit: 8 | ||||
|       t.timestamp :captured_at | ||||
|     end | ||||
| 
 | ||||
|     add_index :pghero_space_stats, [:database, :captured_at] | ||||
|   end | ||||
| end | ||||
							
								
								
									
										11
									
								
								db/schema.rb
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								db/schema.rb
									
										
									
									
									
								
							|  | @ -10,7 +10,7 @@ | |||
| # | ||||
| # It's strongly recommended that you check this file into your version control system. | ||||
| 
 | ||||
| ActiveRecord::Schema.define(version: 2018_09_29_222014) do | ||||
| ActiveRecord::Schema.define(version: 2018_10_07_025445) do | ||||
| 
 | ||||
|   # These are extensions that must be enabled in order to support this database | ||||
|   enable_extension "plpgsql" | ||||
|  | @ -372,6 +372,15 @@ ActiveRecord::Schema.define(version: 2018_09_29_222014) do | |||
|     t.index ["uid"], name: "index_oauth_applications_on_uid", unique: true | ||||
|   end | ||||
| 
 | ||||
|   create_table "pghero_space_stats", force: :cascade do |t| | ||||
|     t.text "database" | ||||
|     t.text "schema" | ||||
|     t.text "relation" | ||||
|     t.bigint "size" | ||||
|     t.datetime "captured_at" | ||||
|     t.index ["database", "captured_at"], name: "index_pghero_space_stats_on_database_and_captured_at" | ||||
|   end | ||||
| 
 | ||||
|   create_table "preview_cards", force: :cascade do |t| | ||||
|     t.string "url", default: "", null: false | ||||
|     t.string "title", default: "", null: false | ||||
|  |  | |||
		Reference in a new issue