Class: Intake::GCP::GCPSink
- Inherits:
-
Sink
- Object
- Sink
- Intake::GCP::GCPSink
- Defined in:
- lib/intake/gcp/gcp_sink.rb
Overview
An Intake sink that writes to GCP Cloud Logging
Constant Summary collapse
- LEVEL_MAP =
rubocop:enable Metrics/MethodLength
{ debug: :DEBUG, info: :INFO, warn: :WARNING, error: :ERROR, fatal: :CRITICAL }.freeze
Instance Method Summary collapse
-
#drain(event) ⇒ Object
rubocop:disable Metrics/MethodLength.
-
#initialize(log_name:, resource_id:) ⇒ GCPSink
constructor
A new instance of GCPSink.
Constructor Details
#initialize(log_name:, resource_id:) ⇒ GCPSink
Returns a new instance of GCPSink.
10 11 12 13 14 15 16 |
# File 'lib/intake/gcp/gcp_sink.rb', line 10 def initialize(log_name:, resource_id:) super() @log_name = log_name @logging = Google::Cloud::Logging.new @writer = @logging.async_writer @resource = @logging.resource resource_id end |
Instance Method Details
#drain(event) ⇒ Object
rubocop:disable Metrics/MethodLength
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/intake/gcp/gcp_sink.rb', line 19 def drain(event) entry = @logging.entry( timestamp: event., log_name: @log_name, resource: @resource, severity: LEVEL_MAP.fetch(event.level.name, :DEFAULT), payload: event., labels: event.data.dup.merge!({ logger_name: event.logger_name }) ) @writer.write_entries entry end |