module Berkshelf::Notifiers::Datadog

Constants

VERSION

Public Instance Methods

uploaded(cookbook, conn) click to toggle source

Output a Cookbook upload message using {Berkshelf.ui} Send Datadog an event using {Dogapi}

@param [Berkshelf::CachedCookbook] cookbook @param [Ridley::Connection] conn

Calls superclass method
# File lib/berkshelf/notifiers/datadog.rb, line 13
def uploaded(cookbook, conn)
  upload_message = "Uploaded #{cookbook.cookbook_name} (#{cookbook.version}) to: '#{conn.server_url}'"

  # Invoke the original method declaration
  super

  # Only attempt to talk to Datadog if we have an env var set
  api_key = ENV['DATADOG_API_KEY']

  if api_key
    Berkshelf.ui.info "Sending a Datadog event for #{cookbook.cookbook_name} (#{cookbook.version})"

    dog = Dogapi::Client.new(api_key)

    dog.emit_event(
      Dogapi::Event.new(
        upload_message,
        msg_title: "Berkshelf uploaded #{cookbook.cookbook_name} v#{cookbook.version}",
        tags: [
          'berkshelf',
          "cookbook:#{cookbook.cookbook_name}",
        ]
      )
    )
  else
    Berkshelf.ui.info 'No Datadog API key provided, skipping'
  end
end