Sha256: 9d27813dc66872d358633bbf2f4f6d7bd926c4d8e27719c0dcacb50bfd42937a

Contents?: true

Size: 1.93 KB

Versions: 2

Compression:

Stored size: 1.93 KB

Contents

require 'fluent/plugin/output'

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

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

    helpers :compat_parameters

    config_param :host, :string, :default => nil
    config_param :api_key, :string
    config_param :app_key, :string, :default => nil
    config_param :msg_title, :string, :default => 'fluentd Datadog Event'
    config_param :priority, :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'

    config_section :buffer do
        config_set_default :@type, "memory"
        config_set_default :flush_mode, :immediate
        config_set_default :chunk_keys, ["tag"]
    end

    def configure(conf)
        super

        compat_parameters_convert(conf, :buffer)
        raise Fluent::ConfigError, "'tag' in chunk_keys is required." if not @chunk_key_tag
    end

    def initialize
        super

        require "dogapi"
        require "date"
    end

    def start
        super

        @dog = Dogapi::Client.new(@api_key, @app_key)
    end

    def write(chunk)
        chunk.each do |time, record|
            post_event(time, "record", record)
        end
    end

    def post_event(time, event_key, record)
        host = @host
        if !host
            host = record["host"]
        end

        res = @dog.emit_event(Dogapi::Event.new(
            "#{record}",
            :msg_title => @msg_title,
            :date_happend => time,
            :priority => @priority,
            :host => host,
            :tags => @tags,
            :alert_type => @alert_type,
            :aggregation_key => @aggregation_key,
            :source_type_name => @source_type_name
        ))
        end
    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluent-plugin-datadog_event-0.1.6 lib/fluent/plugin/out_datadog_event.rb
fluent-plugin-datadog_event-0.1.5 lib/fluent/plugin/out_datadog_event.rb