Class: Insights::Loggers::CloudWatch

Inherits:
ManageIQ::Loggers::Base
  • Object
show all
Defined in:
lib/insights/loggers/cloud_watch.rb

Constant Summary collapse

NAMESPACE_FILE =
"/var/run/secrets/kubernetes.io/serviceaccount/namespace".freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logdev, *args) ⇒ CloudWatch

Returns a new instance of CloudWatch.



26
27
28
29
30
# File 'lib/insights/loggers/cloud_watch.rb', line 26

def initialize(logdev, *args)
  super
  self.formatter = ManageIQ::Loggers::Container::Formatter.new
  self.level = ENV['LOG_LEVEL'] if ENV['LOG_LEVEL']
end

Class Method Details

.new(*args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/insights/loggers/cloud_watch.rb', line 10

def self.new(*args)
  access_key_id     = ENV["CW_AWS_ACCESS_KEY_ID"].presence
  secret_access_key = ENV["CW_AWS_SECRET_ACCESS_KEY"].presence
  log_group_name    = ENV["CLOUD_WATCH_LOG_GROUP"].presence
  log_stream_name   = ENV["HOSTNAME"].presence
  container_logger = Insights::Loggers::Container.new

  return container_logger unless access_key_id && secret_access_key && log_group_name && log_stream_name

  require 'cloudwatchlogger'

  creds = {:access_key_id => access_key_id, :secret_access_key => secret_access_key}
  cloud_watch_logdev = CloudWatchLogger::Client.new(creds, log_group_name, log_stream_name)
  super(cloud_watch_logdev).tap { |logger| logger.extend(ActiveSupport::Logger.broadcast(container_logger)) }
end