# File lib/openshift-origin-controller/app/models/application.rb, line 1603
  def track_usage(gear, event, usage_type=UsageRecord::USAGE_TYPES[:gear_usage])
    if Rails.configuration.usage_tracking[:datastore_enabled]
      now = Time.now.utc
      uuid = OpenShift::Model.gen_uuid
      self.usage_records = [] unless usage_records
      usage_record = UsageRecord.new(event, user, now, uuid, usage_type)
      case usage_type
      when UsageRecord::USAGE_TYPES[:gear_usage]
        usage_record.gear_uuid = gear.uuid
        usage_record.gear_size = gear.node_profile
      when UsageRecord::USAGE_TYPES[:addtl_fs_gb]
        usage_record.gear_uuid = gear.uuid
        usage_record.addtl_fs_gb = gear.group_instance.addtl_fs_gb
      end
      self.usage_records << usage_record

      self.class.notify_observers(:track_usage, {:gear_uuid => gear.uuid, :login => gear.app.user.login, :event => event, :time => now, :uuid => uuid, :usage_type => usage_type, :gear_size => gear.node_profile, :addtl_fs_gb => gear.group_instance.addtl_fs_gb})
    end
    if Rails.configuration.usage_tracking[:syslog_enabled]
      usage_string = "User: #{user.login}  Event: #{event}"
      case usage_type
      when UsageRecord::USAGE_TYPES[:gear_usage]
        usage_string += "   Gear: #{gear.uuid}   Gear Size: #{gear.node_profile}"
      when UsageRecord::USAGE_TYPES[:addtl_fs_gb]
        usage_string += "   Gear: #{gear.uuid}   Addtl File System GB: #{gear.group_instance.addtl_fs_gb}"
      end
      begin
        Syslog.open('openshift_usage', Syslog::LOG_PID) { |s| s.notice usage_string }
      rescue Exception => e
        # Can't fail because of a secondary logging error
        Rails.logger.error e.message
        Rails.logger.error e.backtrace
      end
    end
  end