Sha256: 2aa8c35b636277192d32c86b35752a164285bcd34e9f9df8629d399ffa00340f

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

module Fluent
  class OutDatadogEvent < Fluent::Output
    Fluent::Plugin.register_output('datadog_event', self)

    unless method_defined?(:log)
      define_method("log") { $log }
    end

    config_param :api_key, :string
    config_param :app_key, :string, :default => nil
    config_param :date_happend, :string, :default => nil
    config_param :priority, :string, :default => nil
    # config_param :host, :string, :default => nil
    config_param :tags, :string, :default => nil
    config_param :alert_type, :string, :default => nil
    config_param :aggregation_key, :string, :default => nil
    config_param :source_type_name, :string, :default => 'fluentd'

    def initialize
      super
      #
      require "dogapi"
    end

    def start
      @dog = Dogapi::Client.new(@api_key, @app_key)
      @finished = false
    end

    def shutdown
      @finished = true
      @thread.join
    end

    def emit(tag, es, chain)
      chain.next
      es.each do |time,record|
        record.select do |k,v|
          event_msg = record[k]
          post_event(k, event_msg)
        end
      end
    end

    def post_event(event_key, event_msg)
      res = @dog.emit_event(Dogapi::Event.new(
        "#{event_msg}", 
        :msg_title => "#{event_key}", 
        :date_happend => @date_happend,
        :priority => @priority,
        # :host => @host,
        :tags => @tags,
        :alert_type => @alert_type,
        :aggregation_key => @aggregation_key,
        :source_type_name => @source_type_name
      ))
      # for debug
      #puts "debug_out: #{res}\n"
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluent-plugin-datadog_event-0.1.1 lib/fluent/plugin/out_datadog_event.rb
fluent-plugin-datadog_event-0.1.0 lib/fluent/plugin/out_datadog_event.rb