Class: TDAnalytics::DebugConsumer
- Inherits:
-
Object
- Object
- TDAnalytics::DebugConsumer
- Defined in:
- lib/thinkingdata-ruby/debug_consumer.rb
Overview
DebugConsumer 逐条、同步地向服务端上报数据DebugConsumer 会返回详细的报错信息,建议在集成阶段先使用 DebugConsumer 调试接口
Instance Method Summary collapse
- #add(message) ⇒ Object
-
#initialize(server_url, app_id, write_data = true) ⇒ DebugConsumer
constructor
A new instance of DebugConsumer.
- #request(uri, form_data) ⇒ Object
Constructor Details
#initialize(server_url, app_id, write_data = true) ⇒ DebugConsumer
Returns a new instance of DebugConsumer.
9 10 11 12 13 14 |
# File 'lib/thinkingdata-ruby/debug_consumer.rb', line 9 def initialize(server_url, app_id, write_data = true) @server_uri = URI.parse(server_url) @server_uri.path = '/data_debug' @app_id = app_id @write_data = write_data end |
Instance Method Details
#add(message) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/thinkingdata-ruby/debug_consumer.rb', line 16 def add() puts .to_json form_data = {"data" => .to_json, "appid" => @app_id, "dryRun" => @write_data ? "0" : "1", "source" => "server"} begin response_code, response_body = request(@server_uri, form_data) rescue => e raise ConnectionError.new("Could not connect to TA server, with error \"#{e.}\".") end result = {} if response_code.to_i == 200 begin result = JSON.parse(response_body.to_s) rescue JSON::JSONError raise ServerError.new("Could not interpret TA server response: '#{response_body}'") end end if result['errorLevel'] != 0 raise ServerError.new("Could not write to TA, server responded with #{response_code} returning: '#{response_body}'") end end |
#request(uri, form_data) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/thinkingdata-ruby/debug_consumer.rb', line 39 def request(uri, form_data) request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data(form_data) client = Net::HTTP.new(uri.host, uri.port) client.use_ssl = uri.scheme === 'https' ? true : false client.open_timeout = 10 client.continue_timeout = 10 client.read_timeout = 10 client.ssl_timeout = 10 response = client.request(request) [response.code, response.body] end |