class Fluent::PagerdutyOutput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_pagerduty.rb, line 4 def initialize require 'pagerduty' super end
Public Instance Methods
call_pagerduty(tag, record)
click to toggle source
# File lib/fluent/plugin/out_pagerduty.rb, line 36 def call_pagerduty(tag, record) begin expander = PlaceholderExpander.new({:log => log}) tag_parts = tag.split('.') placeholder_values = { 'tag' => tag, 'tag_parts' => tag_parts, 'record' => record, } placeholders = expander.prepare_placeholders(placeholder_values) service_key = record['service_key'] || @service_key event_type = record['event_type'] || @event_type description = record['description'] || record['message'] || @description incident_key = record['incident_key'] || @incident_key details = record['details'] || record options = {"details" => details} description = expander.expand(description, placeholders) if !@incident_key.nil? incident_key = expander.expand(incident_key, placeholders) api = PagerdutyIncident.new(service_key, incident_key) else api = Pagerduty.new(service_key) end incident = api.trigger description, options rescue => e $log.error "pagerduty: request failed. ", :error_class=>e.class, :error=>e.message end end
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_pagerduty.rb, line 14 def configure(conf) super # API requires service key if @service_key.nil? $log.warn "pagerduty: service_key required." end # PagerDuty trigger event type requires description, other event types do not if @event_type == 'trigger' && @description.nil? $log.warn "pagerduty: description required for trigger event_type." end end
emit(tag, es, chain)
click to toggle source
# File lib/fluent/plugin/out_pagerduty.rb, line 28 def emit(tag, es, chain) es.each do |time,record| call_pagerduty(tag, record) end chain.next end