Top Level Namespace

Defined Under Namespace

Modules: ApplicationHelper, BrowseModelsControl, CmseditHelper, DcApplicationHelper, DcInternals, DcPageConcern, DcPageControl, DcPieceConcern, DcPolicyRuleConcern, DcSiteConcern, DcUserConcern, DesignElementSettingsControl, DrgCms, DrgcmsFormFields Classes: CmseditController, DcAd, DcAdRenderer, DcAdStat, DcApplicationController, DcBigMenu, DcBigMenuRenderer, DcBigTable, DcBigTableLocale, DcBigTableValue, DcCaptchaRenderer, DcCategory, DcCommonController, DcCommonRenderer, DcDesign, DcDummy, DcFilter, DcFolderPermission, DcIdent, DcJournal, DcKeyValueStore, DcLink, DcMainController, DcMemory, DcMenu, DcMenuItem, DcMenuRenderer, DcPage, DcPageRenderer, DcPart, DcPartRenderer, DcPermission, DcPiece, DcPieceRenderer, DcPolicy, DcPolicyRole, DcPolicyRule, DcPoll, DcPollItem, DcPollRenderer, DcRenderer, DcSimpleMenu, DcSimpleMenuItem, DcSimpleMenuRenderer, DcSite, DcStat, DcUser, DcUserRole, DcVisit, NewDrgFormGenerator

Instance Method Summary collapse

Instance Method Details

#analyze_404Object

Prints links which resultet in 404 error.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/tasks/log_statistics.rb', line 51

def analyze_404
  selected_files.each do |file_name|
    result = [file_name[0,6], 0, 0]
    url = ''
    File.readlines(file_name).each do |line|
      if m = /Started(.*?)for/.match(line)
        url = m[1]
      end
      if m = /404/.match(line)
        p url.gsub('"','')
      end
    end
  end
end

#initObject

Init some internal vars



16
17
18
19
20
21
22
23
24
# File 'lib/tasks/log_statistics.rb', line 16

def init
  @by_day = {}
  if File.exist?('result.txt')
    File.readlines('result.txt').each do |line|
      a = line.chomp.split("\t")
      @by_day[a.first] = a
    end
  end  
end

#response_by_daysObject

Collects total number of requests and respond time for calculating average response time.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tasks/log_statistics.rb', line 30

def response_by_days
  selected_files.each do |file_name|
    key = file_name[0,6]
    next if @by_day[key]
    result = [key, 0, 0, 0]
    File.readlines(file_name).each do |line|
      next unless line.match 'Completed 200 OK in'
      time = $'.split('ms').first.strip.to_i
      result[1] += 1
      result[2] += time
    end
# average    
    result[3] += result[2]/result[1]
    p result
    @by_day[key] = result
  end
end

#selected_filesObject

Return list of selected files.



9
10
11
# File 'lib/tasks/log_statistics.rb', line 9

def selected_files
  Dir["#{ARGV.first}*.log"] 
end