@@ -109,60 +109,72 @@ def start
109109 end
110110
111111 def on_timer
112- record = { "url" => @url }
112+ body = nil
113+ record = nil
113114
114115 begin
115- request_options = { method : @http_method , url : @url , timeout : @timeout , headers : @_request_headers }
116-
117- request_options [ :proxy ] = @proxy if @proxy
118- request_options [ :user ] = @user if @user
119- request_options [ :password ] = @password if @password
120-
121- request_options [ :verify_ssl ] = @verify_ssl
122- if @verify_ssl and @ca_path and @ca_file
123- request_options [ :ssl_ca_path ] = @ca_path
124- request_options [ :ssl_ca_file ] = @ca_file
125- end
126-
127116 res = RestClient ::Request . execute request_options
117+ record , body = get_record ( res )
128118
129- record [ "status" ] = res . code
130- record [ "body" ] = res . body
131-
132- record [ "header" ] = { } unless @response_headers . empty?
133- @response_headers . each do |section |
134- name = section [ "header" ]
135- symbolize_name = name . downcase . gsub ( /-/ , '_' ) . to_sym
136-
137- record [ "header" ] [ name ] = res . headers [ symbolize_name ]
138- end
139119 rescue StandardError => err
120+ record = { "url" => @url , "error" => err . message }
140121 if err . respond_to? :http_code
141122 record [ "status" ] = err . http_code || 0
142123 else
143124 record [ "status" ] = 0
144125 end
145-
146- record [ "error" ] = err . message
147126 end
148127
149128 record_time = Engine . now
150-
151- if !@status_only && record [ "body" ] != nil
152- @parser . parse ( record [ "body" ] ) do |time , message |
153- record [ "message" ] = message
154- record_time = time
155- end
156- end
157-
158- record . delete ( "body" )
129+ record = parse ( record , body )
159130 router . emit ( @tag , record_time , record )
160131 end
161132
162133 def shutdown
163134 super
164135 end
165136
137+ private
138+ def request_options
139+ options = { method : @http_method , url : @url , timeout : @timeout , headers : @_request_headers }
140+
141+ options [ :proxy ] = @proxy if @proxy
142+ options [ :user ] = @user if @user
143+ options [ :password ] = @password if @password
144+
145+ options [ :verify_ssl ] = @verify_ssl
146+ if @verify_ssl and @ca_path and @ca_file
147+ options [ :ssl_ca_path ] = @ca_path
148+ options [ :ssl_ca_file ] = @ca_file
149+ end
150+
151+ return options
152+ end
153+
154+ def get_record ( response )
155+ body = response . body
156+ record = { "url" => @url , "status" => response . code }
157+ record [ "header" ] = { } unless @response_headers . empty?
158+ @response_headers . each do |section |
159+ name = section [ "header" ]
160+ symbolize_name = name . downcase . gsub ( /-/ , '_' ) . to_sym
161+
162+ record [ "header" ] [ name ] = response . headers [ symbolize_name ]
163+ end
164+
165+ return record , body
166+ end
167+
168+ def parse ( record , body )
169+ if !@status_only && body != nil
170+ @parser . parse ( body ) do |time , message |
171+ record [ "message" ] = message
172+ record_time = time
173+ end
174+ end
175+
176+ return record
177+ end
166178 end
167179 end
168180end
0 commit comments