class Dogapi::V1::ServiceLevelObjectiveService

Implements Service Level Objectives endpoints

Constants

API_VERSION

Public Instance Methods

can_delete_service_level_objective(slo_ids) click to toggle source
    # File lib/dogapi/v1/service_level_objective.rb
103 def can_delete_service_level_objective(slo_ids)
104   params = {}
105   params[:ids] = if slo_ids.is_a? Array
106                    slo_ids.join(',')
107                  else
108                    slo_ids
109                  end
110   request(Net::HTTP::Get, "/api/#{API_VERSION}/slo/can_delete", params, nil, false)
111 end
create_service_level_objective(type, slo_name, thresholds, options = {}) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
13 def create_service_level_objective(type, slo_name, thresholds, options = {})
14   body = {
15     type: type,
16     name: slo_name,
17     thresholds: thresholds
18   }
19 
20   symbolized_options = Dogapi.symbolized_access(options)
21   if type.to_s == 'metric'
22     body[:query] = {
23       numerator: symbolized_options[:numerator],
24       denominator: symbolized_options[:denominator]
25     }
26   else
27     body[:monitor_search] = symbolized_options[:monitor_search] if symbolized_options[:monitor_search]
28     body[:monitor_ids] = symbolized_options[:monitor_ids] if symbolized_options[:monitor_ids]
29     body[:groups] = symbolized_options[:groups] if symbolized_options[:groups]
30   end
31   body[:tags] = symbolized_options[:tags] if symbolized_options[:tags]
32   body[:description] = symbolized_options[:description] if symbolized_options[:description]
33 
34   request(Net::HTTP::Post, "/api/#{API_VERSION}/slo", nil, body, true)
35 end
delete_many_service_level_objective(slo_ids) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
83 def delete_many_service_level_objective(slo_ids)
84   body = {
85     ids: slo_ids
86   }
87   request(Net::HTTP::Delete, "/api/#{API_VERSION}/slo/", nil, body, true)
88 end
delete_service_level_objective(slo_id) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
79 def delete_service_level_objective(slo_id)
80   request(Net::HTTP::Delete, "/api/#{API_VERSION}/slo/#{slo_id}", nil, nil, false)
81 end
delete_timeframes_service_level_objective(ops) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
90 def delete_timeframes_service_level_objective(ops)
91   # ops is a hash of slo_id: [<timeframe>] to delete
92   request(Net::HTTP::Post, "/api/#{API_VERSION}/slo/bulk_delete", nil, ops, true)
93 end
get_service_level_objective(slo_id) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
62 def get_service_level_objective(slo_id)
63   request(Net::HTTP::Get, "/api/#{API_VERSION}/slo/#{slo_id}", nil, nil, false)
64 end
get_service_level_objective_history(slo_id, from_ts, to_ts) click to toggle source
    # File lib/dogapi/v1/service_level_objective.rb
 95 def get_service_level_objective_history(slo_id, from_ts, to_ts)
 96   params = {
 97     from_ts: from_ts,
 98     to_ts: to_ts
 99   }
100   request(Net::HTTP::Get, "/api/#{API_VERSION}/slo/#{slo_id}/history", params, nil, false)
101 end
search_service_level_objective(slo_ids, query, offset, limit) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
66 def search_service_level_objective(slo_ids, query, offset, limit)
67   params = {}
68   params[:offset] = offset unless offset.nil?
69   params[:limit] = limit unless limit.nil?
70   if !slo_ids.nil?
71     params[:ids] = slo_ids.join(',')
72   else
73     params[:query] = query
74   end
75 
76   request(Net::HTTP::Get, "/api/#{API_VERSION}/slo/", params, nil, false)
77 end
update_service_level_objective(slo_id, type, options = {}) click to toggle source
   # File lib/dogapi/v1/service_level_objective.rb
37 def update_service_level_objective(slo_id, type, options = {})
38   body = {
39     type: type
40   }
41 
42   symbolized_options = Dogapi.symbolized_access(options)
43   if type == 'metric'
44     if symbolized_options[:numerator] && symbolized_options[:denominator]
45       body[:query] = {
46         numerator: symbolized_options[:numerator],
47         denominator: symbolized_options[:denominator]
48       }
49     end
50   else
51     body[:monitor_search] = symbolized_options[:monitor_search] if symbolized_options[:monitor_search]
52     body[:monitor_ids] = symbolized_options[:monitor_ids] if symbolized_options[:monitor_ids]
53     body[:groups] = symbolized_options[:groups] if symbolized_options[:groups]
54   end
55   [:name, :thresholds, :tags, :description].each do |a|
56     body[a] = symbolized_options[a] if symbolized_options[a]
57   end
58 
59   request(Net::HTTP::Put, "/api/#{API_VERSION}/slo/#{slo_id}", nil, body, true)
60 end