Class: Ingest
- Inherits:
-
Object
- Object
- Ingest
- Defined in:
- lib/ingest.rb
Instance Method Summary collapse
- #generate_token(events) ⇒ Object
-
#initialize(company_name, access_id, access_key) ⇒ Ingest
constructor
A new instance of Ingest.
- #send_logs(events) ⇒ Object
Constructor Details
#initialize(company_name, access_id, access_key) ⇒ Ingest
Returns a new instance of Ingest.
12 13 14 15 16 |
# File 'lib/ingest.rb', line 12 def initialize(company_name, access_id, access_key) @company_name = company_name @access_id = access_id @access_key = access_key end |
Instance Method Details
#generate_token(events) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ingest.rb', line 18 def generate_token(events) = DateTime.now.strftime('%Q') signature = Base64.strict_encode64( OpenSSL::HMAC.hexdigest( OpenSSL::Digest.new('sha256'), @access_key, "POST#{}#{events.to_json}/log/ingest" ) ) "LMv1 #{@access_id}:#{signature}:#{}" end |
#send_logs(events) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/ingest.rb', line 30 def send_logs(events) url = "https://#{@company_name}.logicmonitor.com/rest/log/ingest" body = events.to_json uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri) request['authorization'] = generate_token(events) request['Content-type'] = "application/json" request.body = body http.request(request) end |