diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..bb49219 --- /dev/null +++ b/TODO.md @@ -0,0 +1,3 @@ + +extend should extend into the future plus 1 day not plus 1due date +due date should be set on checkout diff --git a/app/controllers/authentications_controller.rb b/app/controllers/authentications_controller.rb index ee1cb35..3cd7295 100644 --- a/app/controllers/authentications_controller.rb +++ b/app/controllers/authentications_controller.rb @@ -4,12 +4,12 @@ class AuthenticationsController < ApplicationController before_action :ensure_not_authenticated, only: [:new, :create] def new - StatsD.increment("login_page_viewed") + # # StatsD.increment("login_page_viewed") # Measure the time taken to process the rendering of the new page - StatsD.measure('view.render_login_page') do + # StatsD.measure('view.render_login_page') do if session[:user_id] - StatsD.increment("already_logged_in") + # StatsD.increment("already_logged_in") redirect_to overview_path else render "new" @@ -18,32 +18,32 @@ def new end def create - StatsD.increment("login_attempt") + # StatsD.increment("login_attempt") # Measure the time taken for the authentication process - StatsD.measure('auth.authenticate_user') do + # StatsD.measure('auth.authenticate_user') do @user = User.find_by(email: auth_params[:email]) if @user&.authenticate(auth_params[:password]) - StatsD.increment("login_successful") + # StatsD.increment("login_successful") session[:user_id] = @user.id - StatsD.set('users.unique_logged_in', @user.id) # Track unique users logging in + # StatsD.set('users.unique_logged_in', @user.id) # Track unique users logging in redirect_to overview_path else - StatsD.increment("login_failed") + # StatsD.increment("login_failed") flash[:danger] = "Login failed. Please try again." render "new" - end - end + # end + # end end def destroy # Measure the time taken to process the logout action - StatsD.measure('auth.process_logout') do - StatsD.increment("logout") + # StatsD.measure('auth.process_logout') do + # StatsD.increment("logout") session[:user_id] = nil - StatsD.event('User Logged Out', "User with ID #{session[:user_id]} logged out") # Log an event for logout + # StatsD.event('User Logged Out', "User with ID #{session[:user_id]} logged out") # Log an event for logout redirect_to login_path - end + # end end private diff --git a/app/controllers/borrowers_controller.rb b/app/controllers/borrowers_controller.rb index bac78c6..a71c95a 100644 --- a/app/controllers/borrowers_controller.rb +++ b/app/controllers/borrowers_controller.rb @@ -5,25 +5,25 @@ class BorrowersController < ApplicationController def index # Measure the time taken to retrieve and display all borrowers - StatsD.measure('borrowers.index_request') do + # StatsD.measure('borrowers.index_request') do @borrowers = Borrower.all # Example gauge for tracking the number of borrowers - StatsD.gauge('borrowers.count', @borrowers.count) + # StatsD.gauge('borrowers.count', @borrowers.count) - StatsD.increment("borrowers_index_viewed") + # StatsD.increment("borrowers_index_viewed") end end def show # Measure the time taken to find and display a specific borrower - StatsD.measure('borrowers.show_request') do + # StatsD.measure('borrowers.show_request') do @borrower = Borrower.find(params[:id]) # Log an event when a specific borrower page is viewed - StatsD.event('Borrower Page Viewed', "User viewed borrower page with ID #{params[:id]}") + # StatsD.event('Borrower Page Viewed', "User viewed borrower page with ID #{params[:id]}") - StatsD.increment("borrower_page_viewed") - end - end + # StatsD.increment("borrower_page_viewed") + # end + # end end diff --git a/app/controllers/concerns/authenticatable.rb b/app/controllers/concerns/authenticatable.rb index d817674..7554411 100644 --- a/app/controllers/concerns/authenticatable.rb +++ b/app/controllers/concerns/authenticatable.rb @@ -18,42 +18,42 @@ def current_user end def ensure_authenticated - StatsD.measure('auth.ensure_authenticated') do + # StatsD.measure('auth.ensure_authenticated') do unless is_authenticated? flash[:warning] = "You need to login to view that page." - StatsD.event('Authentication Failure', 'User not authenticated, redirecting to login') + # StatsD.event('Authentication Failure', 'User not authenticated, redirecting to login') redirect_to main_app.login_path end - end + # end end def ensure_not_authenticated - StatsD.measure('auth.ensure_not_authenticated') do + # StatsD.measure('auth.ensure_not_authenticated') do if is_authenticated? flash[:info] = "You are already logged in." - StatsD.event('Already Authenticated', 'User already logged in, redirecting to root') + # StatsD.event('Already Authenticated', 'User already logged in, redirecting to root') redirect_to root_path end - end + # end end def ensure_admin - StatsD.measure('auth.ensure_admin') do + # StatsD.measure('auth.ensure_admin') do unless current_user&.admin? flash[:danger] = "You do not have permission to view that page." - StatsD.event('Admin Access Denied', 'Non-admin user attempted to access admin page') + # StatsD.event('Admin Access Denied', 'Non-admin user attempted to access admin page') redirect_to root_path end - end + # end end def ensure_super_admin - StatsD.measure('auth.ensure_super_admin') do + # StatsD.measure('auth.ensure_super_admin') do unless current_user&.super_admin? flash[:danger] = "You do not have permission to view that page." - StatsD.event('Super Admin Access Denied', 'Non-super-admin user attempted to access super admin page') + # StatsD.event('Super Admin Access Denied', 'Non-super-admin user attempted to access super admin page') redirect_to root_path end end - end + # end end diff --git a/app/controllers/loaners_controller.rb b/app/controllers/loaners_controller.rb index 34b1a8d..b103432 100644 --- a/app/controllers/loaners_controller.rb +++ b/app/controllers/loaners_controller.rb @@ -6,126 +6,127 @@ class LoanersController < ApplicationController before_action :ensure_super_admin, only: [:new, :create] def new - StatsD.increment("loaner_new_viewed") + # StatsD.increment("loaner_new_viewed") # Measure the time taken to render the 'new' loaner form - StatsD.measure('view.render_new_loaner') do + # StatsD.measure('view.render_new_loaner') do @loaner = Loaner.new - end + # end end def create - StatsD.increment("loaner_create_attempt") + # StatsD.increment("loaner_create_attempt") # Measure the time taken to create a new loaner - StatsD.measure('loaner.create') do + # StatsD.measure('loaner.create') do @loaner = Loaner.new(loaner_params) if @loaner.save - StatsD.increment("loaner_created") + # StatsD.increment("loaner_created") redirect_to @loaner, notice: 'Loaner was successfully created.' else - StatsD.increment("loaner_create_failed") + # StatsD.increment("loaner_create_failed") render :new end - end + # end end def list # Measure the time taken to retrieve and display all loaners - StatsD.measure('loaners.list_request') do + # StatsD.measure('loaners.list_request') do @loaners = Loaner.all - StatsD.increment("loaners_list_viewed") - end + # StatsD.increment("loaners_list_viewed") + # end end def show - StatsD.increment("loaner_page_viewed") + # StatsD.increment("loaner_page_viewed") # Measure the time taken to find and display the loaner - StatsD.measure('loaner.show_request') do + # StatsD.measure('loaner.show_request') do @loaner - end + # end end def return - StatsD.increment("loaner_return_attempt") - StatsD.measure('loaner.return_action') do + # StatsD.increment("loaner_return_attempt") + # StatsD.measure('loaner.return_action') do if @loaner.present? @loaner.mark_as_returned - StatsD.increment("loaner_returned") + # StatsD.increment("loaner_returned") redirect_to loaners_path, notice: "Asset checked in successfully." else - StatsD.increment("loaner_return_failed") + # StatsD.increment("loaner_return_failed") redirect_to loaners_path, alert: "Loaner not found." end - end + # end end def enable - StatsD.increment("loaner_enable_attempt") - StatsD.measure('loaner.enable_action') do + # StatsD.increment("loaner_enable_attempt") + # StatsD.measure('loaner.enable_action') do if @loaner.present? @loaner.mark_as_enabled - StatsD.increment("loaner_enabled") + # StatsD.increment("loaner_enabled") redirect_to loaners_path, notice: "Asset marked as enabled successfully." else - StatsD.increment("loaner_enable_failed") + # StatsD.increment("loaner_enable_failed") redirect_to loaners_path, alert: "Loaner not found." end - end + # end end def disable - StatsD.increment("loaner_disable_attempt") - StatsD.measure('loaner.disable_action') do + # StatsD.increment("loaner_disable_attempt") + # StatsD.measure('loaner.disable_action') do if @loaner.present? @loaner.mark_as_disabled - StatsD.increment("loaner_disabled") + # StatsD.increment("loaner_disabled") redirect_to loaners_path, notice: "Asset marked as disabled successfully." else - StatsD.increment("loaner_disable_failed") + # StatsD.increment("loaner_disable_failed") redirect_to loaners_path, alert: "Loaner not found." end - end + # end end def broken - StatsD.increment("loaner_broken_attempt") - StatsD.measure('loaner.broken_action') do + # StatsD.increment("loaner_broken_attempt") + # StatsD.measure('loaner.broken_action') do if @loaner.present? @loaner.mark_as_broken - StatsD.increment("loaner_broken") + # StatsD.increment("loaner_broken") redirect_to loaners_path, notice: "Asset marked as broken successfully." else - StatsD.increment("loaner_broken_failed") + # StatsD.increment("loaner_broken_failed") redirect_to loaners_path, alert: "Loaner not found." end - end + # end end def repair - StatsD.increment("loaner_repair_attempt") - StatsD.measure('loaner.repair_action') do + # StatsD.increment("loaner_repair_attempt") + # StatsD.measure('loaner.repair_action') do if @loaner.present? @loaner.mark_as_repaired - StatsD.increment("loaner_repaired") + # StatsD.increment("loaner_repaired") redirect_to loaners_path, notice: "Asset marked as repaired successfully." else - StatsD.increment("loaner_repair_failed") + # StatsD.increment("loaner_repair_failed") redirect_to loaners_path, alert: "Loaner not found." end - end + # end end private # Use callbacks to share common setup or constraints between actions. def set_loaner - StatsD.measure('loaner.find') do + # StatsD.measure('loaner.find') do @loaner = Loaner.find(params[:id]) - end + # end end def loaner_params params.require(:loaner).permit(:asset_tag, :serial_number, :status) end + end diff --git a/app/controllers/loans_controller.rb b/app/controllers/loans_controller.rb index f109bfa..62f5c38 100644 --- a/app/controllers/loans_controller.rb +++ b/app/controllers/loans_controller.rb @@ -4,79 +4,79 @@ class LoansController < ApplicationController before_action :ensure_authenticated, only: [:create, :list, :pending, :out, :checkout, :checkin] def new - StatsD.increment("loan_new_viewed") + # StatsD.increment("loan_new_viewed") # Measure the time taken to render the 'new' loan form - StatsD.measure('view.render_new_loan') do + # StatsD.measure('view.render_new_loan') do @loan = Loan.new - end + # end end def create borrower_email = loan_params[:borrower_email] - StatsD.increment("loan_create_attempt") + # StatsD.increment("loan_create_attempt") # Measure the time taken to find or create a borrower and save a loan - StatsD.measure('loan.create_process') do + # StatsD.measure('loan.create_process') do @borrower = Borrower.find_or_create_by(email: borrower_email) @loan = @borrower.loans.build(loan_params.except(:borrower_email)) if @loan.save - StatsD.increment("loan_created") + # StatsD.increment("loan_created") flash[:success] = "Submitted Successfully!" redirect_to loans_path else - StatsD.increment("loan_create_failed") + # StatsD.increment("loan_create_failed") flash.now[:danger] = "FAILED TO SUBMIT! Please check with a tech." render :new end - end + # end end def list - StatsD.measure('loan.list_request') do + # StatsD.measure('loan.list_request') do @loans = Loan.all.order(created_at: :desc) - StatsD.increment("loans_list_viewed") - end + # StatsD.increment("loans_list_viewed") + # end end def pending - StatsD.measure('loan.pending_request') do + # StatsD.measure('loan.pending_request') do @loans = Loan.where(status: "pending").order(created_at: :desc) - StatsD.increment("loans_pending_viewed") - end + # StatsD.increment("loans_pending_viewed") + # end end def out - StatsD.measure('loan.out_request') do + # StatsD.measure('loan.out_request') do @loans = Loan.where(status: "out").order(created_at: :desc) - StatsD.increment("loans_out_viewed") - end + # StatsD.increment("loans_out_viewed") + # end end def checkout - StatsD.increment("loan_checkout_attempt") + # StatsD.increment("loan_checkout_attempt") # Measure the time taken to process the checkout action - StatsD.measure('loan.checkout_process') do + # StatsD.measure('loan.checkout_process') do @loan = Loan.find(params[:id]) loaner = Loaner.find_by(asset_tag: params[:asset_tag]) if loaner.nil? - StatsD.increment("loan_checkout_failed") + # StatsD.increment("loan_checkout_failed") flash[:danger] = "Loaner not found." redirect_to overview_path and return end # check if loaner is marked as active if loaner.active === false - StatsD.increment("loan_checkout_failed") + # StatsD.increment("loan_checkout_failed") flash[:danger] = "Loaner is not active." redirect_to overview_path and return end unless loaner.available? - StatsD.increment("loan_checkout_failed") + # StatsD.increment("loan_checkout_failed") flash[:danger] = "Loaner is not available." redirect_to overview_path and return end @@ -85,45 +85,45 @@ def checkout loaner.loan! @loan.update!(loaner_id: loaner.id) @loan.loan! - StatsD.increment("loan_checked_out") + # StatsD.increment("loan_checked_out") flash[:success] = "Loan successful." rescue AASM::InvalidTransition => e - StatsD.increment("loan_checkout_failed") + # StatsD.increment("loan_checkout_failed") flash[:danger] = "Loan transition failed: #{e.message}" end redirect_to overview_path - end + # end end def checkin - StatsD.increment("loan_checkin_attempt") + # StatsD.increment("loan_checkin_attempt") # Measure the time taken to process the check-in action - StatsD.measure('loan.checkin_process') do + # StatsD.measure('loan.checkin_process') do @loan = Loan.find(params[:id]) loaner = @loan.loaner if loaner.nil? - StatsD.increment("loan_checkin_failed") + # StatsD.increment("loan_checkin_failed") flash[:danger] = "Loaner not found." redirect_to overview_path return end if loaner.available? - StatsD.increment("loan_checkin_failed") + # StatsD.increment("loan_checkin_failed") flash[:danger] = "Loaner is already available." redirect_to overview_path return else loaner.return! @loan.return! - StatsD.increment("loan_checked_in") + # StatsD.increment("loan_checked_in") flash[:success] = "Check-in successful." redirect_to overview_path end - end + # end end def extend diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb index c2b8202..4661464 100644 --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -6,11 +6,11 @@ class MainController < ApplicationController before_action :ensure_super_admin, only: [:import] def scanner - StatsD.increment("scanner_viewed") + # StatsD.increment("scanner_viewed") end def overview - StatsD.measure('overview.load_time') do + # StatsD.measure('overview.load_time') do @loans = Loan.all @loaners = Loaner.all @borrowers = Borrower.all @@ -18,37 +18,37 @@ def overview @pending_loans = Loan.where(status: 'pending') @loaners_out = Loaner.includes(:current_loan).where(status: 'loaned') - StatsD.increment("overview_viewed") - end + # StatsD.increment("overview_viewed") + # end end def temp @borrower = Borrower.find(1) - StatsD.increment("temp_action_triggered") - StatsD.measure('temp.mail_sending') do + # StatsD.increment("temp_action_triggered") + # StatsD.measure('temp.mail_sending') do BorrowerMailer.notify_repair_ready(@borrower).deliver_now BorrowerMailer.notify_loaner_disabled(@borrower).deliver_now BorrowerMailer.return_reminder(@borrower).deliver_now - end + # end # Consider adding an event to log this action in a more descriptive way if needed. end def import - StatsD.increment("import_viewed") + # StatsD.increment("import_viewed") end def process_import - StatsD.increment("import_attempt") + # StatsD.increment("import_attempt") if params[:csv_file].present? csv_file = params[:csv_file].path - StatsD.measure('csv_processing_time') do + # StatsD.measure('csv_processing_time') do process_csv(csv_file) - end - StatsD.increment("import_successful") + # end + # StatsD.increment("import_successful") flash[:notice] = 'CSV file imported successfully.' redirect_to overview_path else - StatsD.increment("import_failed") + # StatsD.increment("import_failed") flash[:alert] = 'Please select a CSV file to import.' redirect_to import_path end @@ -57,18 +57,18 @@ def process_import private def process_csv(file_path) - StatsD.increment("csv_processing_attempt") + # StatsD.increment("csv_processing_attempt") row_count = 0 - StatsD.measure('csv_processing_time') do + # StatsD.measure('csv_processing_time') do CSV.foreach(file_path, headers: true) do |row| row_count += 1 # Create a new loaner (this needs to be adjusted based on your actual model attributes) Loaner.create!(asset_tag: row['asset_tag'], serial_number: row['serial_number'], loaner_id: 100) - StatsD.increment("csv_row_processed") + # StatsD.increment("csv_row_processed") end - end + # end # Optionally set a gauge to reflect the number of rows processed - StatsD.gauge('csv_row_count', row_count) + # StatsD.gauge('csv_row_count', row_count) end end diff --git a/app/mailers/borrower_mailer.rb b/app/mailers/borrower_mailer.rb index 4bb0b5b..edbb5e3 100644 --- a/app/mailers/borrower_mailer.rb +++ b/app/mailers/borrower_mailer.rb @@ -2,44 +2,47 @@ class BorrowerMailer < ApplicationMailer default from: 'ithelper@jaspermayone.com' def notify_repair_ready(borrower) - StatsD.increment("email.notify_repair_ready_sent") - StatsD.measure('email.notify_repair_ready_delivery_time') do + # StatsD.increment("email.notify_repair_ready_sent") + # StatsD.measure('email.notify_repair_ready_delivery_time') do @borrower = borrower mail( - to: @borrower.email, + # to: @borrower.email, + to: "jgriffith@huusd.org", subject: 'Your device has been repaired.', track_opens: "true", track_clicks: "true", message_stream: "outbound" ) - end + # end end def notify_loaner_disabled(borrower) - StatsD.increment("email.notify_loaner_disabled_sent") - StatsD.measure('email.notify_loaner_disabled_delivery_time') do + # StatsD.increment("email.notify_loaner_disabled_sent") + # StatsD.measure('email.notify_loaner_disabled_delivery_time') do @borrower = borrower mail( - to: @borrower.email, + # to: @borrower.email, + to: "jgriffith@huusd.org", subject: 'Your device has been disabled.', track_opens: "true", track_clicks: "true", message_stream: "outbound" ) - end + # end end def return_reminder(borrower) - StatsD.increment("email.return_reminder_sent") - StatsD.measure('email.return_reminder_delivery_time') do - @borrower = borrower + # StatsD.increment("email.return_reminder_sent") + # StatsD.measure('email.return_reminder_delivery_time') do + # @borrower = borrower mail( - to: @borrower.email, + # to: @borrower.email, + to: "jgriffith@huusd.org", subject: 'Please return your device.', track_opens: "true", track_clicks: "true", message_stream: "outbound" ) end - end + # end end diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 3039e69..a97e113 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -2,8 +2,8 @@ class UserMailer < ApplicationMailer default from: 'ithelper@jaspermayone.com' def notify_unreturned_after_seven_days(loan) - StatsD.increment("email.notify_unreturned_after_seven_days_sent") - StatsD.measure('email.notify_unreturned_after_seven_days_delivery_time') do + # StatsD.increment("email.notify_unreturned_after_seven_days_sent") + # StatsD.measure('email.notify_unreturned_after_seven_days_delivery_time') do @loan = loan @borrower = Borrower.find(@loan.borrower_id) mail( @@ -12,12 +12,12 @@ def notify_unreturned_after_seven_days(loan) track_opens: "true", message_stream: "outbound" ) - end + # end end def hello - StatsD.increment("email.hello_sent") - StatsD.measure('email.hello_delivery_time') do + # StatsD.increment("email.hello_sent") + # StatsD.measure('email.hello_delivery_time') do mail( subject: "Hello from Postmark", to: "me@jaspermayone.com", @@ -26,5 +26,5 @@ def hello message_stream: "outbound" ) end - end + # end end diff --git a/app/models/authentication.rb b/app/models/authentication.rb index a8e94e0..3cdda02 100644 --- a/app/models/authentication.rb +++ b/app/models/authentication.rb @@ -14,54 +14,54 @@ class Authentication < ApplicationRecord after_destroy :measure_destruction def initialize(session, user) - StatsD.increment("authentication.initialized") - StatsD.measure("authentication.initialization_time") do + # StatsD.increment("authentication.initialized") + # StatsD.measure("authentication.initialization_time") do session[:current_authentication] = self @user_id = user.id - end + # end end def destroy(session) - StatsD.increment("authentication.destroyed") - StatsD.measure("authentication.destruction_time") do + # StatsD.increment("authentication.destroyed") + # StatsD.measure("authentication.destruction_time") do session[:current_authentication] = nil @user_id = nil - end + # end end def user - StatsD.increment("authentication.user_lookup") - StatsD.measure("authentication.user_lookup_time") do + # StatsD.increment("authentication.user_lookup") + # StatsD.measure("authentication.user_lookup_time") do User.find_by(id: @user_id) - end + # end end def user=(user) - StatsD.increment("authentication.user_set") - StatsD.measure("authentication.user_set_time") do + # StatsD.increment("authentication.user_set") + # StatsD.measure("authentication.user_set_time") do @user_id = user.id - end + # end end private def measure_creation - StatsD.measure("authentication.creation_time") do + # StatsD.measure("authentication.creation_time") do track_creation - end + # end end def track_creation - StatsD.increment("authentication.created") + # StatsD.increment("authentication.created") end def measure_destruction - StatsD.measure("authentication.destruction_time") do + # StatsD.measure("authentication.destruction_time") do track_destruction - end + # end end def track_destruction - StatsD.increment("authentication.deleted") + # StatsD.increment("authentication.deleted") end end diff --git a/app/models/borrower.rb b/app/models/borrower.rb index 62f6655..fb28b92 100644 --- a/app/models/borrower.rb +++ b/app/models/borrower.rb @@ -14,18 +14,18 @@ class StudentEmailValidator < ActiveModel::Validator def validate(record) # Increment a counter for validation attempts - StatsD.increment("email_validation_attempts") + # StatsD.increment("email_validation_attempts") if record.email.blank? # Log and increment counter for blank email errors - StatsD.increment("email_validation_blank_errors") + # StatsD.increment("email_validation_blank_errors") record.errors.add(:email, "can't be blank") elsif record.email =~ /^[a-zA-Z][a-zA-Z]+[0-9]{4}@huusd\.org$/ # Log successful validation - StatsD.increment("email_validation_success") + # StatsD.increment("email_validation_success") else # Log and increment counter for format errors - StatsD.increment("email_validation_format_errors") + # StatsD.increment("email_validation_format_errors") record.errors.add(:email, 'must be in the format: first initial, last name, and 4-digit graduation year (e.g., jdoe2024@huusd.org)') end end @@ -41,17 +41,17 @@ class Borrower < ApplicationRecord after_destroy :measure_destruction def full_name - StatsD.increment("borrower.full_name_accessed") + # StatsD.increment("borrower.full_name_accessed") "#{first_name} #{last_name}" end def name - StatsD.increment("borrower.name_accessed") + # StatsD.increment("borrower.name_accessed") "#{full_name}" end def flame - StatsD.increment("borrower.flame_accessed") + # StatsD.increment("borrower.flame_accessed") if flagged "🚩 #{name}" else @@ -60,7 +60,7 @@ def flame end def grade_level - StatsD.increment("borrower.grade_level_calculated") + # StatsD.increment("borrower.grade_level_calculated") current_month = Time.now.month current_year = Time.now.year graduation_year = self.graduation_year @@ -93,13 +93,13 @@ def grade_level private def measure_parse_email - StatsD.measure("borrower.parse_email_time") do + # StatsD.measure("borrower.parse_email_time") do parse_email - end + # end end def parse_email - StatsD.increment("borrower.parse_email_started") + # StatsD.increment("borrower.parse_email_started") # Split the email address before the "@" symbol local_part = email.split('@').first @@ -111,36 +111,36 @@ def parse_email self.last_name = name_part[1..-1].capitalize self.graduation_year = graduation_year - StatsD.increment("borrower.parse_email_completed") + # StatsD.increment("borrower.parse_email_completed") end def measure_creation - StatsD.measure("borrower.creation_time") do + # StatsD.measure("borrower.creation_time") do track_creation end end def track_creation - StatsD.increment("borrower.created") + # StatsD.increment("borrower.created") end def measure_update - StatsD.measure("borrower.update_time") do + # StatsD.measure("borrower.update_time") do track_update - end + # end end def track_update - StatsD.increment("borrower.updated") + # StatsD.increment("borrower.updated") end def measure_destruction - StatsD.measure("borrower.destruction_time") do + # StatsD.measure("borrower.destruction_time") do track_destruction - end + # end end def track_destruction - StatsD.increment("borrower.deleted") - end + # StatsD.increment("borrower.deleted") + # end end diff --git a/app/models/loan.rb b/app/models/loan.rb index a9c5614..3a3fc8b 100644 --- a/app/models/loan.rb +++ b/app/models/loan.rb @@ -33,11 +33,11 @@ class Loan < ApplicationRecord validates :reason, presence: true def extend - StatsD.measure("loan.extend_time") do - StatsD.increment("loan.extended") + # StatsD.measure("loan.extend_time") do + # StatsD.increment("loan.extended") self.due_date += 1.day self.save - end + # end end aasm :column => 'status' do @@ -51,48 +51,48 @@ def extend transitions from: :pending, to: :out after do - StatsD.measure("loan.loan_time") do - StatsD.increment("loan.loaned") + # StatsD.measure("loan.loan_time") do + # StatsD.increment("loan.loaned") self.update(loaned_at: Time.now) if self.reason == "device_repair" - StatsD.increment("loan.reason.device_repair") + # StatsD.increment("loan.reason.device_repair") elsif self.reason == "charging" - StatsD.increment("loan.reason.charging") + # StatsD.increment("loan.reason.charging") self.update(due_date: Date.today + 2.hours) elsif self.reason == "forgot_at_home" - StatsD.increment("loan.reason.forgot_at_home") + # StatsD.increment("loan.reason.forgot_at_home") self.update(due_date: Date.today + 1.day) else - StatsD.increment("loan.reason.unknown") + # StatsD.increment("loan.reason.unknown") self.update(due_date: Date.today + 1.day) end due_date_time = self.due_date.present? ? self.due_date.to_time : nil if due_date_time.present? - StatsD.measure("loan.jobs_scheduling_time") do + # StatsD.measure("loan.jobs_scheduling_time") do DisableDeviceJob.set(wait_until: due_date_time).perform_later(self.id) # Schedule reminder jobs (1..7).each do |day| - StatsD.increment("loan.reminder_job_scheduled", tags: ["day:#{day}"]) - RemindBorrowerToReturnLoanerJob.set(wait_until: due_date_time + day.days).perform_later(self.id) + # # StatsD.increment("loan.reminder_job_scheduled", tags: ["day:#{day}"]) + # RemindBorrowerToReturnLoanerJob.set(wait_until: due_date_time + day.days).perform_later(self.id) end - StatsD.increment("loan.borrower_unreturned_after_seven_days_job_scheduled") + # StatsD.increment("loan.borrower_unreturned_after_seven_days_job_scheduled") BorrowerUnreturnedAfterSevenDaysJob.set(wait_until: due_date_time + 8.days).perform_later(self.id) - end + # end else Rails.logger.warn "Due date is nil for loan #{self.id}. DisableDeviceJob will not be scheduled." end - end + # end end end end def log_status_change - StatsD.increment("loan.status_change", tags: ["from:#{aasm.from_state}", "to:#{aasm.to_state}", "event:#{aasm.current_event}"]) + # StatsD.increment("loan.status_change", tags: ["from:#{aasm.from_state}", "to:#{aasm.to_state}", "event:#{aasm.current_event}"]) Rails.logger.info "Changing from #{aasm.from_state} to #{aasm.to_state} (event: #{aasm.current_event})" end diff --git a/app/models/loaner.rb b/app/models/loaner.rb index 667df21..3b6f6b4 100644 --- a/app/models/loaner.rb +++ b/app/models/loaner.rb @@ -27,18 +27,18 @@ class AssetTagValidator < ActiveModel::Validator def validate(record) # Increment a counter for validation attempts - StatsD.increment("asset_tag_validation_attempts") + # StatsD.increment("asset_tag_validation_attempts") if record.asset_tag.blank? # Log and increment counter for blank asset tag errors - StatsD.increment("asset_tag_validation_blank_errors") + # StatsD.increment("asset_tag_validation_blank_errors") record.errors.add(:asset_tag, "can't be blank") elsif record.asset_tag =~ /^[0-9]{6}$/ # Log successful validation - StatsD.increment("asset_tag_validation_success") + # StatsD.increment("asset_tag_validation_success") else # Log and increment counter for format errors - StatsD.increment("asset_tag_validation_format_errors") + # StatsD.increment("asset_tag_validation_format_errors") record.errors.add(:asset_tag, 'must be a 6-digit number') end end @@ -82,7 +82,7 @@ def chrome_enable transitions from: :available, to: :loaned after do - StatsD.increment("loaner.loaned") + # StatsD.increment("loaner.loaned") assign_current_loan end end @@ -91,7 +91,7 @@ def chrome_enable transitions from: :loaned, to: :available after do - StatsD.increment("loaner.returned") + # StatsD.increment("loaner.returned") self.loan.returned_at = Time.now self.loan.save! end @@ -102,7 +102,7 @@ def chrome_enable after do chrome_disable() - StatsD.increment("loaner.disabled") + # StatsD.increment("loaner.disabled") end end @@ -111,7 +111,7 @@ def chrome_enable after do chrome_enable() - StatsD.increment("loaner.enabled") + # StatsD.increment("loaner.enabled") end end @@ -119,7 +119,7 @@ def chrome_enable transitions from: [:available, :loaned], to: :maintenance after do - StatsD.increment("loaner.broken") + # StatsD.increment("loaner.broken") end end @@ -127,13 +127,13 @@ def chrome_enable transitions from: :maintenance, to: :available after do - StatsD.increment("loaner.repaired") + # StatsD.increment("loaner.repaired") end end end def log_status_change - StatsD.increment("loaner.status_change", tags: ["from:#{aasm.from_state}", "to:#{aasm.to_state}", "event:#{aasm.current_event}"]) + # StatsD.increment("loaner.status_change", tags: ["from:#{aasm.from_state}", "to:#{aasm.to_state}", "event:#{aasm.current_event}"]) Rails.logger.info "Changing from #{aasm.from_state} to #{aasm.to_state} (event: #{aasm.current_event})" end @@ -149,22 +149,22 @@ def log_status_change private def set_loaner_id - StatsD.measure("loaner.set_loaner_id_time") do + # StatsD.measure("loaner.set_loaner_id_time") do max_id = Loaner.maximum(:loaner_id) || 0 self.loaner_id = max_id + 1 - StatsD.increment("loaner.id_set") - end + # StatsD.increment("loaner.id_set") + # end end def assign_current_loan - StatsD.measure("loaner.assign_current_loan_time") do + # StatsD.measure("loaner.assign_current_loan_time") do current_loan = loans.pending.first if current_loan self.current_loan_id = current_loan.id save! - StatsD.increment("loaner.current_loan_assigned") + # StatsD.increment("loaner.current_loan_assigned") current_loan.loan! end - end + # end end end diff --git a/app/models/user.rb b/app/models/user.rb index e1f33ee..e565dad 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -32,28 +32,28 @@ class User < ApplicationRecord private def track_user_creation - StatsD.increment("user.created") - StatsD.gauge("user.count", User.count) + # StatsD.increment("user.created") + # StatsD.gauge("user.count", User.count) Rails.logger.info "User created: #{email}" end def measure_user_creation - StatsD.measure("user.creation_time") do + # StatsD.measure("user.creation_time") do yield end end def track_user_update - StatsD.increment("user.updated") + # StatsD.increment("user.updated") if saved_change_to_role? - StatsD.increment("user.role_changed", tags: ["from:#{saved_change_to_role[0]}", "to:#{saved_change_to_role[1]}"]) + # StatsD.increment("user.role_changed", tags: ["from:#{saved_change_to_role[0]}", "to:#{saved_change_to_role[1]}"]) end Rails.logger.info "User updated: #{email}" end def measure_user_update - StatsD.measure("user.update_time") do - yield - end - end + # StatsD.measure("user.update_time") do + # yield + # end + # end end diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 130ebbe..6172031 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc @@ -1 +1 @@ -WIQKMBTqPo/PSNyfI2Wto/5GEJEb5u4TSEIDrUeRcs4Wbcc9ntM1v2whowCzAuLC54DQIGUKoQQkeM0rCu7tiVKbEpq3TL2VjJGxWkyKMMIiVf6lQVR1aK+i/X8pBWp7iJ7E3Wa92zWbc8CljyLZ6ThVHGaz3ZnYQ7FScdmd7qSvNFkXLmUupReS0JT0Daa4VhuOhETtMiJwVvY/J28pHBB9O502t7BK6+2cmP2WjNjMfXH1O0CvNR+/DIXUr9Q6j4OaR4RQLJSNJvlrJrJpnuLpBmAI8voKfUsgc8+Nw0s/XoFv4PvqQVIilI5IMAhGTklwD9wA4xsdmLE+Dlf3aUi2vqwH/xbGWspDxIX9tZUljDxVweBdnHOEh8KSnFxmuFflcqrYlmhr7XSoIKEBpu0P53Zr3O6OWD7BEHpGiBkdYc5nXEEOpYQglnZ9PYUIm92O2jStkyvNDz7XaTETwzaTDnNI7wjVP/ZUzLH8uCUzRaY4Xu6jumKX2njtSsUE0aIztJllozGYwZY/eY/5uauaTNKPfa2Ilbh3cPd7jI9ZUSMAlPRQY1PqzQy3bGq6fvUpadxFNCum0M5462LwJJdqMiVERNAj3iJ9Ou3HtmPCXcMpaI+B/m1PXVD0iUGE3d8e4cHJpElysjjiwOcaqwNCkoQoDLd3mGeSrtj02AM7Ul+FBrzFNqpqr6OuL7jflOndSrGHcvgVJG8crFJtuKrvOFu0KeP1pjO5h8wyLhb/nLe+/ek0e/gQFJb7Cf9irHMPybiKL5GvAhLJEl+GL2cS1LuCADHEhL9Eb5wOtyZZjwXJvtKEiN5dEJL7GSSC6+GLOLcmglmw/KJxUeT9fGBmgvctDpaycqnYyNjbO9nASvN4Y3duA3gUTj2WGYvvAq7paqbZjlfwWcDybbgp6EvB9meQ7wOQj3zr1zYBbZGgaNRvg1k5+jkDrv6DTtENoAyKFJMgTS9dUyrreesX+ZKIgRdPvPYLhQ4LmCM37aQf7zu7WJxIgHQqaugdrx/sANumZfhPcSoMjak1EPve62maq5X7VLBbgp33mkfrgzWdV5u53bIzvqnSEbForT+8QAse1QW8lKB8tEUMkmZAdau/22o4/Jhti9ZxkKYiScaH7BNbxcfWTu+Ofv67gylDfJyCI43nzXsfeLiGyTW4xdNOzECJXkSxGLi2FsiSHx0fbyaPhgjdJ2fnWdnQtrdWdd08joJTpk1VoF4vDNBiFBbtFCt/U6vxbvFTHfnuSAgHGOIytYXS+FRjEnKvFSCqYAt9LCzSU3UbMh4oyTsub3byRTZbLsTPjtS6LTM+BCtgHRoYttSETTwWUJoK5G8+gaiY+t5t/Kwt0s2Gc7uzzCj7YamqGADzFRZX8G0c2bJuhaHSJC+x79BbZGXMIjj/RqmHynEOeN0xbZfnI02L81fix3yTHz0QLn8uKrFQJIMnmX1v96j6hGpFnv72tQ0Mvc04oThAymCC6rd9AMLwKwheVTeLlg7MAGt5US/Lz4nthaaI2mBe2w2rQUzeeYU8OPk+qIg51AMjsw==--d0T5/HWT20jIsQZV--XHza72l2LI4hDL3lSoWtKw== \ No newline at end of file +UysqRVIJ7TpEfqLigMMffdNqOd6+ZpTGKPnXohIQx8PM1xF7J+nvqDDJ2gYN4n9mGnZL2/3wQqYQ6BMEYz9iZdg9LIehj2Z0AQ73v378O6PhAiYDRWzbb2dCtm5s0CjlJJpVt0ksAar+Iq9GVLONIz+f0qz2aenQH8pvwPKkNh3iGfUaeQM6LBmKXVV7/uLAOElkyag/j6JibKijagGZKt7rIWD/GN8RYI55xWsIbzS6Ypc4AQKa+yJBZfAMmQz+nSqJMXiwz7+oHSS8dyAAkq7MJEkn2uLUvr0OiIZ17QU2Ta5DnBcXVjA6t9OGG0KaxcPoOy239Z6qDVY/PG/U623gKDAlw+ZsV5FWu2F7k1Y6MVTr4zDDZOC2//vWy545nKilAgop76kTnc1yiYhNpK6SOOGukmfBicr20Az5qFblKN1tePgZT0zZsc9nSpHavvn23iGDemkZDjdKrpD8GUNjkynQDPoib+HE3+GKRul+2WSfqxx9lPUjhNhF+hRtv0vzswLFr7nzI8xCkWNv7FWm924g2tXwv2DuqWouy4EWHkpYVdjVeKx6gYJW9iT2eCdI0PMhfQISJrQ+szGf7QBbnUlIvayZNSkRvD914ipqVXCLbZEXlDuPURMt+YlHVycwjtfPOFkGalBzMg3y1n0jFJbW/Qad0b0wjmc4rC0v7N40LskNockEhvKf2K6IBSR8tlrbTT6UY9FUhDcPF806dzk4SQM7wuqJj2wXZXWgfkl5J8ZHX/6vcIVBNmbRg5uVMjHwwxc6Fj1dCY2WUCV4E+D+XDfkAy1oCCjDtweruEKNJF5+wemV+79WAVz7PW1cQzt6MSoTL0wA0l/+QR6aBN8frCcOcL44Lzia6ePls5fIDHo6YFp6JYa8ndWJ3it+rnhn+dvd6fQ3t6glaMkwq36b89dMrDQRAaf9+BqtuDNBLteVh4WrS/+ybEeyFPyAELIl+hulMso4uGC0x/p/Q0sRX2aPLkHfh+WRGHUbRHH6KksXp0n4ZzWPDX2rEsKKU5pLWGdiZwVNs6ooRORqeHvqkNNXx1nme4ssB9Go130MS6lDautJaQJzk6gtWPudeu1i3aLpwnZQ3r6djG5or2wWyHG48642GPNuoOk+hVVH7aTTgeexs5XYUiydl5f41hRD3d1dNF+57dHyt5oZpIdgw5fHtM0wJC5VmiBDbECqEF+MhYkG3iEpfVBvUZ4+3E+nxjKcYWNtFyYMpOPTXPdVrP+j+9A5opyYMdHtLQo3kUBd/TROhewikpXJ7A5Ii7cvD5l40GDivfC9KdE4E15h2ymfc5bbmm4XLtvq/ihWAhcaBBU7c7TwNG2YvX3oFMZfeKCMgVbj6fvkBLUftIAUVPfs+qrlxA10C5dpH6BJUFLn0gH3RNTdwUCEIu3q3kUBtJV95wEhC3eaHSJb54qxOXb786uqwtuwzJQ6s4cVv/Jsdy8Y2vYJhYFQo3tF8mQuUYNjA8SLXFbBqpa7tDD19+DR4M2rxYq64NsPoxaDma/9ZPRumpFzO5L1dteGqQyeYAavJA==--A2Wxq6g+QY8ecphA--3sk3OeOru6n5t3kUPAEk6g== \ No newline at end of file diff --git a/config/environments/production.rb b/config/environments/production.rb index d9e1e07..49e7e7e 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -18,7 +18,7 @@ # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true + config.require_master_key = true # Disable serving static files from `public/`, relying on NGINX/Apache to do so instead. # config.public_file_server.enabled = false diff --git a/config/initializers/statsd.rb b/config/initializers/statsd.rb index 5bc6d68..56e341c 100644 --- a/config/initializers/statsd.rb +++ b/config/initializers/statsd.rb @@ -1,10 +1,10 @@ Rails.application.configure do - # StatsD config here + # # StatsD config here ENV["STATSD_ENV"] = "production" # This won't send data unless set to production ENV["STATSD_ADDR"] = Rails.application.credentials.dig(:telem, :endpoint) ENV["STATSD_PREFIX"] = "#{Rails.env}.ittool" - StatsD::Instrument::Environment.setup + # StatsD::Instrument::Environment.setup - StatsD.increment("startup", 1) + # StatsD.increment("startup", 1) end