class Ingest
Public Class Methods
new(company_name, access_id, access_key)
click to toggle source
# 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
Public Instance Methods
generate_token(events)
click to toggle source
# File lib/ingest.rb, line 18 def generate_token(events) timestamp = DateTime.now.strftime('%Q') signature = Base64.strict_encode64( OpenSSL::HMAC.hexdigest( OpenSSL::Digest.new('sha256'), @access_key, "POST#{timestamp}#{events.to_json}/log/ingest" ) ) "LMv1 #{@access_id}:#{signature}:#{timestamp}" end
send_logs(events)
click to toggle source
# 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