Class: SumoLogic::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/sumologic.rb

Instance Method Summary collapse

Constructor Details

#initialize(access_id = nil, access_key = nil, endpoint = SumoLogic::URL) ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sumologic.rb', line 12

def initialize(access_id=nil, access_key=nil, endpoint=SumoLogic::URL)
  @endpoint = endpoint
  @session  = Faraday
  headers   = {'Content-Type' => 'application/json', 'Accept' => 'application/json'}
  @session  = Faraday.new(:url => @endpoint, :headers => headers) do |conn|
    conn.basic_auth(access_id, access_key)
    conn.use      :cookie_jar
    conn.request  :json
    conn.response :json, :content_type => 'application/json'
    conn.adapter  Faraday.default_adapter
  end
end

Instance Method Details

#dashboard(dashboard_id) ⇒ Object



64
65
66
67
68
69
# File 'lib/sumologic.rb', line 64

def dashboard(dashboard_id)
  r = @session.get do |req|
    req.url 'dashboards/' + dashboard_id.to_s
  end
  return r.body.has_key?('dashboard') ? r.body['dashboard'] : nil
end

#dashboard_data(dashboard_id) ⇒ Object



71
72
73
74
75
76
# File 'lib/sumologic.rb', line 71

def dashboard_data(dashboard_id)
  r = @session.get do |req|
    req.url 'dashboards/' + dashboard_id.to_s + '/data'
  end
  return r.body.has_key?('dashboardMonitorDatas') ? r.body['dashboardMonitorDatas'] : nil
end

#dashboards(monitors = false) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/sumologic.rb', line 55

def dashboards(monitors=false)
  params = {:dashboards => monitors}
  r = @session.get do |req|
    req.url 'dashboards'
    req.params = params
  end
  return r.body.has_key?('dashboards') ? r.body['dashboards'] : nil
end

#search(query, from_time = nil, to_time = nil, time_zone = 'UTC') ⇒ Object



25
26
27
28
29
30
31
# File 'lib/sumologic.rb', line 25

def search(query, from_time=nil, to_time=nil, time_zone='UTC')
  params = {:q => query, :from => from_time, :to => to_time, :tz => time_zone}
  r = @session.get do |req|
    req.url 'logs/search'
    req.params = params
  end    
end

#search_job(query, from_time = nil, to_time = nil, time_zone = 'UTC') ⇒ Object



33
34
35
36
37
38
39
# File 'lib/sumologic.rb', line 33

def search_job(query, from_time=nil, to_time=nil, time_zone='UTC')
  params = {:query => query, :from => from_time, :to => to_time, :timeZone => time_zone}
  r = @session.post do |req|
    req.url 'search/jobs'
    req.body = MultiJson.encode(params)
  end
end

#search_job_records(search_job, limit = nil, offset = 0) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/sumologic.rb', line 47

def search_job_records(search_job, limit=nil, offset=0)
  params = {:limit => limit, :offset => offset}
  r = @session.get do |req|
    req.url 'search/jobs/' + search_job['id'].to_s + '/records'
    req.params = params
  end
end

#search_job_status(search_job = {}) ⇒ Object



41
42
43
44
45
# File 'lib/sumologic.rb', line 41

def search_job_status(search_job={})
  r = @session.get do |req|
    req.url 'search/jobs/' + search_job['id'].to_s
  end
end