class LogStash::Outputs::PagerDuty
PagerDuty
output Send specific events to PagerDuty
for alerting
Public Instance Methods
receive(event)
click to toggle source
# File lib/logstash/outputs/pagerduty.rb, line 52 def receive(event) return unless output?(event) pd_event = Hash.new pd_event[:service_key] = "#{@service_key}" pd_event[:incident_key] = event.sprintf(@incident_key) pd_event[:event_type] = "#{@event_type}" pd_event[:description] = event.sprintf(@description) pd_event[:details] = Hash.new @details.each do |key, value| @logger.debug("PD Details added:" , key => event.sprintf(value)) pd_event[:details]["#{key}"] = event.sprintf(value) end pd_event[:details][:tags] = @tags if @tags @logger.info("PD Event", :event => pd_event) begin request = Net::HTTP::Post.new(@pd_uri.path) request.body = pd_event.to_json @logger.debug("PD Request", :request => request.inspect) response = @client.request(request) @logger.debug("PD Response", :response => response.body) rescue Exception => e @logger.debug("PD Unhandled exception", :pd_error => e.backtrace) end end
register()
click to toggle source
# File lib/logstash/outputs/pagerduty.rb, line 38 def register require 'net/https' require 'uri' @pd_uri = URI.parse(@pdurl) @client = Net::HTTP.new(@pd_uri.host, @pd_uri.port) if @pd_uri.scheme == "https" @client.use_ssl = true #@client.verify_mode = OpenSSL::SSL::VERIFY_PEER # PagerDuty cert doesn't verify oob @client.verify_mode = OpenSSL::SSL::VERIFY_NONE end end