Module: EventTracer
- Defined in:
- lib/event_tracer/base_logger.rb,
lib/event_tracer.rb,
lib/event_tracer/buffer.rb,
lib/event_tracer/config.rb,
lib/event_tracer/version.rb,
lib/event_tracer/log_result.rb,
lib/event_tracer/metric_logger.rb,
lib/event_tracer/datadog_logger.rb,
lib/event_tracer/basic_decorator.rb,
lib/event_tracer/buffered_logger.rb,
lib/event_tracer/appsignal_logger.rb,
lib/event_tracer/dynamo_db/client.rb,
lib/event_tracer/dynamo_db/logger.rb,
lib/event_tracer/dynamo_db/worker.rb,
lib/event_tracer/prometheus_logger.rb,
lib/event_tracer/error_with_payload.rb,
lib/event_tracer/dynamo_db/default_processor.rb
Overview
NOTES
Appsignal interface to send our usual actions
BasicDecorator adds a transparent interface on top of the appsignal interface
Usage: EventTracer.register :appsignal,
EventTracer::AppsignalLogger.new(Appsignal, allowed_tags: ['tag_1', 'tag_2'])
appsignal_logger.info metrics: [:counter_1, :counter_2]
appsignal_logger.info metrics: { counter_1: { type: :counter, value: 1 }, gauge_2: { type: :gauge, value: 10 } }
Defined Under Namespace
Modules: DynamoDB
Classes: AppsignalLogger, BaseLogger, BasicDecorator, Buffer, BufferedLogger, Config, DatadogLogger, ErrorWithPayload, LogResult, MetricLogger, PrometheusLogger, Result
Constant Summary
collapse
- LOG_TYPES =
%i(debug info warn error)
- VERSION =
'0.6.4'.freeze
Class Method Summary
collapse
Class Method Details
.find(code) ⇒ Object
14
15
16
|
# File 'lib/event_tracer.rb', line 14
def self.find(code)
@loggers[code]
end
|
.flush_all ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/event_tracer.rb', line 28
def self.flush_all
@loggers.map do |_code, logger|
next unless logger.is_a?(EventTracer::BufferedLogger)
logger.flush
end
end
|
.register(code, logger) ⇒ Object
10
11
12
|
# File 'lib/event_tracer.rb', line 10
def self.register(code, logger)
@loggers[code] = logger
end
|
.registered_logger_codes ⇒ Object
70
71
72
|
# File 'lib/event_tracer.rb', line 70
def self.registered_logger_codes
@loggers.keys
end
|
.selected_loggers(logger_codes) ⇒ Object
60
61
62
63
64
65
66
67
68
|
# File 'lib/event_tracer.rb', line 60
def self.selected_loggers(logger_codes)
return unless logger_codes.is_a?(Array)
return if logger_codes.detect { |code| !code.is_a?(Symbol) }
selected_codes = logger_codes.uniq & registered_logger_codes
return if selected_codes.empty?
@loggers.select { |code, _logger| selected_codes.include?(code) }
end
|
.send_log_messages(log_type, loggers, args) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/event_tracer.rb', line 38
def self.send_log_messages(log_type, loggers, args)
result = Result.new
loggers.each do |code, logger|
if args[:action] && args[:message]
begin
result.record code, logger.send(log_type, **args)
rescue EventTracer::ErrorWithPayload => error
EventTracer::Config.config.error_handler.call(error.cause || error, error.payload)
result.record code, LogResult.new(false, error.message)
rescue StandardError => error
EventTracer::Config.config.error_handler.call(error, args)
result.record code, LogResult.new(false, error.message)
end
else
result.record code, LogResult.new(false, 'Fields action & message need to be populated')
end
end
result
end
|