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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue