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